On-chain data
Every time a smart contract does something, it writes a record of it to the blockchain. By their activities, contracts create events, which are stored on-chain as logs attached to the transaction that triggered them. An ERC-20 contract, for example, creates aTransfer event on every mint, burn, and transfer, and an Approval event whenever a holder authorizes a spender. Contracts that implement RBAC create events such as RoleGranted and RoleRevoked. You can receive these events through Tokenization on-chain data webhooks.
Logs are the contract’s own record of what happened and when. Reading a contract’s current state (calling balanceOf for an address, or totalSupply) tells you where things stand right now. Logs tell you how they got there: who held the token last month, when supply changed, which address granted a role, and in which block.
The raw logs are not directly usable. Each one is a set of hashed topics and packed hexadecimal data, and getting a full history means requesting logs block by block from a node, then decoding them against the contract’s Application Binary Interface (ABI). Answering a question like “what was this address’s balance on June 30th” means replaying every transfer that touched it since the contract was deployed.
Indexing does that work for you. Fireblocks reads the contract’s logs from the chain, decodes them using the contract ABI, and stores the result so you can query it directly: transfers, balances at a point in time, supply history, and active roles.
Coverage
Fireblocks supports on-chain data indexing for any linked EVM smart contract on a supported network, not only Fireblocks reference smart contracts (ERC20F, Access Registry). Once indexing is enabled for a contract, you can query decoded transfer events, balances, balance history, total supply, and active RBAC roles through the Tokenization API.How it works
Indexing is enabled per contract from the Fireblocks Console, then read through the API endpoints below. Enabling indexing for a contract:- Backfills historical on-chain events for the contract (a scan), so historical queries return complete data instead of only events from the moment you enabled indexing.
- Starts ongoing tracking of new events: transfers, supply changes, freezes, role grants, ownership transfers, and cross-chain bridge events (for example, LayerZero Omnichain Fungible Token (OFT) events).
Audit trail: Indexing also captures contract upgrades, authorization (RBAC) changes, and cross-chain bridging as part of the same event feed. This gives you an audit trail for on-chain activity that did not originate from Fireblocks, which is useful when reconciling bring-your-own (BYO) token contracts against your own records.
Enable indexing for a contract
Indexing is a per-contract setting, managed from the Console:1
Open the contract
Open the token or the contract’s details page in the Console.
2
Open On-chain data
Select On-chain data from the contract header.
3
Turn on indexing
Turn on Event indexing. Optionally, turn on Webhook notifications to include the contract in your workspace’s Tokenization webhook notifications.
4
Scan history
Select Scan under Scan history to backfill historical events. This can take from a few minutes to several days, depending on the contract’s activity volume.
If a scan stops before it concludes, the same modal shows how far it got and lets you restart it.
API surface
The following endpoints are available once indexing is enabled for a token contract.{id} is the Fireblocks token link ID.
Transfers
OnchainTransfersPagedResponse.
Transactions and events
OnchainTransactionsPagedResponse.
Balances (all holders)
AddressBalancePagedResponse.
Balance (single account)
AddressBalanceItemDto.
Balance history
BalanceHistoryPagedResponse.
Total supply
TotalSupplyPagedResponse.
Roles (RBAC)
ActiveRolesResponse.