Prices
Daily Prices
Historical daily price data for tokens across all supported blockchains, aggregated at 00:00 UTC
prices.day
Overview
The prices.day
table provides daily token price data across all supported blockchains. It contains the last known price for each day, ensuring a continuous time series for price analysis.
Table Schema
Column | Type | Description |
---|---|---|
blockchain | varchar | Blockchain identifier (e.g., ‘ethereum’, ‘arbitrum’) |
contract_address | varbinary | Token contract address (fixed address for native tokens) |
symbol | varchar | Token symbol (e.g., ‘ETH’, ‘USDC’) |
timestamp | timestamp | Date timestamp (00:00 UTC of each day) |
price | double | Token price in USD |
decimals | int | Token decimals |
volume | double | Trading volume in USD (from price source) |
source | varchar | Data source (‘coinpaprika’ or ‘dex.trades’) |
source_timestamp | timestamp | Exact timestamp of the source data point |
Implementation Details
The daily prices are built through these steps:
- Collect sparse price observations from different sources
- Group by day, taking the most recent price observation per day
- Fill missing days with the previous day’s price (forward filling)
- Set a 30-day expiration for forward filling to avoid stale data
Usage
This table is ideal for analyzing daily price trends and performing day-over-day comparisons. It provides a good balance between data granularity and query performance for longer-term analyses.
Latency and Update Frequency
The prices.day
table is updated daily at 00:00 UTC, providing the closing price for the previous day. Data is typically available within 30 minutes of the daily close.
Usage Examples
Get ETH price history for the last month:
Calculate monthly average price for multiple tokens:
Get native token price using dune.blockchains:
Data Quality Notes
- Prices older than 30 days will not be forward-filled to avoid using stale data
- Native tokens (like ETH, BNB) are assigned fixed addresses for consistency
- For native tokens, use
dune.blockchains
table to get the standardized address for each blockchain - The same token may have different prices on different blockchains due to bridging inefficiencies
- Always use
contract_address
andblockchain
for precise token identification, never usesymbol
for joins or filters
Was this page helpful?