Overview
- Dataset ID:
0122 - Function Results
- Description: On-chain function call return values versioned by block. Uses
contract_id (26 bytes) to support metamorphic contracts; primary key is (contract_id, block_number, call_data).
- Sample: Hugging Face Sample
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). Resolved to matching contract_id incarnations. Up to 256 entries.
4-byte function selectors (8 hex characters, no 0x prefix). Use to scope calls to specific function signatures.
Recommended default 250; maximum 1000 to stay under ~10 MB responses.
Opaque pagination cursor returned from a prior call.
Response Fields
Echo of request metadata applied to the response.
EVM chain ID echoed from the request.
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 (contract_id, block_number DESC) unless latest_only is true. Each row matches the linked dataset; the first 20 bytes of contract_id are the deployed address — there is no separate contract_address field in the payload.
Network where the call was executed.
Contract incarnation ID (hex string, 26 bytes, no 0x prefix): 20 bytes address + 4 bytes creation block + 2 bytes tx index. Use to join with contracts or for metamorphic disambiguation.
Snapshot block height when the value was observed.
Block time for the snapshot (ISO-8601).
Hex-encoded calldata sent to the contract. For simple getter functions, this is usually just the selector.
4-byte function selector (hex).
Hex-encoded return payload, or null. Decode using the ABI corresponding to signature_hash.
Observation timestamp (ISO-8601), aligned with the snapshot.
Internal lineage identifier (hex string, no 0x prefix) for cross-referencing with lineage endpoints.
Record creation timestamp (ISO-8601).
Record last update timestamp (ISO-8601).
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
}'
{
"meta": {
"chain_id": 1,
"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": [
{
"chain_id": 1,
"contract_id": "1234567890abcdef1234567890abcdef1234567800121a0700",
"block_number": 18934560,
"block_time": "2024-04-01T12:34:56.000Z",
"call_data": "0902f1ac",
"signature_hash": "0902f1ac",
"result": "0000000000000000000000000000000000000000000000000de0b6b3a7640000",
"timestamp_utc": "2024-04-01T12:34:56.000Z",
"_tracing_id": "0122000000000000000000000000000000000001",
"_created_at": "2025-11-11T18:42:15.123Z",
"_updated_at": "2025-11-11T18:42:15.123Z"
}
],
"cursor": null,
"count": 1
}