Use this file to discover all available pages before exploring further.
Vault protocols enable users to deposit assets into strategies that dynamically allocate capital across lending markets, staking, and yield opportunities. Dune provides access to decoded on-chain event data for vault-level activity including deposits, withdrawals, interest accrual, reallocation, and liquidations.
Get This Data
Access decoded vault tables via SQL in the Dune App, API, or Datashare.
No unified dataset yet. Vault analysis currently requires protocol-specific logic using decoded event tables. A curated vaults.* dataset is on the roadmap. Contact our enterprise team to request priority access or share your use case.
For curated lending data (supply, borrow, flash loans, liquidations) that covers Aave and other lending protocols in a normalized schema, see the Lending section.
Primary dataset for vault-level analysis. MetaMorpho vaults are curated lending strategies that allocate deposits across Morpho Blue markets.Namespace:metamorpho_vaults_multichain.*Chains: Ethereum, Base
Chain-specific tables also available:metamorpho_vaults_ethereum.*, metamorpho_vaults_base.*
Underlying lending market activity used by MetaMorpho vaults. Useful for understanding where vault capital is deployed.Namespace:morpho_multichain.*Chains: Arbitrum, Corn, Sonic, Unichain, Flare, Plume
SELECT 'ethereum' AS chain, date_trunc('day', evt_block_time) AS day, COUNT(*) AS num_depositsFROM euler_v2_ethereum.evault_evt_depositWHERE evt_block_time >= NOW() - INTERVAL '30' DAYGROUP BY 1, 2UNION ALLSELECT 'base' AS chain, date_trunc('day', evt_block_time) AS day, COUNT(*) AS num_depositsFROM euler_v2_base.evault_evt_depositWHERE evt_block_time >= NOW() - INTERVAL '30' DAYGROUP BY 1, 2UNION ALLSELECT 'arbitrum' AS chain, date_trunc('day', evt_block_time) AS day, COUNT(*) AS num_depositsFROM euler_v2_arbitrum.evault_evt_depositWHERE evt_block_time >= NOW() - INTERVAL '30' DAYGROUP BY 1, 2ORDER BY day DESC, chain
Aave v3 is a lending protocol where each reserve acts as a pool accepting deposits and issuing borrows. While not a “vault” protocol in the MetaMorpho sense, Aave pools function similarly for deposit/withdraw tracking and are commonly analyzed alongside vault protocols.Namespace:aave_v3_multichain.*Chains: Ethereum, Base, Arbitrum, Avalanche, BNB, Celo, Fantom, Gnosis, Mantle, MegaETH, Optimism, Polygon, Sonic, zkSync
L2-specific tables:aave_v3_multichain.l2pool_* for Arbitrum, Base, Ink, Linea, Mantle, Scroll
Fluid uses a tiered vault architecture (T1–T4) for borrowing with different collateral and debt configurations.Namespace:fluid_multichain.*Chains: Arbitrum, Base, BNB, Ethereum, Plasma, Polygon
SELECT date_trunc('day', call_block_time) AS day, COUNT(*) AS num_deposits, COUNT(DISTINCT tx_signer) AS unique_depositorsFROM kamino_vault_solana.kamino_vault_call_depositWHERE call_block_time >= NOW() - INTERVAL '30' DAY AND call_success = trueGROUP BY 1ORDER BY 1 DESC
Lido provides liquid staking for ETH via stETH. While primarily a staking protocol, Lido’s architecture includes vault-related components (VaultFactory, VaultHub, StakingVault) under the lido_ethereum namespace.Namespace:lido_ethereum.*Chain: Ethereum
Example — Lido stETH Deposits vs Withdrawal Requests (30d):
WITH deposits AS ( SELECT date_trunc('day', evt_block_time) AS day, SUM(CAST(amount AS DOUBLE)) / 1e18 AS eth_deposited FROM lido_ethereum.steth_evt_submitted WHERE evt_block_time >= NOW() - INTERVAL '30' DAY GROUP BY 1),withdrawals AS ( SELECT date_trunc('day', evt_block_time) AS day, SUM(CAST(amountOfStETH AS DOUBLE)) / 1e18 AS steth_withdrawal_requested FROM lido_ethereum.withdrawalqueueerc721_evt_withdrawalrequested WHERE evt_block_time >= NOW() - INTERVAL '30' DAY GROUP BY 1)SELECT COALESCE(d.day, w.day) AS day, COALESCE(d.eth_deposited, 0) AS eth_deposited, COALESCE(w.steth_withdrawal_requested, 0) AS steth_withdrawal_requested, COALESCE(d.eth_deposited, 0) - COALESCE(w.steth_withdrawal_requested, 0) AS net_flowFROM deposits dFULL OUTER JOIN withdrawals w ON d.day = w.dayORDER BY day DESC
Aggregate deposits minus withdrawals over time. For USD denomination, join with prices.day, prices.hour, or prices.minute depending on the granularity needed. Accurate point-in-time TVL will improve once the Balances tables are fully available.
WITH morpho AS ( SELECT date_trunc('day', evt_block_time) AS day, 'Morpho (MetaMorpho)' AS protocol, COUNT(*) AS deposit_events FROM metamorpho_vaults_multichain.metamorpho_evt_deposit WHERE evt_block_time >= NOW() - INTERVAL '30' DAY GROUP BY 1),aave AS ( SELECT date_trunc('day', evt_block_time) AS day, 'Aave v3' AS protocol, COUNT(*) AS deposit_events FROM aave_v3_multichain.pool_evt_supply WHERE evt_block_time >= NOW() - INTERVAL '30' DAY GROUP BY 1),lido AS ( SELECT date_trunc('day', evt_block_time) AS day, 'Lido' AS protocol, COUNT(*) AS deposit_events FROM lido_ethereum.steth_evt_submitted WHERE evt_block_time >= NOW() - INTERVAL '30' DAY GROUP BY 1),fluid AS ( SELECT date_trunc('day', evt_block_time) AS day, 'Fluid' AS protocol, COUNT(*) AS deposit_events FROM fluid_multichain.fluidvaultt1_evt_logoperate WHERE evt_block_time >= NOW() - INTERVAL '30' DAY GROUP BY 1),euler AS ( SELECT date_trunc('day', evt_block_time) AS day, 'Euler v2' AS protocol, COUNT(*) AS deposit_events FROM euler_v2_ethereum.evault_evt_deposit WHERE evt_block_time >= NOW() - INTERVAL '30' DAY GROUP BY 1)SELECT * FROM morphoUNION ALL SELECT * FROM aaveUNION ALL SELECT * FROM lidoUNION ALL SELECT * FROM fluidUNION ALL SELECT * FROM eulerORDER BY day DESC, protocol
No unified dataset: Analysis requires protocol-specific logic. Each protocol has its own event schema and naming conventions.
Coverage varies: Not all protocols are decoded on all chains. Check the data explorer for the latest availability.
TVL is approximate: Deposit-minus-withdrawal tracking provides a proxy. For precise TVL, combine with balance snapshots and pricing data from prices.day or prices.hour.
APY data not available: On-chain yield/APY calculation requires combining interest accrual events with token pricing and time-weighted math. This is complex and protocol-specific.
Holder counts deferred: Accurate holder tracking requires the Balances tables, which are in open beta.
Some protocols overlap with Lending: Aave v3 data is also covered in the Lending curated tables in a normalized schema. Use the curated lending tables for cross-protocol comparisons, and decoded tables here for vault-specific or protocol-specific analysis.
Token decimals vary per vault: MetaMorpho vault assets values are denominated in the underlying token’s smallest unit (e.g., 6 decimals for USDC, 18 for WETH). Always join with tokens.erc20 for decimal normalization before computing USD values via prices.day.
Event counts ≠ volume: Cross-protocol event count comparisons are directional only. Some protocols (e.g., Fluid) emit a single event per operation that covers supply + borrow + repay, while others have separate events.
Automated activity: Some chains (e.g., Gnosis on Aave v3) show high event counts driven by automated/bot activity rather than organic user deposits.