rwa_multichain.trades covers where tokenized RWAs actually change hands. Grain: one row per trade, keyed on (blockchain, block_month, block_date, unique_key). It unions DEX swaps with RWA-native venues and normalizes both into a two-token swap schema.
Two platform types
platform_type splits the table into the two kinds of venue:
DEX volume dominates by row count, but
rwa_platform is where issuer-operated primary and secondary flow shows up. Split on platform_type rather than treating the table as homogeneous.
rwa_side tells you which leg is the RWA
Every row is a two-token swap, and either leg can be the real-world asset.rwa_side resolves it:
Ignoring
rwa_side and always reading token_bought_address gives you the stablecoin or quote asset roughly half the time. For directional flow analysis, filter rwa_side IN ('buy', 'sell') to exclude the RWA-to-RWA rows that would double-count.
Table schema
Addresses are
VARCHAR across all token and account columns — 0x-hex on EVM, base58 on Solana — so one query covers both without casting. Joining to the VARBINARY NAV tables does require a cast; see NAV intervals.This table does not contain perpetuals
Perpetual futures on RWA underlyings are a different instrument with a different schema, and they live inperp_trades. A perp fill is not a two-token swap, so it is deliberately not unioned in here. Comparing spot to synthetic activity means querying both tables and joining on asset class.