Description
Retrieves on-chain function call return values captured at specific block heights. Use this endpoint to hydrate oracle snapshots, monitor configuration values, or audit contract state without re-running eth_call at historical blocks.
Parameters
Target EVM network. See the Chain enumeration for supported values.
Range Filters (mutually exclusive)
Starting block number (inclusive) for the query. Use with to_block.
Ending block number (inclusive) for the query. Use with from_block.
Starting timestamp (ISO-8601). If it falls between blocks, the next block after this timestamp is used. Use with to_timestamp.
Ending timestamp (ISO-8601). If it falls between blocks, the last block before this timestamp is used. Use with from_timestamp.
Validation rule:
You must provide either a block range, a time range, or explicit selectors.
Providing more than one option (e.g., both ranges or ranges plus selectors) results in HTTP 400.
Providing none results in HTTP 400.
Direct Selectors
Filter by 20-byte contract addresses (hex string, no 0x prefix). Up to 256 entries.
4-byte function selectors (8 hex characters, no 0x prefix). Use to scope calls to specific function signatures.
Result Controls
When true, returns only the most recent result per (contract_address, signature_hash) within the requested range. Results are sorted by descending block_number.
Recommended default 250; maximum 1000 to stay under ~10 MB responses.
Opaque pagination cursor returned from a prior call.
Response Fields
EVM chain ID echoed at the response root.
Echo of request metadata applied to the response.
Block/timestamp bounds derived from the request.
Filters echoed from the request (contract addresses, signature hashes, latest_only, limit).
Data
Function result records ordered by (block_number DESC, contract_address, signature_hash) unless latest_only is true.
Dataset slug referencing this collection (0105_function-results). See the DatasetId enumeration for the underlying ID.
Explicit dataset ID when projection includes it (mirrors the prefix from the slug).
Network where the call was executed.
Contract queried (hex string, 20 bytes, no 0x prefix).
4-byte selector for the function invoked.
Snapshot block height when the value was observed.
ISO-8601 timestamp of the snapshot block.
Hex-encoded calldata sent to the contract. For simple getter functions, this is usually just the selector.
Hex-encoded return payload. Decode using the ABI corresponding to signature_hash.
Public tracing identifier for cross-referencing with lineage endpoints.
Internal lineage identifier (hex string, no 0x prefix).
ISO-8601 timestamp when BlockDB materialized the record.
Internal created-at timestamp (mirrors created_at).
ISO-8601 timestamp of the most recent update.
Internal updated-at timestamp (mirrors updated_at).
Envelope Fields
Pagination cursor to continue the query.
Number of records returned in this page.
Use Cases
- Refresh oracle or configuration caches with latest per-block values.
- Detect contract parameter changes by diffing consecutive results.
- Seed lineage exploration by pairing selectors with their upstream transactions and logs.
curl -X POST "https://api.blockdb.io/v1/evm/raw/function-results" \
-H "Authorization: Bearer $BLOCKDB_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"chain_id": 1,
"contract_addresses": [
"1234567890abcdef1234567890abcdef12345678"
],
"signature_hashes": [
"0902f1ac"
],
"from_block": 18934000,
"to_block": 18935000,
"from_timestamp": null,
"to_timestamp": null,
"latest_only": false,
"limit": 200,
"cursor": null
}'
{
"chain_id": 1,
"meta": {
"request_window": {
"from_block": 18934000,
"to_block": 18935000,
"from_timestamp": null,
"to_timestamp": null
},
"filters": {
"contract_addresses": [
"1234567890abcdef1234567890abcdef12345678"
],
"signature_hashes": [
"0902f1ac"
],
"latest_only": false
}
},
"data": [
{
"dataset": "0105_function-results",
"dataset_id": "0105",
"chain_id": 1,
"contract_address": "1234567890abcdef1234567890abcdef12345678",
"signature_hash": "0902f1ac",
"block_number": 18934560,
"timestamp_utc": "2024-04-01T12:34:56Z",
"call_data": "0902f1ac",
"result": "0000000000000000000000000000000000000000000000000de0b6b3a7640000",
"tracing_id": "0105000000000000000000000000000000000001",
"_tracing_id": "0105000000000000000000000000000000000001",
"created_at": "2025-11-11T18:42:15.123Z",
"_created_at": "2025-11-11T18:42:15.123Z",
"updated_at": "2025-11-11T18:42:15.123Z",
"_updated_at": "2025-11-11T18:42:15.123Z"
}
],
"cursor": null,
"count": 1
}