payments.commerce_flows is a transfer-level dataset that identifies the ones that are — every transfer that is a legitimate commerce transaction, tagged with its flow type (party_pair, purpose), a confidence level, and the protocol where one is known.
The table is intentionally conservative: transfers that don’t match a rule are excluded, not bucketed as “unclear”. It is not a universal stablecoin classifier and does not try to label everything.
Commerce Flows feeds back into the stablecoins dataset — payments are a sub-category of stablecoin activity. Matched transfers have their category updated from unidentified to payment in stablecoins_evm.activity_enriched.
Why this dataset matters
Most stablecoin volume is not payments — it is trading, bridging, and treasury movement. Commerce Flows isolates the slice that is genuine commercial settlement, attaching an explicit rule and a confidence level to every row. It makes it possible to:- Measure onchain commerce volume by flow type (B2B, C2B, B2C) and protocol.
- Separate protocol-verified settlement (Tier A) from behavioural inference (Tier B).
- Label stablecoin transfers as payment-related for downstream analytics.
Coverage
Chains: EVM chains, Tron, and Solana. Solana coverage is label-based (Tier A) only. Tokens: Stablecoins only — the dataset classifies transfers from the upstream stablecoin transfer tables. Unlikepayments.card_transactions and payments.agentic_payments, which are not restricted to stablecoins, non-stablecoin settlement does not appear here.
Protocol-verified sources (Tier A):
- Crypto cards — sourced from
payments.card_transactions. - Agentic payments (x402 / MPP) — sourced from
payments.agentic_payments. - Stripe, Shopify Commerce Payments Protocol, Coinbase Commerce, Request Network, and stablecoin payment processors (e.g. BVNK).
Output taxonomy
Some reports group these flows by audience instead. The audiences overlap on the raw taxonomy — agentic settlement is itself a B2B row — so apply them in precedence order to keep each row in exactly one bucket:
agents first (B2B rows with heuristic_id = 'agentic_payments', in full protocol detail in payments.agentic_payments); then businesses for the remaining B2B; and retail for the consumer-facing pairs (C2B and B2C).
Methodology
The pipeline runs in ordered stages: a strict exclusion layer removes non-commerce and non-final activity, then Tier A captures protocol-explicit matches (confidence = high), and finally Tier B applies a small set of high-signal behavioural heuristics to the residual (confidence = medium). Each transfer maps to one output row, and Tier A always takes precedence over Tier B.
1. Exclusion layer
Fires before any classification. A transfer matching any rule is dropped from the eligible universe.- Via upstream stablecoin labels: issuer mechanics (mint / burn), bridge and wrap infrastructure, CEX legs, DEX / AMM / routing, and DeFi vaults / lending / yield.
- Via behavioural shape: same-entity / self-transfers, round-trip and reverse transfers (treasury reshuffling, wash patterns), A→B→C pass-through routing (avoids double-counting intermediary legs), high-frequency bot wallets, and large one-off treasury repositioning.
Eligibility settles 24 hours after block time. Round-trip and reverse-transfer detection looks 24 hours forward, so a transfer’s eligibility is not final until 24 hours after its block time. Rows older than 24 hours are stable; only the most recent 24 hours can still change as later reverse legs land. This keeps both legs of a round trip out of the dataset, at the cost of a short settling window on the leading edge.
2. Wallet classification
Each address is typed from its full transaction history, with awallet_balance_tier derived from its rolling 30-day average USD balance.
3. B2B commerce
4. B2C payroll
5. C2B commerce
Table schema
Each row is one classified stablecoin transfer. Non-applicable fields areNULL. Every row carries tx_hash + transfer_evt_index + transfer_unique_key to join back to the upstream stablecoin transfer.
Sample queries
Commerce flow volume by party pair and purpose
Protocol-verified flows only
Related tables
payments.card_transactions— Tier A source for crypto card matches.payments.agentic_payments— Tier A source for x402 and MPP matches.stablecoins_evm.activity_enriched— downstream consumer; exposescategory = 'payment'for matched transfers.