Test for Error

Hands-on exercise: Test for Error

Objectives

By the end of this exercise, you will be able to:

  • Verify you can no longer submit transactions after removing your transactor permissions
  • Verify you can no longer deploy contracts after removing your deployer permissions
  • Recognize the failure modes users will see in wallets and dApps

Prerequisites

Before starting this exercise, ensure you have:

  • Completed the previous lesson and removed your wallet from Admin on both allowlist precompiles
  • Still connected to your L1 in Core Wallet

Instructions

Step 1: Attempt a normal transaction (should fail)

In your Core Wallet browser extension:

  1. Stay on your L1 network
  2. Try to send a small amount of the native token to any address you control
  3. Confirm the transaction

You should see a failure/revert because the Transaction AllowList blocks your address from submitting transactions.

Step 2: Attempt a contract deployment (should fail)

Use the ICM demo deploy tool (any deployment attempt works — we’re just testing deploy restrictions):

Builder Console

Checking requirements...

When you try to deploy, the transaction should fail because the Contract Deployer AllowList blocks your address from deploying contracts.

Step 3: Record what you observed

Note the exact error messages you see in:

  • Core Wallet
  • Console UI (if any)

These are the same user-facing symptoms you must plan for when operating a restricted-access L1.

Expected Output

You should see:

  • A failed value transfer transaction (blocked by Transaction AllowList)
  • A failed contract deployment (blocked by Contract Deployer AllowList)

Verification

To verify you've completed this exercise successfully:

  1. You cannot send transactions from your wallet on the L1
  2. You cannot deploy a contract from your wallet on the L1

Troubleshooting

My transaction still succeeds

  • You likely still have Enabled access on the Transaction AllowList (or you didn’t enable it at genesis).
  • Verify the precompile is enabled and your role is None.

Next Steps

Next we’ll cover how to safely recover from mistakes like this using network upgrades (enable/disable + role recovery).

Is this guide helpful?