Skip to main content
POST

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).
  • CSV Sample: Download
  • JSON Sample: Download

Parameters

chain_id
number
required
Target EVM network. See the Chain enumeration for supported values.

Range Filters (mutually exclusive)

from_block
number
Starting block number (inclusive) for the query. Use with to_block.
to_block
number
Ending block number (inclusive) for the query. Use with from_block.
from_timestamp
string
Starting timestamp (ISO-8601). If it falls between blocks, the next block after this timestamp is used. Use with to_timestamp.
to_timestamp
string
Ending timestamp (ISO-8601). If it falls between blocks, the last block before this timestamp is used. Use with from_timestamp.
Validation rule:
Every request must include a bounding window — either a block range (from_block/to_block) or a time range (from_timestamp/to_timestamp). The two ranges are mutually exclusive.
contract_addresses and signature_hashes are refinement filters only and must be combined with a block or time range; they cannot be used on their own. function_results is a very large partitioned table, and selectors are low-selectivity (a single hot selector such as transfer() matches a huge fraction of rows), so an unbounded selector scan would time out.
Providing no bounding window results in HTTP 400.

Refinement Filters

contract_addresses
string[]
Filter by 20-byte contract addresses (hex string, no 0x prefix). Resolved to matching contract_id incarnations. Up to 256 entries. Requires a block or time range.
signature_hashes
string[]
4-byte function selectors (8 hex characters, no 0x prefix). Use to scope calls to specific function signatures. Requires a block or time range.

Pagination Controls

limit
number
default:"250"
Recommended default 250; maximum 1000 to stay under ~10 MB responses.
cursor
string
Opaque pagination cursor returned from a prior call.

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.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 echoed from the request (contract addresses, signature hashes, latest_only, limit).

Data

data
object[]
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.
data.contract_id
string
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.
data.block_number
number
Snapshot block height when the value was observed.
data.block_time
string
Block time for the snapshot (ISO-8601).
data.call_data
string
Hex-encoded calldata sent to the contract. For simple getter functions, this is usually just the selector.
data.signature_hash
string
4-byte function selector (hex).
data.result
string | null
Hex-encoded return payload, or null. Decode using the ABI corresponding to signature_hash.
data.timestamp_utc
string
Observation timestamp (ISO-8601), aligned with the snapshot.
data._tracing_id
string
Internal lineage identifier (hex string, no 0x prefix) for cross-referencing with lineage endpoints.
data._created_at
string
Record creation timestamp (ISO-8601).
data._updated_at
string
Record last update timestamp (ISO-8601).

Envelope Fields

cursor
string | null
Pagination cursor to continue the query.
page_count
number
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.
Last modified on May 29, 2026