Skip to main content
Flipside organizes blockchain data into logical schemas, each serving different analytical needs. This structure is consistent across all supported blockchains.

Database structure

Each blockchain has its own database in Snowflake:
ETHEREUM_CORE (or ETHEREUM_PREMIUM)
├── ETHEREUM (Core schema)
├── DEFI (Premium only)
├── NFT (Premium only)
├── PRICE (Premium only)
├── STATS (Premium only)
└── [Protocol-specific schemas] (Premium only)
Naming convention: Databases are typically named [BLOCKCHAIN]_CORE for free shares or [BLOCKCHAIN]_PREMIUM for premium shares.

Schema breakdown

Core schema (Free + Premium)

The Core schema contains foundational blockchain data—blocks, transactions, logs, and basic token transfers.
Raw blockchain data organized by entity type.Common tables:
  • fact_blocks - Block-level data (timestamps, gas used, tx counts)
  • fact_transactions - All transactions with gas, value, success status
  • fact_event_logs - Raw event logs emitted by contracts
  • fact_traces - Internal transactions and calls (EVM chains)
  • fact_token_transfers - Native and fungible token transfers
Characteristics:
  • Highest data volume
  • Most frequently updated (30 min - 1 hour latency)
  • Optimal for raw blockchain analysis
Reference data and metadata for enrichment.Common tables:
  • dim_contracts - Contract addresses with metadata
  • dim_labels - Address labels (exchanges, protocols, etc.)
  • dim_contract_abis - Contract ABIs for decoding
Characteristics:
  • Lower update frequency (daily updates)
  • Used for joining with fact tables
  • Provides context and human-readable names
Simplified, curated views of core data.Common tables:
  • ez_token_transfers - Decoded token transfers with USD values
  • ez_decoded_event_logs - Human-readable event logs
  • ez_current_balances - Current token balances by address
  • ez_native_transfers - Native token transfers (ETH, SOL, etc.)
Characteristics:
  • Pre-joined with labels and metadata
  • Includes USD pricing where applicable
  • Easier to query for common use cases
Free shares include the entire Core schema. This is often sufficient for raw blockchain analysis, token tracking, and custom analytics.

DeFi schema (Premium only)

The DeFi schema contains curated DeFi protocol data—swaps, lending, liquidity, bridges, and more.
Decentralized exchange activity.Common tables:
  • ez_dex_swaps - All DEX swaps with USD values
  • fact_dex_swaps - Raw DEX swap events
  • dim_dex_liquidity_pools - Pool metadata
Use cases:
  • Trading volume analysis
  • Liquidity tracking
  • Price discovery
  • Arbitrage detection
Lending protocol activity (Aave, Compound, etc.).Common tables:
  • ez_lending_deposits - Deposit events with USD values
  • ez_lending_borrows - Borrow events with USD values
  • ez_lending_repayments - Repayment events
  • ez_lending_liquidations - Liquidation events
  • ez_lending_flashloans - Flash loan activity
Use cases:
  • TVL tracking
  • Risk monitoring
  • Liquidation analysis
  • Interest rate tracking
Liquidity pool actions (adds, removes).Common tables:
  • ez_liquidity_pool_actions - LP adds and removes
  • dim_liquidity_pools - Pool reference data
Use cases:
  • Liquidity provision analysis
  • Impermanent loss calculations
  • Pool performance tracking
Cross-chain bridge activity.Common tables:
  • ez_bridge_activity - Bridge transfers with USD values
  • fact_bridge_transfers - Raw bridge events
Use cases:
  • Cross-chain flow analysis
  • Bridge volume tracking
  • Capital migration patterns
Staking and governance activity.Common tables:
  • ez_staking - Staking deposits and withdrawals
  • fact_staking_events - Raw staking events
Use cases:
  • Staking participation tracking
  • Validator analysis
  • Reward distribution

NFT schema (Premium only)

The NFT schema contains NFT marketplace and transfer data.
Marketplace sales across all major platforms.Common tables:
  • ez_nft_sales - All NFT sales with USD values
  • fact_nft_sales - Raw sale events
Platforms covered:
  • OpenSea
  • Blur
  • LooksRare
  • X2Y2
  • Magic Eden (Solana)
  • And more…
Use cases:
  • Sales volume tracking
  • Floor price monitoring
  • Whale activity analysis
  • Collection performance
All NFT transfer events (ERC-721, ERC-1155, etc.).Common tables:
  • ez_nft_transfers - Decoded NFT transfers
  • fact_nft_transfers - Raw transfer events
Use cases:
  • Holder distribution
  • Transfer patterns
  • Wash trading detection
Collection and token metadata.Common tables:
  • dim_nft_collections - Collection-level metadata
  • dim_nft_metadata - Token-level attributes
Use cases:
  • Collection discovery
  • Rarity analysis
  • Metadata enrichment

Price schema (Premium only)

The Price schema contains historical price data for tokens and assets.
OHLC price data at various granularities.Common tables:
  • ez_prices_hourly - Hourly OHLC + volume
  • fact_prices - Raw price points
Characteristics:
  • Aggregated from multiple sources
  • Includes volume data
  • Cross-chain coverage
  • Historical data available
Use cases:
  • Historical price analysis
  • Correlation studies
  • Arbitrage detection
  • Portfolio valuation
Token and asset reference data.Common tables:
  • dim_asset_metadata - Asset symbols, decimals, etc.
Use cases:
  • Price joins
  • Asset identification
  • Symbol normalization

Stats schema (Premium only)

The Stats schema contains pre-computed metrics and aggregations.
Blockchain-level statistics.Common tables:
  • ez_core_metrics_hourly - Hourly chain stats
  • ez_core_metrics_daily - Daily chain stats
Metrics include:
  • Transaction counts
  • Active addresses
  • Gas metrics
  • Fee statistics
Protocol-specific aggregates.Common tables:
  • ez_defi_metrics_daily - DeFi protocol stats
  • ez_nft_metrics_daily - NFT collection stats
Use cases:
  • Dashboard creation
  • Trend analysis
  • Comparative metrics
  • Performance optimization (pre-aggregated)

Protocol-specific schemas (Premium only)

Some blockchains include additional schemas for major protocols.
  • Ethereum
  • Solana
  • Other chains
  • MAKER - MakerDAO governance and vaults
  • ENS - Ethereum Name Service registrations
  • BEACON - Ethereum 2.0 beacon chain data
  • L2 - Layer 2 rollup data

Schema naming patterns

Flipside uses consistent naming conventions across all blockchains:

Table prefixes

PrefixDescriptionExample
fact_Raw fact tables (large, frequently updated)fact_transactions
dim_Dimension tables (reference data)dim_labels
ez_Easy tables (curated, pre-joined)ez_token_transfers

Schema organization

-- Core schema (available in free shares)
[BLOCKCHAIN].core.fact_transactions
[BLOCKCHAIN].core.dim_labels

-- Premium schemas (available in premium shares)
[BLOCKCHAIN].defi.ez_dex_swaps
[BLOCKCHAIN].nft.ez_nft_sales
[BLOCKCHAIN].price.ez_prices_hourly
[BLOCKCHAIN].stats.ez_core_metrics_daily

Choosing the right schema

Use Core for

  • Raw blockchain exploration
  • Custom event decoding
  • Token transfer analysis
  • Building custom metrics
  • Maximum flexibility

Use DeFi for

  • DEX analytics - Lending protocol tracking - TVL calculations - Bridge flow analysis - Cross-protocol comparisons

Use NFT for

  • NFT sales tracking - Collection performance - Marketplace analytics - Holder distribution - Rarity analysis

Use Price for

  • Historical pricing - USD value conversions - Arbitrage detection - Portfolio valuation - Correlation analysis

Use Stats for

  • Dashboard creation - Pre-aggregated metrics - Performance optimization - Trend analysis - Quick insights

Use Protocol-specific for

  • Protocol-specific analysis
  • Governance tracking
  • Specialized metrics
  • Deep dives

Common query patterns

Start with Core, join with DeFi

-- Find DEX swaps for specific transactions
SELECT
    t.tx_hash,
    t.from_address,
    t.block_timestamp,
    s.platform,
    s.amount_in_usd,
    s.token_in,
    s.token_out
FROM ethereum.core.fact_transactions t
JOIN ethereum.defi.ez_dex_swaps s
    ON t.tx_hash = s.tx_hash
WHERE t.block_timestamp >= CURRENT_DATE - 7
  AND s.block_timestamp >= CURRENT_DATE - 7
LIMIT 1000;

Enrich with labels and prices

-- Token transfers with USD values and labels
SELECT
    tt.block_timestamp,
    tt.from_address,
    l_from.label AS from_label,
    tt.to_address,
    l_to.label AS to_label,
    tt.symbol,
    tt.amount,
    tt.amount_usd
FROM ethereum.core.ez_token_transfers tt
LEFT JOIN ethereum.core.dim_labels l_from
    ON tt.from_address = l_from.address
LEFT JOIN ethereum.core.dim_labels l_to
    ON tt.to_address = l_to.address
WHERE tt.block_timestamp >= CURRENT_DATE - 1
  AND tt.amount_usd > 10000
ORDER BY tt.amount_usd DESC
LIMIT 100;

Use Stats for quick insights

-- Daily Ethereum metrics
SELECT
    date,
    transaction_count,
    active_addresses,
    avg_gas_price,
    total_fees_usd
FROM ethereum.stats.ez_core_metrics_daily
WHERE date >= CURRENT_DATE - 30
ORDER BY date DESC;

Schema-specific documentation

For detailed table structures and column definitions:

Ethereum

Ethereum-specific tables and schemas

Solana

Solana-specific tables and schemas

Other chains

Additional blockchain documentation coming soon

Next steps