prices.hour
Overview
Theprices.hour
table provides hourly token prices using the same hybrid approach as all other price tables:
- Coinpaprika prices for tokens where we have reliable external data (~2,000 major tokens)
- DEX-derived prices for the long tail of tokens not covered by coinpaprika
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 | Hour timestamp (00:00, 01:00, etc. UTC of each hour) |
price | double | Token price in USD (volume-weighted average) |
decimals | int | Token decimals |
volume | double | Trading volume in USD (from price source) |
source | varchar | Data source (‘coinpaprika’ or ‘dex.trades’) |
Implementation Details
The hourly prices are built through these steps:- Source prioritization: Coinpaprika prices for ~2,000 major tokens, DEX-derived prices for long tail tokens
- Data aggregation: Group by hour, calculating volume-weighted average price per hour
- Forward filling: Fill missing hours with the previous hour’s price (forward filling)
- Expiration: Set a 7-day (168 hour) expiration for forward filling to avoid stale data
Source-Specific Variants
prices_coinpaprika.hour
For purely coinpaprika-based hourly prices:
- Coverage: Only tokens with Coinpaprika listings (~2,000 tokens)
- Source: External exchange-aggregated hourly pricing
- Use case: When you need stable, externally-validated hourly pricing
- Schema: Same as
prices.hour
butsource
is always ‘coinpaprika’
prices_dex.hour
For purely DEX-derived hourly prices:
- Coverage: All tokens with sufficient DEX trading volume
- Source: On-chain DEX trading activity only
- Use case: When you need pricing that reflects actual on-chain liquidity
- Schema: Same as
prices.hour
butsource
is always ‘dex.trades’
Usage
This table is useful for intraday analysis and tracking price movements with higher granularity than daily data. It’s suitable for examining price patterns within a day or across multiple days. Note: The underlying data sources are aligned to 5-minute intervals for consistency and improved data quality.Latency and Update Frequency
Theprices.hour
table is updated hourly based on the upstream data pipeline. As a result, prices typically have a latency of approximately 1 hour from real-time.
Usage Examples
Here are some examples of how to use the prices tables.Get hourly ETH prices for the last day:
Calculate volatility by hour of day:
Data Quality Notes
- Prices older than 7 days (168 hours) will not be forward-filled to avoid using stale data
- Native tokens (like ETH, BNB) are assigned fixed addresses for consistency
- Hourly data is useful for analyzing intraday patterns and short-term price movements
- Always use
contract_address
andblockchain
for precise token identification, never usesymbol
for joins or filters - Prices are calculated using volume-weighted averages for more accurate representation
- Quality Filtering: The system includes filtering mechanisms to reduce the impact of anomalous trades
- DEX-derived limitations: DEX-derived prices can contain errors due to low liquidity, market manipulation, or anomalous trades
- Fallback option: For critical applications, consider using
prices_coinpaprika.hour
for more reliable pricing where available - Data validation: Always validate prices for critical applications, especially for lesser-known tokens