Skip to main content
The stablecoins_solana_activity_enriched table classifies each stablecoin transfer on Solana into an activity category.

Premium dataset access

This dataset is part of a premium offering and requires additional access. Contact the Dune enterprise team to request access.

Why these enriched tables matter

Stablecoin analysis comes down to two fundamental questions:
  1. Where are stablecoins right now? (balances)
  2. How did they get there? (activity)
This activity-enriched table answers the second question by tracing the economic path of transfers across categories such as DEX trading, lending, borrowing, bridging, internal transfers, and payment-like flows.

What this dataset is designed to do

  • Explain how stablecoin balances move through the ecosystem.
  • Attribute transfer activity with transparent, reproducible logic.
  • Provide a defensible foundation for flow analysis.
The goal is to turn stablecoin flow data from noise into structured economic insight.

Table schema

ColumnTypeDescription
blockchainVARCHARChain name (solana)
block_monthDATEFirst day of month (partition column)
block_dateDATETransaction date
block_timeTIMESTAMPTransaction timestamp
block_slotBIGINTSolana slot number
tx_idVARCHARTransaction signature
outer_instruction_indexBIGINTOuter instruction index
inner_instruction_indexBIGINTInner instruction index (nullable)
token_mint_addressVARCHARToken mint address
token_symbolVARCHARToken symbol
currencyVARCHARISO 4217 code
from_ownerVARCHARSender wallet
to_ownerVARCHARReceiver wallet
amount_rawUINT256Raw transfer amount
amountDOUBLEDecimals-adjusted amount
amount_usdDOUBLEUSD amount
outer_executing_accountVARCHARProgram executing instruction
categoryVARCHARActivity category
activityVARCHARActivity label
project_addressVARCHARMatched project address (nullable)
project_nameVARCHARMatched project name (nullable)
project_versionVARCHARMatched project version (nullable)
unique_keyVARCHARUnique transfer identifier

Value possibilities

The category and activity columns are intentionally standardized so downstream models, dashboards, and monitoring can rely on deterministic value vocabularies.
categoryAllowed activity values
bridgebridge_deposit, bridge_withdraw
cexcex_deposit, cex_withdraw, cex_internal_transfer
dexdex_swap
flashloanflashloan_borrow, flashloan_repay, flashloan_unidentified
issuerissuer_mint, issuer_burn, issuer_unidentified
lendinglending_supply, lending_borrow, lending_repay, lending_unidentified
yieldyield_unidentified
unidentifiedunidentified_activity
unidentified_bot_activityunidentified_bot_activity
This mapping enables consistent flow segmentation, KPI rollups, and alerting logic without custom per-dashboard label handling. As protocol coverage expands, new values may be added in backward-compatible fashion.

Methodology

Classification is done at the transfer level, not the transaction level.
  1. Start from curated stablecoin transfer rows in stablecoins_solana.transfers.
  2. Evaluate each transfer against category-specific detection logic using Solana-native context (transaction signature, instruction indexes, token mint, transfer amount, and known program/address labels).
  3. Apply deterministic priority rules when multiple category matches exist for a transfer.
  4. Keep full transfer coverage by assigning unmatched rows to unidentified (or unidentified_bot_activity for high-volume automated program patterns).

Important interpretation details

  • The same transaction can produce different categories across its individual transfers.
  • Instruction index context is important on Solana for distinguishing activity legs inside one transaction.
  • project_address, project_name, and project_version are populated only when a confident protocol/entity match exists.

Sample query

SELECT
    a.block_date
    , a.category
    , COUNT(*) AS transfers
    , SUM(a.amount_usd) AS volume_usd
FROM stablecoins_solana_activity_enriched AS a
WHERE a.block_date >= CURRENT_DATE - INTERVAL '30' DAY
GROUP BY a.block_date, a.category
ORDER BY a.block_date DESC, volume_usd DESC

Notes

  • One transfer maps to one output row (highest-priority match wins).
  • For performance, filter by blockchain and block_month.