All tables are located in the stablecoins.intelligence schema. Each table is per-transfer grain and cross-chain.
Table
Purpose
Row Grain
enriched_transfers
Per-transfer intelligence + adjusted-volume flag
One row per transfer leg
organic_activity_classification
Wallet typing + transaction intent
One row per organic transfer
payment_categorization
Granular payment purpose
One row per real-world payment
Access tiers. The full-history tables are gated (entitled customers). Each is also published as a rolling last-30-days view that is broadly shared, identical schema, filtered to block_timestamp >= dateadd('day', -30, current_timestamp()):
SELECT chain, SUM(usd_amount) AS adjusted_volume_30dFROM stablecoins.intelligence.enriched_transfers_last_30dWHERE is_adjusted_volumeGROUP BY 1ORDER BY 2 DESC;
SELECT token_symbol, COUNT(*) AS transfer_count, SUM(usd_amount) AS total_volumeFROM stablecoins.intelligence.enriched_transfersWHERE is_adjusted_volume AND block_timestamp >= CURRENT_DATE - 30GROUP BY 1ORDER BY 3 DESC;
Purpose: Assigns each organic transfer a sender/receiver wallet type, balance tier, and high-level transaction intent.Use Case: Who is transacting (consumer vs business vs institutional) and why (payments vs trading vs savings).
SELECT transaction_type, COUNT(*) AS tx_count, SUM(usd_amount) AS total_volumeFROM stablecoins.intelligence.organic_activity_classificationWHERE activity_date >= CURRENT_DATE - 30GROUP BY 1ORDER BY 3 DESC;
Only transfers with transaction_type = 'Real-World Payment' are present in this table. Deposits to institutional wallets and I2C flows are treated as Investment/Trade and excluded from the real-world payment mix.
enriched_transfers is the per-transfer base (adjusted-volume gate + flow categories). organic_activity_classification adds wallet typing and intent; payment_categorization adds purpose for the real-world-payment subset. Join across them on chain + transaction_hash (+ unique_id where a transaction has multiple legs).