Skip to main content
POST
/
v1
/
evm
/
prices
/
spot
/
fiat
/
vwap
curl -X POST "https://api.blockdb.io/v1/evm/prices/spot/fiat/vwap" \
  -H "Authorization: Bearer $BLOCKDB_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "chain_id": 1,
  "base_token_address": "c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
  "quote_currency_code": "USD",
  "from_block": 18930000,
  "to_block": 18939999,
  "exchange_ids": [
    1,
    2
  ],
  "pool_uids": [
    "88e6a0c2ddd26feeb64f039a2c41296fcb3f5640000000000000000000000000"
  ],
  "limit": 200,
  "cursor": null
}'
{
  "meta": {
    "chain_id": 1,
    "base_token_address": "c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
    "quote_currency_code": "USD",
    "request_window": {
      "from_block": 18930000,
      "to_block": 18939999,
      "from_timestamp": null,
      "to_timestamp": null
    },
    "resolved_window": {
      "from_block": 18930000,
      "to_block": 18939999,
      "from_timestamp": "2024-01-11T13:00:00Z",
      "to_timestamp": "2024-01-12T22:00:00Z"
    },
    "filters": {
      "exchange_ids": [
        1,
        2
      ],
      "pool_uids": [
        "88e6a0c2ddd26feeb64f039a2c41296fcb3f5640000000000000000000000000"
      ]
    }
  },
  "data": [
    {
      "first_block_number": 18930000,
      "first_block_time": "2025-11-11T18:00:11.000Z",
      "first_tx_index": 12,
      "first_log_index": 5,
      "last_block_number": 18939999,
      "last_block_time": "2025-11-11T18:59:48.000Z",
      "last_tx_index": 44,
      "last_log_index": 2,
      "bucket_start": "2025-11-11T18:00:00.000Z",
      "bucket_seconds": 3600,
      "token_address": "c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
      "price_usd": "3024.112233445566778899",
      "total_notional_usd": "1750000.000000000000000000",
      "hops": 2,
      "sources_count": 4,
      "_tracing_id": "0605000000000000000000000000000000000001",
      "_parent_tracing_ids": [
        "0505000000000000000000000000000000000001",
        "0505000000000000000000000000000000000002"
      ],
      "_created_at": "2025-11-11T19:00:05.000Z",
      "_updated_at": "2025-11-11T19:00:05.000Z"
    }
  ],
  "cursor": null,
  "page_count": 1
}
Not available on the public API yet: This endpoint is scheduled to become available by the end of May 2026. Until then, calls may fail (for example with 404, 403, or 501). For early access or contract timelines, contact support@blockdb.io.

Overview

Parameters

chain_id
number
required
Target EVM chain. See the Chain enumeration for supported values.
base_token_address
string
required
ERC-20 contract address for the base asset (hex string, 20 bytes, no 0x prefix).
quote_currency_code
string
required
Fiat currency code for the quote leg.

Range Filters (mutually exclusive)

from_block
number
Starting block (inclusive). Block ranges use strict containment: only buckets whose entire span maps to blocks within [from_block, to_block] are returned, so each bar aggregates only blocks inside your range. The partial bucket that merely contains from_block is excluded. A range narrower than one bucket_seconds returns no bars. Use with to_block.
to_block
number
Ending block (inclusive). The partial bucket that contains to_block (and also spans later blocks) is excluded — only buckets ending at or before to_block’s timestamp are returned. Use with from_block.
from_timestamp
string
Starting timestamp (ISO-8601). If it falls between blocks, the next block after this timestamp is used.
to_timestamp
string
Ending timestamp (ISO-8601). If it falls between blocks, the last block before this timestamp is used.
Validation rule:
You must provide either a block range, a time range, or at least one direct selector.
Providing more than one option results in HTTP 400.
Providing none results in HTTP 400.

Direct Selectors

exchange_ids
number[]
Filter by exchange identifiers. See the DigitalExchange enumeration.
pool_uids
string[]
Restrict to specific BlockDB pool identifiers.

Pagination Controls

limit
number
default:"250"
Recommended default 250; maximum 1000 to stay under ~10 MB responses.
cursor
string
Opaque pagination cursor supplied by a previous response.

Response Fields

Meta

meta
object
Echo of request metadata applied to the response.
meta.chain_id
number
EVM chain ID echoed from the request.
meta.base_token_address
string
ERC-20 contract address of the base asset, echoed from the request.
meta.quote_currency_code
string
Fiat currency code for the quote leg, echoed from the request.
meta.request_window
object
Pure echo of the window you sent (from_block/to_block/from_timestamp/to_timestamp); unset bounds are null.
meta.resolved_window
object | null
The concrete window the query actually executed against, after resolving the request. For a block range on a time-bucketed endpoint (OHLC/VWAP/VWAP-aggregate/fiat VWAP), from_timestamp/to_timestamp hold the resolved timestamp window (and from_block/to_block echo your request). For a time range on a block-keyed endpoint, from_block/to_block hold the resolved block range (and the timestamps echo your request). null for selector-only requests (no window). No extra database work is done — these are the values the query already computed.
meta.resolved_window.from_block
number | null
Resolved/echoed start block of the executed window.
meta.resolved_window.to_block
number | null
Resolved/echoed end block of the executed window.
meta.resolved_window.from_timestamp
string | null
Resolved/echoed start timestamp (ISO-8601) of the executed window.
meta.resolved_window.to_timestamp
string | null
Resolved/echoed end timestamp (ISO-8601) of the executed window.
meta.filters
object
Filters applied to the query (exchange IDs, pool UIDs).

Data

data
object[]
Fiat VWAP rows matching the request.
data.first_block_number
number
On-chain lineage anchor: block of the first contributing event in the bucket window.
data.first_block_time
string
Time of the first contributing event (ISO-8601).
data.first_tx_index
number
Transaction index of the first contributing event.
data.first_log_index
number
Log index of the first contributing event.
data.last_block_number
number
On-chain lineage anchor: block of the last contributing event in the bucket window.
data.last_block_time
string
Time of the last contributing event (ISO-8601).
data.last_tx_index
number
Transaction index of the last contributing event.
data.last_log_index
number
Log index of the last contributing event.
data.bucket_start
string
Inclusive UTC start of the VWAP bucket (ISO-8601).
data.bucket_seconds
number
Bucket width in seconds; one of 60, 300, 900, 1800, 3600, 14400, 86400.
data.token_address
string
ERC-20 token address (hex, 20 bytes, no 0x prefix).
data.price_usd
string
VWAP in USD for the bucket. Returned as a string to preserve precision.
data.total_notional_usd
string
Notional USD volume used in the VWAP weighting. Returned as a string to preserve precision.
data.hops
number
Minimum hop count from the stablecoin anchor along b0505 edges.
data.sources_count
number
Number of cross-pool pair edges (b0505 rows) used in the hop chain.
data._tracing_id
string
BlockDB tracing ID for the row (hex string, no 0x prefix); unique per row.
data._parent_tracing_ids
string[]
Tracing IDs of contributing b0505 VWAP lineage (each hex string without 0x).
data._created_at
string
Record creation timestamp (ISO-8601).
data._updated_at
string
Record update timestamp (ISO-8601).

Envelope Fields

cursor
string | null
Pagination cursor.
page_count
number
Number of VWAP entries returned.
curl -X POST "https://api.blockdb.io/v1/evm/prices/spot/fiat/vwap" \
  -H "Authorization: Bearer $BLOCKDB_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "chain_id": 1,
  "base_token_address": "c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
  "quote_currency_code": "USD",
  "from_block": 18930000,
  "to_block": 18939999,
  "exchange_ids": [
    1,
    2
  ],
  "pool_uids": [
    "88e6a0c2ddd26feeb64f039a2c41296fcb3f5640000000000000000000000000"
  ],
  "limit": 200,
  "cursor": null
}'
{
  "meta": {
    "chain_id": 1,
    "base_token_address": "c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
    "quote_currency_code": "USD",
    "request_window": {
      "from_block": 18930000,
      "to_block": 18939999,
      "from_timestamp": null,
      "to_timestamp": null
    },
    "resolved_window": {
      "from_block": 18930000,
      "to_block": 18939999,
      "from_timestamp": "2024-01-11T13:00:00Z",
      "to_timestamp": "2024-01-12T22:00:00Z"
    },
    "filters": {
      "exchange_ids": [
        1,
        2
      ],
      "pool_uids": [
        "88e6a0c2ddd26feeb64f039a2c41296fcb3f5640000000000000000000000000"
      ]
    }
  },
  "data": [
    {
      "first_block_number": 18930000,
      "first_block_time": "2025-11-11T18:00:11.000Z",
      "first_tx_index": 12,
      "first_log_index": 5,
      "last_block_number": 18939999,
      "last_block_time": "2025-11-11T18:59:48.000Z",
      "last_tx_index": 44,
      "last_log_index": 2,
      "bucket_start": "2025-11-11T18:00:00.000Z",
      "bucket_seconds": 3600,
      "token_address": "c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
      "price_usd": "3024.112233445566778899",
      "total_notional_usd": "1750000.000000000000000000",
      "hops": 2,
      "sources_count": 4,
      "_tracing_id": "0605000000000000000000000000000000000001",
      "_parent_tracing_ids": [
        "0505000000000000000000000000000000000001",
        "0505000000000000000000000000000000000002"
      ],
      "_created_at": "2025-11-11T19:00:05.000Z",
      "_updated_at": "2025-11-11T19:00:05.000Z"
    }
  ],
  "cursor": null,
  "page_count": 1
}
Last modified on May 29, 2026