B20 data is available once the Beryl upgrade activates on each network:
Where B20 data lives
B20 events are decoded into the existingbase.events table (or base_sepolia.events on testnet). Each row uses the same schema as other decoded logs: event_name, event_signature, parameters, address, block_timestamp, and more.
Query B20 activity by filtering on:
event_signature— the canonical event ABI (preferred overevent_namefor performance; put this first inWHEREclauses for best query performance)address— a specific B20 token contract, or the singleton B20 Factory / Policy Registry contract when querying factory or policy-registry events
Indexed event types
B20 token events
These events are emitted by individual B20 token precompiles:
Asset-variant tokens also emit:
B20 Factory events
Token creation events are emitted by the singleton B20 Factory precompile:Policy Registry events
B20 transfer policies are managed through the Policy Registry precompile at0x8453000000000000000000000000000000000002. Query these events with that address and the matching event_signature:
For the full B20 interface specification, see the Base Standard Library.
Example queries
Recent B20 token transfers
Replace{token_address} with the B20 token you are tracking:
New B20 tokens created
Track deployments from the B20 Factory precompile at0xB20f000000000000000000000000000000000000:
Transfers with payment memos
B20 memo operations emit aMemo event immediately after the primary operation event. Join adjacent logs in the same transaction:
Policy and compliance activity
Monitor when an issuer updates transfer policies on a token:Query tips
Follow the SQL API best practices when querying B20 data:- Filter on indexed columns — use
event_signature,address, andblock_timestampin yourWHEREclause. - Scope to active logs — add
action = 'added'to exclude re-orged events, or aggregate bylog_idif you need re-org-safe totals. - Use network prefixes — query
base_sepolia.eventson testnet andbase.eventson mainnet. - Join memos by log index — memo events follow their parent operation at
log_index + 1within the same transaction and contract (m.address = t.address).
Learn more
- B20 specification — Base docs for the token standard
- Accept B20 payments — match payments to orders with onchain memos
- Schema reference — full
base.eventscolumn definitions - Quickstart — run your first SQL API query