Skip to main content
Schema: ethereum.price Table: ez_asset_metadata Type: Base Table

What

This curated dimensional table provides comprehensive metadata for tokens and native assets across EVM blockchains. It serves as the authoritative source for asset information, with quality checks and verification status to ensure reliability.

Key Use Cases

  • Asset discovery and verification checking
  • Cross-chain asset mapping and analysis
  • Token metadata lookup for display purposes
  • Filtering for verified or native assets only

Important Relationships

  • Join with ez_prices_hourly: For price data enrichment
  • Join with ez_token_transfers: For transfer metadata

Commonly-used Fields

  • token_address: Contract address (NULL for native assets)
  • symbol: Token ticker symbol
  • name: Full asset name
  • decimals: Token decimal places
  • is_verified: Flipside verification status
  • is_native: Native asset flag
  • blockchain: Network identifier

Sample Queries

Verified Asset Discovery
-- Find all verified USD stablecoins
SELECT
    blockchain,
    token_address,
    name,
    symbol,
    decimals,
    is_verified
FROM <blockchain_name>.price.ez_asset_metadata
WHERE is_verified = TRUE
    AND (
        symbol IN ('USDC', 'USDT', 'DAI', 'BUSD')
        OR name ILIKE '%USD%'
        OR name ILIKE '%stablecoin%'
    )
    AND is_native = FALSE
ORDER BY blockchain, symbol;
Cross-Chain Asset Mapping
-- Find same assets across multiple chains
WITH asset_presence AS (
    SELECT
        symbol,
        name,
        COUNT(DISTINCT blockchain) AS chain_count,
        ARRAY_AGG(DISTINCT blockchain) AS chains,
        ARRAY_AGG(token_address) AS addresses
    FROM <blockchain_name>.price.ez_asset_metadata
    WHERE is_native = FALSE
        AND is_verified = TRUE
    GROUP BY 1, 2
)
SELECT * FROM asset_presence
WHERE chain_count > 3
ORDER BY chain_count DESC, symbol;
Native Asset Reference
-- Get all native assets with metadata
SELECT
    blockchain,
    symbol,
    name,
    decimals,
    CASE blockchain
        WHEN 'ethereum' THEN 'Proof of Stake'
        WHEN 'binance' THEN 'Proof of Staked Authority'
        WHEN 'polygon' THEN 'Proof of Stake'
        WHEN 'avalanche' THEN 'Avalanche Consensus'
        ELSE 'Various'
    END AS consensus_mechanism
FROM <blockchain_name>.price.ez_asset_metadata
WHERE is_native = TRUE
ORDER BY blockchain;

Columns

Column NameData TypeDescription
TOKEN_ADDRESSTEXTContract address of the token on the blockchain. NULL for native assets (ETH, AVAX, etc.).
Example: ‘0xa0b86a33e6776a1e7f9f0b8b8b8b8b8b8b8b8b8b’ | | ASSET_ID | TEXT | Unique identifier for the asset from the price provider. Provider-specific ID format. Example: ‘ethereum’ | | SYMBOL | TEXT | Token ticker symbol as commonly recognized. Usually 3-5 uppercase characters. Example: ‘WETH’ | | NAME | TEXT | Full name of the asset or token. More descriptive than symbol. Example: ‘Wrapped Ether’ | | DECIMALS | NUMBER | Number of decimal places for the token. Most ERC-20 tokens use 18 decimals, USDC/USDT use 6, WBTC uses 8. Example: 18 | | BLOCKCHAIN | TEXT | The blockchain network where the asset exists. Lowercase by convention. Example: ‘ethereum’ | | IS_NATIVE | BOOLEAN | Boolean indicating if the asset is the blockchain’s native currency. TRUE for ETH on Ethereum, AVAX on Avalanche, etc. Example: true | | IS_DEPRECATED | BOOLEAN | Flag indicating if the asset is no longer actively supported. TRUE for deprecated assets that may have stale prices. Example: false | | IS_VERIFIED | BOOLEAN | Boolean indicating Flipside team verification of the asset. TRUE for manually verified assets with validated metadata. Example: true | | IS_VERIFIED_MODIFIED_TIMESTAMP | TIMESTAMP_NTZ | | | EZ_ASSET_METADATA_ID | TEXT | Primary key - unique identifier for each row ensuring data integrity. Format: Usually VARCHAR containing composite key generated using MD5 hash of the relevant columns. Example: MD5(block_number, tx_hash, trace_index) Usage:
  • Deduplication in incremental loads
  • Join operations for data quality checks
  • Troubleshooting specific records
Important: Implementation varies by table - check table-specific documentation. | | INSERTED_TIMESTAMP | TIMESTAMP_NTZ | UTC timestamp when the record was first added to the Flipside database. Format: TIMESTAMP_NTZ Use Cases:
  • Data freshness monitoring
  • Incremental processing markers
  • Debugging data pipeline issues
  • SLA tracking
Query Example:
-- Check data latency
SELECT
    DATE_TRUNC('hour', block_timestamp) as block_hour,
    DATE_TRUNC('hour', inserted_timestamp) as insert_hour,
    AVG(TIMESTAMPDIFF('minute', block_timestamp, inserted_timestamp)) as avg_latency_minutes
FROM <blockchain_name>.core.fact_transactions
WHERE block_timestamp >= CURRENT_DATE - 1
GROUP BY 1, 2;
``` |
| MODIFIED_TIMESTAMP | TIMESTAMP_NTZ | UTC timestamp of the most recent update to this record.

**Format**: TIMESTAMP_NTZ

**Triggers for Updates**:
- Data corrections
- Enrichment additions
- Reprocessing for accuracy
- Schema migrations

**Monitoring Usage**:
```sql
-- Recently modified records
SELECT *
FROM <blockchain_name>.core.fact_transactions
WHERE modified_timestamp > inserted_timestamp
AND modified_timestamp >= CURRENT_DATE - 1;

-- Data quality tracking
SELECT
    DATE(modified_timestamp) as mod_date,
    COUNT(*) as records_updated,
    COUNT(DISTINCT block_number) as blocks_affected
FROM <blockchain_name>.core.fact_transactions
WHERE modified_timestamp > inserted_timestamp
GROUP BY 1
ORDER BY 1 DESC;
``` |