Test Transaction Allowlist

Hands-on exercise: Verify the Transaction Allowlist precompile is active and manage roles.

Objectives

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

  • Verify the Transaction Allowlist precompile is active on your L1
  • Confirm your wallet has Admin permissions
  • Read and modify allowlist roles using the Builder Console

Prerequisites

Before starting this exercise, ensure you have:

  • Completed the L1 creation with Transaction Allowlist enabled at genesis
  • Your Docker-hosted node is running and synced
  • Core Wallet connected to your custom L1
  • Your wallet address was added as an admin in the genesis config

Instructions

Step 1: Open the Transaction Allowlist tool

Connect to your custom L1 and open the Transaction Allowlist tool:

Builder Console

Checking requirements...

Expected Result: The tool should load the full UI. If you see "not available" or "not activated", the precompile was not enabled at genesis.

Step 2: Verify your Admin role

  1. Select readAllowList
  2. Paste your wallet address
  3. Execute the read

Expected Result: Your role should show as Admin (value 2).

Role values: 0 = None, 1 = Enabled, 2 = Manager, 3 = Admin

Step 3: Test adding an Enabled address

As an Admin, you can grant permissions to other addresses:

  1. Select setEnabled
  2. Enter a test address (can be any valid Ethereum address)
  3. Execute the transaction and confirm in Core Wallet

After the transaction confirms, use readAllowList on that address to verify it now shows Enabled.

Step 4: Test sending a transaction

In Core Wallet (connected to your custom L1):

  1. Send a small amount of native token to any address
  2. The transaction should succeed since your wallet is authorized

If the transaction fails with an authorization error, double-check that your wallet address is in the admin list and the precompile is activated.

Expected Output

  • The Transaction Allowlist tool renders the full UI (not "not available")
  • Your wallet reads as Admin (role 2 or 3)
  • You can successfully grant Enabled status to another address
  • Transactions from your wallet succeed

Verification

To verify you've completed this exercise successfully:

  1. readAllowList for your wallet returns Admin
  2. You successfully called setEnabled for a test address
  3. A transaction from your wallet was confirmed on-chain

Troubleshooting

Issue: Tool shows "not available"

Problem: The Transaction Allowlist tool shows the precompile is not activated.

Solution: The precompile was not enabled at genesis. You'll need to either:

  • Recreate the L1 with the precompile enabled, or
  • Use a network upgrade to activate it (covered in a later section)

Issue: readAllowList shows None for my wallet

Problem: Your wallet address is not recognized as an admin.

Solution: Verify the address in your genesis config matches your connected wallet exactly (case-insensitive but must be a valid checksum address).

Next Steps

Next, test the Contract Deployer Allowlist to verify you can control who deploys smart contracts on your L1.

Is this guide helpful?