stablecoins_evm.activity_enriched table classifies each stablecoin transfer into an activity category (for example DEX, CEX, bridge, lending, issuer).
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 |
block_month | DATE | First day of month (partition column) |
block_date | DATE | Transaction date |
block_time | TIMESTAMP | Transaction timestamp |
block_number | BIGINT | Block number |
tx_hash | VARBINARY | Transaction hash |
evt_index | BIGINT | Transfer event index |
activity_evt_index | BIGINT | Matched activity event index (nullable) |
trace_address | VARCHAR | Trace address (nullable) |
token_standard | VARCHAR | Token standard (erc20) |
token_address | VARBINARY | Token contract address |
token_symbol | VARCHAR | Token symbol |
currency | VARCHAR | ISO 4217 code |
amount_raw | UINT256 | Raw transfer amount |
amount | DOUBLE | Decimals-adjusted amount |
price_usd | DOUBLE | USD price used for valuation |
amount_usd | DOUBLE | USD amount |
from_address | VARBINARY | Sender |
to_address | VARBINARY | Recipient |
category | VARCHAR | Activity category |
activity | VARCHAR | Activity label |
project_address | VARBINARY | 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 | Description |
|---|---|---|
dex_swap | dex_swap | Direct swaps on decentralized exchanges and DEX aggregators (Uniswap, Curve, 1inch, etc.). |
flashloan | flashloan_borrow, flashloan_repay | Atomic borrow-and-repay within a single transaction. |
issuer | issuer_peg_rebalance | Peg stability module operations (e.g. Sky PSM, Spark PSM). Ethereum only. |
yield | yield_deposit, yield_withdraw | Deposits and withdrawals from yield strategy contracts. Ethereum only. |
cex | cex_deposit, cex_withdraw, cex_internal_transfer | Transfers to/from known centralized exchange wallets. |
lending | lending_supply, lending_borrow, lending_repay, lending_withdraw | Supply, borrow, repay, and withdraw on lending protocols. |
bridge | bridge_deposit, bridge_withdraw | Cross-chain transfers via bridge contracts. |
dex_liquidity | dex_liquidity_supply, dex_liquidity_withdraw | Non-swap transfers to/from DEX contracts (liquidity adds/removes). |
unidentified | unidentified_activity | Transfers not matched to any known activity pattern. |
Methodology
Classification is done at the transfer level, not the transaction level.- Start from curated stablecoin transfer rows in
stablecoins_evm.transfers. - Build candidate matches for each transfer against activity-specific datasets (for example DEX, bridge, CEX, flashloan, lending, and issuer signals) using transfer-level keys such as
tx_hash, token identity, and amount context. - Resolve conflicts with a deterministic precedence order, so each transfer gets exactly one winning category.
- Write unmatched transfers as
unidentifiedto preserve full coverage instead of dropping rows.
Important interpretation details
- One transaction can map to multiple categories if it contains multiple stablecoin transfers.
project_address,project_name, andproject_versionare populated only when a protocol/entity match exists.- Priority rules improve consistency, but edge cases still exist when protocols emit similar transfer patterns in the same transaction.
Sample query
Notes
- One transfer maps to one output row (highest-priority match wins).
- For performance, filter by
blockchainandblock_month.