Skip to main content
rwa_multichain.tokens is the identity table for every tokenized RWA Dune tracks. Grain: one row per token per chain, keyed on (blockchain, token_standard, token_id). Native identifiers are already stored in token_id; there are no separate contract_address / token_mint_address columns on this view.

Why token_id exists

Each chain identifies a token differently: EVM uses a contract address, Solana a mint address, Aptos an asset type, Sui a coin type, and XRPL and Stellar their own asset identifiers. This table normalizes all of those into a single VARCHAR token_id. Join on (blockchain, token_id) and one query works across all 20 chains — that key resolves every row in balances, transfers, and supply.

Table schema

token_standard here uses coarse namespaces. The transfers table uses finer-grained values (bep20, spl_token, spl_token_2022, classic, soroban, issued), so do not join the two tables on token_standard — use (blockchain, token_id).
balance_semantics = 'indexed' identifies rebasing or indexed-share tokens. The curated balances table applies the correct semantics for each token.

Asset class and issuer

This table is an identity registry, not a classification table. It does not carry asset_class or issuer. Those live in tokens_reference_data (token grain) and product_reference_data (product grain). Join tokens_reference_data on (blockchain, token_id) whenever you need to slice by asset class or attribute activity to an issuer.

Example query

Resolve holder balances to the registry: