Four surfaces cover token activity on Solana.
Solana’s token standard is SPL, so token_type = 'spl' and token_address is the mint address in base58, matched exactly as the chain writes it. from_address and to_address are token accounts rather than wallets, since one wallet can own several accounts in the same mint; to_owner is the wallet behind the credited one.
The token list is everything we see onchain, which reaches far past the tokens anyone would want: a ranking of the busiest tokens returns mints whose symbols imitate well-known ones. Nothing has gone wrong when those appear. Joining dimensions.asset_tokens keeps the tokens tied to a named asset with a named issuer; Assets covers that layer.
Every column and both function signatures are documented at Tokens.
Sample queries
facts_tokens.transfers is large and split by month. Bound partition_key and filter chain_id on every query, or you read the whole table and the whole table is billed to you.
Daily activity
Busiest tokens
Net balance moves
Current holders
Balance history
Daily price
Count the transfers and the accounts behind them on one day. A distinct-account count holds for the window it was asked for, and summing several days counts anyone active on more than one of them twice; Assets ▸ Senders covers the longer windows. Rank the busiest Solana mints on one day. Joining dimensions.tokens on token_id adds the symbol and name of each mint. Find the wallets that gained and lost the most of one mint on one day. Each movement is unnested into its two legs — the sender debited, the receiver credited — and summing them per wallet nets the day; dividing by 10^decimals converts to token amounts. The credit leg reads to_owner so the answer lands on wallets rather than on their token accounts. List the largest current holders of one Solana mint. An account here is an SPL token account rather than the wallet that owns it, so a wallet spread across several accounts appears once per account; the returned balance is already converted out of raw units. Each call adds up the token’s whole movement history, so a one-off holder set costs a full scan; Assets ▸ Metrics holds a daily supply and holder-count series for curated assets. Trace the largest holding account’s balance over time. Taking the account from the latest-balances function keeps the query runnable unchanged; the historical function returns a row only on the days the balance moved, so the balance on any other date is the latest row at or before it. The function replays the same history, so it costs a full scan of the token as well. Read one Solana mint’s daily price. Each row is the midnight UTC price in USD, and token_id is the mint address and the chain joined with a dash.