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:- Where are stablecoins right now? (balances)
- How did they get there? (activity)
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.
Table schema
| Column | Type | Description |
|---|---|---|
blockchain | VARCHAR | Chain name (solana) |
block_month | DATE | First day of month (partition column) |
block_date | DATE | Transaction date |
block_time | TIMESTAMP | Transaction timestamp |
block_slot | BIGINT | Solana slot number |
tx_id | VARCHAR | Transaction signature |
outer_instruction_index | BIGINT | Outer instruction index |
inner_instruction_index | BIGINT | Inner instruction index (nullable) |
token_mint_address | VARCHAR | Token mint address |
token_symbol | VARCHAR | Token symbol |
currency | VARCHAR | ISO 4217 code |
from_owner | VARCHAR | Sender wallet |
to_owner | VARCHAR | Receiver wallet |
amount_raw | UINT256 | Raw transfer amount |
amount | DOUBLE | Decimals-adjusted amount |
amount_usd | DOUBLE | USD amount |
outer_executing_account | VARCHAR | Program executing instruction |
category | VARCHAR | Activity category |
activity | VARCHAR | Activity label |
project_address | VARCHAR | Matched project address (nullable) |
project_name | VARCHAR | Matched project name (nullable) |
project_version | VARCHAR | Matched project version (nullable) |
unique_key | VARCHAR | Unique transfer identifier |
Value possibilities
Thecategory and activity columns are intentionally standardized so downstream models, dashboards, and monitoring can rely on deterministic value vocabularies.
category | Allowed activity values |
|---|---|
bridge | bridge_deposit, bridge_withdraw |
cex | cex_deposit, cex_withdraw, cex_internal_transfer |
dex | dex_swap |
flashloan | flashloan_borrow, flashloan_repay, flashloan_unidentified |
issuer | issuer_mint, issuer_burn, issuer_unidentified |
lending | lending_supply, lending_borrow, lending_repay, lending_unidentified |
yield | yield_unidentified |
unidentified | unidentified_activity |
unidentified_bot_activity | unidentified_bot_activity |
Methodology
Classification is done at the transfer level, not the transaction level.- Start from curated stablecoin transfer rows in
stablecoins_solana.transfers. - 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).
- Apply deterministic priority rules when multiple category matches exist for a transfer.
- Keep full transfer coverage by assigning unmatched rows to
unidentified(orunidentified_bot_activityfor 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, andproject_versionare populated only when a confident protocol/entity match exists.
Sample query
Notes
- One transfer maps to one output row (highest-priority match wins).
- For performance, filter by
blockchainandblock_month.