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

What

This table provides comprehensive metadata for all assets (tokens and native assets) tracked in the price schema across EVM blockchains. It includes provider, asset identifiers, names, symbols, contract addresses, blockchain, and verification status.

Key Use Cases

  • Join price data to asset metadata for enriched analysis
  • Cross-chain asset analysis and mapping
  • Asset discovery and verification status checking
  • Provider-specific data source analysis

Important Relationships

  • Join with ez_prices_hourly: For price time series data
  • Join with core.dim_contracts: For contract metadata

Commonly-used Fields

  • provider: Data source (coingecko, coinmarketcap, etc.)
  • asset_id: Provider-specific unique identifier
  • blockchain: Network identifier
  • token_address: Contract address (NULL for native assets)
  • symbol: Token ticker symbol
  • name: Full asset name

Sample Queries

Basic Asset Lookup
SELECT *
FROM <blockchain_name>.price.dim_asset_metadata
WHERE blockchain = 'ethereum'
ORDER BY symbol;

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’ | | BLOCKCHAIN | TEXT | The blockchain network where the asset exists. Lowercase by convention. Example: ‘ethereum’ | | BLOCKCHAIN_ID | TEXT | The numeric or string identifier for the blockchain on which the asset exists. Used for cross-chain mapping. Example: ‘1’ | | PROVIDER | TEXT | Data source that provided the price information. Values include ‘coingecko’, ‘coinmarketcap’, ‘dex_aggregated’. Example: ‘coingecko’ | | DIM_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;
``` |