Skip to main content
rwa_multichain.transfers is the movement table for tokenized RWAs. Grain: one row per transfer, keyed on (blockchain, block_month, block_date, unique_key). It normalizes transfers from 21 chains into a single schema with VARCHAR addresses.

Table schema

token_standard here uses finer-grained values than rwa_multichain.tokens: erc20, bep20, tip20, spl_token, spl_token_2022, classic, soroban, issued, sui_coin. Do not join the two tables on token_standard; join on (blockchain, token_id).

Use is_supply_event for cross-chain mint/burn filtering

is_supply_event is the normalized cross-chain flag for native supply changes. Use it to isolate peer-to-peer movement:
Keep transfer_type when you need chain-native detail. It is NULL for every EVM row and populated only on Solana, Stellar, Sui, XRPL, and Aptos. So a filter like WHERE transfer_type = 'transfer' silently drops all EVM-compatible activity, which is the large majority of rows. A plain SUM(amount) can include issuance and redemption alongside wallet-to-wallet movement on EVM-compatible chains, Solana, and Stellar. Use NOT is_supply_event to isolate peer-to-peer volume. Values observed on the typed chains include transfer, mint, burn, payment, object_created, object_deleted, ownership_transfer, ownership_balance_topup, ownership_balance_spend, and transfer_with_balance_change.
For issuance and redemption analysis, use supply_changes instead. It covers native supply events across supported chains and provides direction (increase or decrease) for net-flow calculations. Never sum transfers and supply_changes together.

Tempo reconstruction boundary

Tempo transfer and balance reconstruction is supported from 2026-05-05. This is a data support boundary, not a claim that Tempo began on that date. Coverage uses complete transfer replay from that boundary because no independent Tempo daily holder-state source exists. Tempo’s zero-address TIP-20 rows remain in transfers. supply_changes derives them once and verifies them against native TIP-20 Mint and Burn events.

Query performance

Filter on block_month or block_date to prune partitions, and add blockchain when you only need one chain. Robinhood Chain and Solana dominate row counts, so an unfiltered scan is expensive.

Example query

Largest single transfers of an asset: