Hyperflow API v0.2.13

One GraphQL endpoint for onchain data, real-time and historical back to genesis: blocks, transactions with gas and traces, event logs, decoded ERC-20/ERC-721 transfers and approvals, Uniswap V2 swaps, native and token balances, top holders, and live subscriptions. We host and index the chain; you query it.

Essentials

  • Endpoint — POST https://api.hyperflowlabs.com/ethereum/graphql
  • Auth — header x-api-key: <your key>. Create keys in the console (the secret is shown once, at creation; the playground auto-provisions its own key).
  • Subscriptions — WebSocket at the same URL (wss://…), graphql-transport-ws protocol, key passed in connectionParams.
  • Schema (SDL) — schema.graphql. Introspection is enabled on the endpoint.
  • For AI agents — llms.txt (machine-readable reference; point your coding agent at it).
  • Python client — code-gen-client: generated async client (ariadne-codegen) covering every operation.
  • Try it — the console playground runs queries against live mainnet with guided walkthroughs.

How to query

Headers: content-type: application/json and x-api-key: <your key>.

Body: standard GraphQL over HTTP — query (required), variables and operationName (optional):

curl -s https://api.hyperflowlabs.com/ethereum/graphql \
  -H 'content-type: application/json' \
  -H 'x-api-key: YOUR_KEY' \
  -d '{
    "query": "query Bal($addr: String!) { balance(walletAddress: $addr) { chainId balance { decimal wei } } }",
    "variables": { "addr": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045" }
  }'

Response: { "data": … } on success; failures arrive as { "errors": [ { "message", "locations", "extensions" } ] } with HTTP 200 — always check errors, not the status code. Numeric chain values (wei, gas) are decimal or hex strings, never floats; parsedTransfer / parsedSwap / balance.decimal give human-readable amounts.

Keys, latency & limits

  • Every field in the schema is annotated (db) or (rpc): (db) is served from our indexes in milliseconds; (rpc) proxies a node and can be slower or intermittently unavailable. Prefer (db) when both exist.
  • transactions is a multi-billion-row table — always bound scans with a blockNumber range (~7,200 blocks/day); point lookups need hash + blockNumber together. internalTransactions is expensive; select it sparingly.
  • Pagination: limit ≤ 1000 with offset; pageInfo.totalCount tells you how far to page.
  • One key per environment is the intended usage; keys are revocable in the console and usage is metered per key.

Continue with Getting Started or jump straight to the schema reference below.

Three patterns that cover most workloads.

Native balance lookups, indexed event queries, and live subscriptions.

Query

balance

Native ETH balance for a wallet at the latest block — or any historical block.

balance.graphql
query Balance($wallet: String!) {
  balance(walletAddress: $wallet) {
    chainId
    balance {
      wei
      decimal
      decimals
    }
  }
}
response.json
{
  "data": {
    "balance": {
      "chainId": 1,
      "balance": {
        "wei": "1284593170000000000",
        "decimal": "1.28459317",
        "decimals": 18
      }
    }
  }
}
Query

erc20TokenTransfers

The last 25 USDC transfers, ordered by block descending. Use parsedTransfer for human-readable amounts.

transfers.graphql
query UsdcTransfers {
  erc20TokenTransfers(
    input: {
      filters: {
        tokenAddress: { eq: "0xA0b8…eB48" }
  
      },
      orderBy: [{ field: BLOCK_NUMBER, direction: DESC }],
      pagination: { limit: 25 }
    }
  ) {
    items {
      fromAddress
      toAddress
      value
      blockNumber
      txHash
      parsedTransfer { amountFormatted decimals }
    }
    pageInfo { hasNextPage totalCount }
  }
}
response.json
{
  "data": {
    "erc20TokenTransfers": {
      "items": [
        {
          "fromAddress": "0x3f5C…79b1",
          "toAddress": "0x9d7e…c4aa",
          "value": "0xfd21a640",
          "blockNumber": "22841920",
          "txHash": "0xab12…ef34",
          "parsedTransfer": {
            "amountFormatted": "4250.0",
            "decimals": 6
          }
        }
      ],
      "pageInfo": {
        "hasNextPage": true,
        "totalCount": 184029331
      }
    }
  }
}
Subscription

newBlocks

Listen for new block headers. Filter with criteria.finalized when you only want finalized blocks.

newBlocks.graphql
subscription OnNewBlocks {
  newBlocks(criteria: { finalized: { eq: true } }) {
    number
    hash
    timestamp
    txCount
    finalized
  }
}
stream
Live
▶ block 22841921 · 0x9e3c…11ab · 12 tx · 12:04:07
▶ block 22841922 · 0x4cd2…ba83 · 191 tx · 12:04:19
▶ block 22841923 · 0x7b81…f0ce · 84 tx · 12:04:31
▶ block 22841924 · 0xaa53…29df · 27 tx · 12:04:43

Five deep dives into how queries compose.

Every dataset shares one shape — filters + orderBy + pagination — and results chain: what one query returns is the next query's filter. These five build on each other; each runs as-is.

Deep dive 1/5

Anatomy of a query

Per-field operators (eq/gt/gte/lt/lte/in) composed with or/and/not, ordered on an indexed field, paginated. Learn this once — blocks, transactions, logs, transfers, and swaps all work identically.

anatomy.graphql
query Anatomy {
  erc20TokenTransfers(input: {
    filters: {
      tokenAddress: { eq: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48" }   # AND
      or: [                                                                # OR group
        { fromAddress: { eq: "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045" } }
        { toAddress:   { eq: "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045" } }
      ]
    }
    orderBy: [{ field: BLOCK_NUMBER, direction: DESC }]   # indexed field = fast
    pagination: { limit: 15 }                             # limit ≤ 1000, offset for paging
  }) {
    pageInfo { totalCount hasNextPage }
    items { fromAddress toAddress txHash parsedTransfer { amountFormatted } }
  }
}
Deep dive 2/5

Drill into one transaction

Chaining: take a hash + blockNumber pair from any transaction list and open its event logs. Both together make it a fast point lookup on a multi-billion-row table.

drill-down.graphql
query OneTx {
  transactions(input: { filters: {
    hash:        { eq: "0x80bcde339d13869c243853ee419d8f8f0d7ccd9f99add4642d269c521a2b5c5d" }
    blockNumber: { eq: 25632324 }   # hash + block together = point lookup
  } }) {
    items {
      hash gasUsed gasPrice success
      logs { address topic0 data logIndex }
    }
  }
}
Deep dive 3/5

Follow the funds, hop by hop

An investigation is the same query re-run with the next address: wallet → counterparty → counterparty. fromAddress 0x000…0 is a mint, toAddress 0x000…0 a burn.

follow-funds.graphql
query Hop {
  erc20TokenTransfers(input: {
    filters: { fromAddress: { eq: "0x28C6c06298d514Db089934071355E5743bf21d60" } }
    orderBy: [{ field: BLOCK_NUMBER, direction: DESC }]
    pagination: { limit: 15 }
  }) {
    # take a toAddress from the result, swap it in above, run again — one hop downstream
    items { tokenAddress toAddress txHash parsedTransfer { amountFormatted } }
  }
}
Deep dive 4/5

Aggregate over a window

"How much gas did X pay this week?" Bound a block window (~7,200 blocks/day), page with limit/offset, sum gasUsed × gasPrice client-side. Always bound transaction scans with a blockNumber range.

gas-window.graphql
query GasWindow {
  transactions(input: {
    filters: {
      fromAddress: { eq: "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045" }
      blockNumber: { gte: 23000000 }   # bound the scan
    }
    orderBy: [{ field: BLOCK_NUMBER, direction: DESC }]
    pagination: { limit: 100, offset: 0 }
  }) {
    pageInfo { totalCount totalPages }   # how far to page
    items { blockNumber gasUsed gasPrice }   # fee(wei) = gasUsed * gasPrice
  }
}
Deep dive 5/5

Token intelligence in one call

Token-scoped fields nest under erc20Token(tokenAddress:): total supply, any wallet's balance, and the top-holder leaderboard — computed from indexed Transfer events, no archive node.

token-intel.graphql
query TokenIntel {
  erc20Token(tokenAddress: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48") {
    erc20TotalSupply { balance { decimal } }
    erc20BalanceOf(walletAddress: "0x83b8499b5637bdf5b4c3ddb5ee1f54a24c8518bd") { balance { decimal } }
    erc20Holders(limit: 10) { walletAddress balance { decimal } }
  }
}

Chain coverage on the way.

Same schema, no rewrites. Tell us which chain matters for your POC and we'll prioritise.

  1. Live today
    • Ethereum
  2. Next up
    • Arbitrum
    • Base
    • Optimism
    • Polygon
  3. Planned
    • BNB Chain
    • Avalanche
Query

balance

The native coin balance (e.g. ETH) held by a wallet, computed from all on-chain transactions and internal transfers. (db) — computed from our indexed database, not a live node balance check.

Response

Returns a BalanceResponse

Arguments

NameDescription
walletAddressString!
blockNumberInt Default = null
chainIdInt Default = null
example
query balance(
  $walletAddress: String!,
  $blockNumber: Int,
  $chainId: Int
) {
  balance(
    walletAddress: $walletAddress,
    blockNumber: $blockNumber,
    chainId: $chainId
  ) {
    chainId
    balance {
      ...BalanceResultFragment
    }
  }
}
Variables
example
{
  "walletAddress": "xyz789",
  "blockNumber": null,
  "chainId": null
}
Response
example
{
  "data": {
    "balance": {"chainId": 987, "balance": BalanceResult}
  }
}
Query

blocks

Searches blocks with optional filters (e.g. by number, miner, timestamp), pagination, and ordering. (db) — served from our indexed database.

Response

Returns a BlockConnection

Arguments

NameDescription
queryInputBlockQueryInput Default = null
example
query blocks($queryInput: BlockQueryInput) {
  blocks(queryInput: $queryInput) {
    items {
      ...BlockFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
  }
}
Variables
example
{"queryInput": null}
Response
example
{
  "data": {
    "blocks": {
      "items": [Block],
      "pageInfo": PageInfo
    }
  }
}
Query

dbSyncStatus

Checks whether the indexed database has fully caught up with the live blockchain node — compares block, transaction, and log counts to detect lag or mismatches. (db) reads from the database; (rpc) queries the node directly for comparison. Note: the database-side counts are not scoped to a single chain, so this comparison is only meaningful for single-chain deployments.

Response

Returns a DbSyncResponse!

Arguments

NameDescription
chainString Default = null
chainIdString Default = null
example
query dbSyncStatus(
  $chain: String,
  $chainId: String
) {
  dbSyncStatus(
    chain: $chain,
    chainId: $chainId
  ) {
    nodeMetadata {
      ...NodeMetadataFragment
    }
    dbSyncStatus {
      ...DbSyncStatusFragment
    }
  }
}
Variables
example
{"chain": null, "chainId": null}
Response
example
{
  "data": {
    "dbSyncStatus": {
      "nodeMetadata": NodeMetadata,
      "dbSyncStatus": DbSyncStatus
    }
  }
}
Query

delegateStakeChangedEvents

Searches DelegateStakeChanged events — recorded when a delegator's stake amount changes — with optional filters, pagination, and ordering. (db) Topic0: 0x52db726bc1b1643b24886ed6f0194a41de9abac79d1c12108aca494e5b2bda6b

Arguments

NameDescription
inputDelegateStakeChangedQueryInput Default = null
example
query delegateStakeChangedEvents($input: DelegateStakeChangedQueryInput) {
  delegateStakeChangedEvents(input: $input) {
    items {
      ...DelegateStakeChangedEventFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
  }
}
Variables
example
{"input": null}
Response
example
{
  "data": {
    "delegateStakeChangedEvents": {
      "items": [DelegateStakeChangedEvent],
      "pageInfo": PageInfo
    }
  }
}
Query

delegatedEvents

Searches Delegated events — recorded when a delegator selects a guardian to stake with — with optional filters, pagination, and ordering. (db) Topic0: 0x4bc154dd35d6a5cb9206482ecb473cdbf2473006d6bce728b9cc0741bcc59ea2

Response

Returns a DelegatedConnection

Arguments

NameDescription
inputDelegatedQueryInput Default = null
example
query delegatedEvents($input: DelegatedQueryInput) {
  delegatedEvents(input: $input) {
    items {
      ...DelegatedEventFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
  }
}
Variables
example
{"input": null}
Response
example
{
  "data": {
    "delegatedEvents": {
      "items": [DelegatedEvent],
      "pageInfo": PageInfo
    }
  }
}
Query

erc20Token

Looks up an ERC-20 token by its contract address, giving access to its total supply, holder list, and balance queries. (db, rpc) — balances are derived from indexed Transfer logs, with decimals fetched live from the token contract via RPC.

Response

Returns an ERC20Token!

Arguments

NameDescription
tokenAddressString!
example
query erc20Token($tokenAddress: String!) {
  erc20Token(tokenAddress: $tokenAddress) {
    tokenAddress
    erc20TotalSupply {
      ...BalanceResponseFragment
    }
    erc20BalanceOf {
      ...BalanceResponseFragment
    }
    erc20Holders {
      ...ERC20TokenHolderFragment
    }
  }
}
Variables
example
{"tokenAddress": "abc123"}
Response
example
{
  "data": {
    "erc20Token": {
      "tokenAddress": "xyz789",
      "erc20TotalSupply": BalanceResponse,
      "erc20BalanceOf": BalanceResponse,
      "erc20Holders": [ERC20TokenHolder]
    }
  }
}
Query

erc20TokenApprovals

Searches ERC-20 token approval events — where an owner authorizes a spender to move tokens on their behalf — with optional filters, pagination, and ordering. (db)

Response

Returns an ERC20TokenApprovalConnection

Arguments

NameDescription
inputERC20TokenApprovalQueryInput Default = null
example
query erc20TokenApprovals($input: ERC20TokenApprovalQueryInput) {
  erc20TokenApprovals(input: $input) {
    items {
      ...ERC20TokenApprovalFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
  }
}
Variables
example
{"input": null}
Response
example
{
  "data": {
    "erc20TokenApprovals": {
      "items": [ERC20TokenApproval],
      "pageInfo": PageInfo
    }
  }
}
Query

erc20TokenSwapEvents

Searches Uniswap V2 swap events (token exchanges within a liquidity pair contract) with optional filters, pagination, and ordering. (db)

Arguments

NameDescription
inputERC20TokenSwapEventQueryInput Default = null
example
query erc20TokenSwapEvents($input: ERC20TokenSwapEventQueryInput) {
  erc20TokenSwapEvents(input: $input) {
    items {
      ...ERC20TokenSwapEventFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
  }
}
Variables
example
{"input": null}
Response
example
{
  "data": {
    "erc20TokenSwapEvents": {
      "items": [ERC20TokenSwapEvent],
      "pageInfo": PageInfo
    }
  }
}
Query

erc20TokenTransfers

Searches ERC-20 token transfer events with optional filters (e.g. by token, sender, recipient), pagination, and ordering. (db)

Response

Returns an ERC20TokenTransferConnection

Arguments

NameDescription
inputERC20TokenTransferQueryInput Default = null
example
query erc20TokenTransfers($input: ERC20TokenTransferQueryInput) {
  erc20TokenTransfers(input: $input) {
    items {
      ...ERC20TokenTransferFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
  }
}
Variables
example
{"input": null}
Response
example
{
  "data": {
    "erc20TokenTransfers": {
      "items": [ERC20TokenTransfer],
      "pageInfo": PageInfo
    }
  }
}
Query

erc721Transfers

Searches NFT transfer events (ERC-721 standard) with optional filters (e.g. by contract, sender, recipient), pagination, and ordering. (db)

Response

Returns an ERC721TransferConnection

Arguments

NameDescription
inputERC721TransferQueryInput Default = null
example
query erc721Transfers($input: ERC721TransferQueryInput) {
  erc721Transfers(input: $input) {
    items {
      ...ERC721TransferFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
  }
}
Variables
example
{"input": null}
Response
example
{
  "data": {
    "erc721Transfers": {
      "items": [ERC721Transfer],
      "pageInfo": PageInfo
    }
  }
}
Query

estimateGas

Estimates how much gas a transaction would consume by simulating it on the node, without submitting it to the blockchain or spending any funds — equivalent to Ethereum's eth_estimateGas RPC method. (rpc)

Response

Returns an EstimateGasResult!

Arguments

NameDescription
inputEstimateGasInput!
chainString Default = null
chainIdInt Default = null
example
query estimateGas(
  $input: EstimateGasInput!,
  $chain: String,
  $chainId: Int
) {
  estimateGas(
    input: $input,
    chain: $chain,
    chainId: $chainId
  ) {
    gas
    gasDecimal
  }
}
Variables
example
{
  "input": EstimateGasInput,
  "chain": null,
  "chainId": null
}
Response
example
{
  "data": {
    "estimateGas": {
      "gas": "xyz789",
      "gasDecimal": 123
    }
  }
}
Query

ethCall

Simulates a contract call and returns its result without creating a real transaction or spending gas — equivalent to Ethereum's eth_call RPC method. Commonly used to read contract state, e.g. calling a view function. (rpc)

Response

Returns an EthCallResult!

Arguments

NameDescription
inputEthCallInput!
chainString Default = null
chainIdInt Default = null
example
query ethCall(
  $input: EthCallInput!,
  $chain: String,
  $chainId: Int
) {
  ethCall(
    input: $input,
    chain: $chain,
    chainId: $chainId
  ) {
    data
  }
}
Variables
example
{"input": EthCallInput, "chain": null, "chainId": null}
Response
example
{"data": {"ethCall": {"data": "xyz789"}}}
Query

ethGetCode

Returns the bytecode deployed at a given contract address — equivalent to Ethereum's eth_getCode RPC method. Returns '0x' if no contract deployment is indexed for this address. (db) — served from our indexed database rather than a live node call.

Response

Returns a String!

Arguments

NameDescription
addressString!
blockNumberInt Default = null
chainIdInt Default = null
example
query ethGetCode(
  $address: String!,
  $blockNumber: Int,
  $chainId: Int
) {
  ethGetCode(
    address: $address,
    blockNumber: $blockNumber,
    chainId: $chainId
  )
}
Variables
example
{
  "address": "xyz789",
  "blockNumber": null,
  "chainId": null
}
Response
example
{"data": {"ethGetCode": "xyz789"}}
Query

ethGetTransactionCount

Returns the number of transactions ever sent from an address — its current nonce, used to determine the next valid transaction sequence number. (db) — computed from indexed transaction history, not a live node query.

Response

Returns a TransactionCountResult!

Arguments

NameDescription
inputGetTransactionCountInput!
example
query ethGetTransactionCount($input: GetTransactionCountInput!) {
  ethGetTransactionCount(input: $input) {
    hex
    count
  }
}
Variables
example
{"input": GetTransactionCountInput}
Response
example
{
  "data": {
    "ethGetTransactionCount": {
      "hex": "xyz789",
      "count": "abc123"
    }
  }
}
Query

ethSyncing

Whether this node is still catching up with the blockchain network. Returns false once fully synced, or an object with the current, starting, and highest known block numbers while catching up. (rpc) — fetched live from the node, not from our indexed database.

Response

Returns a JSON

Arguments

NameDescription
chainString Default = null
chainIdInt Default = null
example
query ethSyncing(
  $chain: String,
  $chainId: Int
) {
  ethSyncing(
    chain: $chain,
    chainId: $chainId
  )
}
Variables
example
{"chain": null, "chainId": null}
Response
example
{"data": {"ethSyncing": {}}}
Query

getStorageAt

Reads the raw value stored at a specific storage slot of a contract — equivalent to Ethereum's eth_getStorageAt RPC method. Mostly useful for low-level contract inspection and debugging. (rpc)

Response

Returns a StorageAtResult!

Arguments

NameDescription
inputStorageAtInput!
chainString Default = null
chainIdInt Default = null
example
query getStorageAt(
  $input: StorageAtInput!,
  $chain: String,
  $chainId: Int
) {
  getStorageAt(
    input: $input,
    chain: $chain,
    chainId: $chainId
  ) {
    value
  }
}
Variables
example
{"input": StorageAtInput, "chain": null, "chainId": null}
Response
example
{
  "data": {
    "getStorageAt": {"value": "xyz789"}
  }
}
Query

internalTransactions

Searches internal transactions (traces) — calls and value transfers made during transaction execution — with optional filters, pagination, and ordering. (db)

Arguments

NameDescription
inputInternalTxQueryInput Default = null
example
query internalTransactions($input: InternalTxQueryInput) {
  internalTransactions(input: $input) {
    items {
      ...InternalTransactionFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
  }
}
Variables
example
{"input": null}
Response
example
{
  "data": {
    "internalTransactions": {
      "items": [InternalTransaction],
      "pageInfo": PageInfo
    }
  }
}
Query

logs

Searches event logs with optional filters (e.g. by contract address, event topic), pagination, and ordering. (db) — served from our indexed database.

Response

Returns a LogConnection

Arguments

NameDescription
inputLogQueryInput Default = null
example
query logs($input: LogQueryInput) {
  logs(input: $input) {
    items {
      ...LogFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
  }
}
Variables
example
{"input": null}
Response
example
{
  "data": {
    "logs": {
      "items": [Log],
      "pageInfo": PageInfo
    }
  }
}
Query

metadata

Response

Returns a Metadata!

example
query metadata {
  metadata {
    clientVersion
    chainId
    netVersion
    netListening
    netPeerCount
    ethSyncing
    ethMining
    ethHashrate
    ethProtocolVersion
    ethBlockNumber
    ethGasPrice
  }
}
Response
example
{
  "data": {
    "metadata": {
      "clientVersion": "abc123",
      "chainId": "abc123",
      "netVersion": "abc123",
      "netListening": true,
      "netPeerCount": "xyz789",
      "ethSyncing": {},
      "ethMining": false,
      "ethHashrate": "abc123",
      "ethProtocolVersion": "abc123",
      "ethBlockNumber": "abc123",
      "ethGasPrice": "xyz789"
    }
  }
}
Query

supportedChains

Lists every blockchain network this API currently supports, with each chain's ID and how much historical data is available.

Response

Returns [SupportedChain!]!

example
query supportedChains {
  supportedChains {
    chainId
    chainIdHex
    chainName
    nativeCurrencySymbol
    nativeCurrencyDecimals
    dataMode
  }
}
Response
example
{
  "data": {
    "supportedChains": [
      {
        "chainId": 123,
        "chainIdHex": "xyz789",
        "chainName": "abc123",
        "nativeCurrencySymbol": "abc123",
        "nativeCurrencyDecimals": 123,
        "dataMode": "FULL_HISTORY"
      }
    ]
  }
}
Query

transactions

Searches transactions with optional filters (e.g. by sender, recipient, value), pagination, and ordering. (db) — served from our indexed database.

Response

Returns a TransactionConnection

Arguments

NameDescription
inputTransactionQueryInput Default = null
example
query transactions($input: TransactionQueryInput) {
  transactions(input: $input) {
    items {
      ...TransactionFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
  }
}
Variables
example
{"input": null}
Response
example
{
  "data": {
    "transactions": {
      "items": [Transaction],
      "pageInfo": PageInfo
    }
  }
}
Query

usageStat

Returns usage statistics (currently returns mock data) (mock)

Response

Returns an Effectiveness!

example
query usageStat {
  usageStat {
    effectiveness
    jsonrpcRatio
  }
}
Response
example
{"data": {"usageStat": {"effectiveness": 123.45, "jsonrpcRatio": 123.45}}}
Query

web3Sha3

Computes the Keccak-256 hash (Ethereum's standard hashing algorithm) of the given message. (local) — computed directly by this API, not read from a blockchain node or database.

Response

Returns a String!

Arguments

NameDescription
messageString!
example
query web3Sha3($message: String!) {
  web3Sha3(message: $message)
}
Variables
example
{"message": "xyz789"}
Response
example
{"data": {"web3Sha3": "xyz789"}}
Mutation

sendRawTransaction

Broadcasts an already-signed transaction to the blockchain network and returns its transaction hash. (rpc) — forwarded live to a node, not processed by our database.

Response

Returns a String!

Arguments

NameDescription
signedTxString!
chainString Default = null
chainIdInt Default = null
example
mutation sendRawTransaction(
  $signedTx: String!,
  $chain: String,
  $chainId: Int
) {
  sendRawTransaction(
    signedTx: $signedTx,
    chain: $chain,
    chainId: $chainId
  )
}
Variables
example
{
  "signedTx": "xyz789",
  "chain": null,
  "chainId": null
}
Response
example
{"data": {"sendRawTransaction": "abc123"}}
Mutation

sendTransaction

Assembles a signed transaction from the given fields and supplied signature, then broadcasts it to the network. (rpc) — forwarded live to a node, not processed by our database.

Response

Returns a String!

Arguments

NameDescription
txDataBuildTransactionInput!
signatureSignatureInput!
chainString Default = null
chainIdInt Default = null
example
mutation sendTransaction(
  $txData: BuildTransactionInput!,
  $signature: SignatureInput!,
  $chain: String,
  $chainId: Int
) {
  sendTransaction(
    txData: $txData,
    signature: $signature,
    chain: $chain,
    chainId: $chainId
  )
}
Variables
example
{
  "txData": BuildTransactionInput,
  "signature": SignatureInput,
  "chain": null,
  "chainId": null
}
Response
example
{"data": {"sendTransaction": "abc123"}}
Mutation

sendTransactions

Assembles and broadcasts many transactions in a single call, using the signature supplied for each. The node argument is a recursive tree where each node is exactly one of item (a single transaction), seq (children executed sequentially) or par (children executed in parallel). Returns the transaction hashes in execution order.

Response

Returns [TransactionResult!]!

Arguments

NameDescription
nodeTransactionNode!
chainString Default = null
chainIdInt Default = null
example
mutation sendTransactions(
  $node: TransactionNode!,
  $chain: String,
  $chainId: Int
) {
  sendTransactions(
    node: $node,
    chain: $chain,
    chainId: $chainId
  ) {
    hash
    success
    error
  }
}
Variables
example
{"node": TransactionNode, "chain": null, "chainId": null}
Response
example
{
  "data": {
    "sendTransactions": [
      {
        "hash": "abc123",
        "success": false,
        "error": "abc123"
      }
    ]
  }
}
Mutation

signTransaction

Assembles a signed raw transaction from the given fields and supplied signature, without sending it anywhere. (local) — computed by this API only; nothing is broadcast to the network.

Response

Returns a String!

Arguments

NameDescription
txDataBuildTransactionInput!
signatureSignatureInput!
example
mutation signTransaction(
  $txData: BuildTransactionInput!,
  $signature: SignatureInput!
) {
  signTransaction(
    txData: $txData,
    signature: $signature
  )
}
Variables
example
{
  "txData": BuildTransactionInput,
  "signature": SignatureInput
}
Response
example
{"data": {"signTransaction": "xyz789"}}
Subscription

newBlocks

Streams each new block in real time as it's produced on the chain, optionally filtered by criteria. Uses a drop-oldest buffer, so a slow consumer may miss blocks under heavy load rather than blocking the stream. (live)

Response

Returns a Block!

Arguments

NameDescription
criteriaBlockFilterInput Default = null
example
subscription newBlocks($criteria: BlockFilterInput) {
  newBlocks(criteria: $criteria) {
    number
    hash
    parentHash
    timestamp
    miner
    gasUsed
    gasLimit
    baseFee
    difficulty
    totalDifficulty
    size
    txCount
    stateRoot
    txRoot
    receiptRoot
    nonce
    mixDigest
    uncleHash
    uncles
    uncleCount
    withdrawalsHash
    withdrawalCount
    blobGasUsed
    excessBlobGas
    logsBloom
    extraData
    parentBeaconRoot
    requestsHash
    chainId
    finalized
    transactions {
      ...TransactionFragment
    }
  }
}
Variables
example
{"criteria": null}
Response
example
{
  "data": {
    "newBlocks": {
      "number": "xyz789",
      "hash": "xyz789",
      "parentHash": "xyz789",
      "timestamp": "abc123",
      "miner": "xyz789",
      "gasUsed": "abc123",
      "gasLimit": "xyz789",
      "baseFee": "xyz789",
      "difficulty": "xyz789",
      "totalDifficulty": "abc123",
      "size": "abc123",
      "txCount": "abc123",
      "stateRoot": "xyz789",
      "txRoot": "abc123",
      "receiptRoot": "abc123",
      "nonce": "abc123",
      "mixDigest": "xyz789",
      "uncleHash": "xyz789",
      "uncles": ["xyz789"],
      "uncleCount": "xyz789",
      "withdrawalsHash": "abc123",
      "withdrawalCount": "abc123",
      "blobGasUsed": "xyz789",
      "excessBlobGas": "abc123",
      "logsBloom": "abc123",
      "extraData": "xyz789",
      "parentBeaconRoot": "xyz789",
      "requestsHash": "xyz789",
      "chainId": "abc123",
      "finalized": true,
      "transactions": [Transaction]
    }
  }
}
Subscription

newLogs

Streams new event logs in real time as they're emitted by transactions in each new block, optionally filtered by criteria. Uses a drop-oldest buffer, so a slow consumer may miss logs under heavy load rather than blocking the stream. (live)

Response

Returns a Log!

Arguments

NameDescription
criteriaLogFilterInput Default = null
example
subscription newLogs($criteria: LogFilterInput) {
  newLogs(criteria: $criteria) {
    blockNumber
    txIndex
    logIndex
    txHash
    blockHash
    address
    topic0
    topic1
    topic2
    topic3
    data
    removed
    chainId
    topics
    block {
      ...BlockFragment
    }
    transaction {
      ...EmbeddedTransactionFragment
    }
  }
}
Variables
example
{"criteria": null}
Response
example
{
  "data": {
    "newLogs": {
      "blockNumber": "abc123",
      "txIndex": "xyz789",
      "logIndex": "abc123",
      "txHash": "abc123",
      "blockHash": "xyz789",
      "address": "abc123",
      "topic0": "xyz789",
      "topic1": "abc123",
      "topic2": "abc123",
      "topic3": "xyz789",
      "data": "abc123",
      "removed": true,
      "chainId": "xyz789",
      "topics": ["abc123"],
      "block": Block,
      "transaction": EmbeddedTransaction
    }
  }
}
Subscription

newPendingTransactions

Intended to stream unconfirmed (mempool) transactions in real time. (stub) — the mempool isn't indexed yet; this subscription connects but never emits events.

Response

Returns a Transaction!

example
subscription newPendingTransactions {
  newPendingTransactions {
    blockNumber
    txIndex
    hash
    fromAddress
    toAddress
    valueWei
    gas
    gasPrice
    gasUsed
    nonce
    txType
    maxFeePerGas
    maxPriorityFeePerGas
    input
    v
    r
    s
    size
    success
    logsCount
    chainId
    block {
      ...BlockFragment
    }
    logs {
      ...EmbeddedLogFragment
    }
    internalTransactions {
      ...InternalTransactionFragment
    }
  }
}
Response
example
{
  "data": {
    "newPendingTransactions": {
      "blockNumber": "xyz789",
      "txIndex": "xyz789",
      "hash": "abc123",
      "fromAddress": "xyz789",
      "toAddress": "xyz789",
      "valueWei": "xyz789",
      "gas": "abc123",
      "gasPrice": "xyz789",
      "gasUsed": "xyz789",
      "nonce": "abc123",
      "txType": "xyz789",
      "maxFeePerGas": "xyz789",
      "maxPriorityFeePerGas": "xyz789",
      "input": "abc123",
      "v": "xyz789",
      "r": "xyz789",
      "s": "xyz789",
      "size": "abc123",
      "success": "xyz789",
      "logsCount": "xyz789",
      "chainId": "abc123",
      "block": Block,
      "logs": [EmbeddedLog],
      "internalTransactions": [InternalTransaction]
    }
  }
}
Subscription

newTransactions

Streams new transactions in real time as they're included in each new block, optionally filtered by criteria. Uses a drop-oldest buffer, so a slow consumer may miss transactions under heavy load rather than blocking the stream. (live)

Response

Returns a Transaction!

Arguments

NameDescription
criteriaTransactionFilterInput Default = null
example
subscription newTransactions($criteria: TransactionFilterInput) {
  newTransactions(criteria: $criteria) {
    blockNumber
    txIndex
    hash
    fromAddress
    toAddress
    valueWei
    gas
    gasPrice
    gasUsed
    nonce
    txType
    maxFeePerGas
    maxPriorityFeePerGas
    input
    v
    r
    s
    size
    success
    logsCount
    chainId
    block {
      ...BlockFragment
    }
    logs {
      ...EmbeddedLogFragment
    }
    internalTransactions {
      ...InternalTransactionFragment
    }
  }
}
Variables
example
{"criteria": null}
Response
example
{
  "data": {
    "newTransactions": {
      "blockNumber": "xyz789",
      "txIndex": "abc123",
      "hash": "xyz789",
      "fromAddress": "abc123",
      "toAddress": "abc123",
      "valueWei": "abc123",
      "gas": "xyz789",
      "gasPrice": "xyz789",
      "gasUsed": "xyz789",
      "nonce": "abc123",
      "txType": "xyz789",
      "maxFeePerGas": "abc123",
      "maxPriorityFeePerGas": "abc123",
      "input": "abc123",
      "v": "abc123",
      "r": "abc123",
      "s": "abc123",
      "size": "abc123",
      "success": "xyz789",
      "logsCount": "xyz789",
      "chainId": "abc123",
      "block": Block,
      "logs": [EmbeddedLog],
      "internalTransactions": [InternalTransaction]
    }
  }
}
Object

BalanceResponse

A balance result together with the blockchain it was resolved on.

Fields

Field nameDescription
chainId — Int Chain ID the balance was resolved on. For native balance this is the chain of the matched row; for aggregated ERC-20 lookups it is null unless scoped by the chainId filter
balance — BalanceResult! Balance in multiple representations
example
{"chainId": 987, "balance": BalanceResult}
Object

BalanceResult

An account balance expressed in several equivalent formats: raw hex, wei, and a human-readable decimal amount.

Fields

Field nameDescription
hex — String! Balance as 0x-prefixed hex string (e.g. '0xde0b6b3a7640000')
wei — String! Balance as a decimal string in wei — the smallest unit of ETH (1 ETH = 10^18 wei), e.g. '1000000000000000000'.
decimals — Int! Decimal places used for conversion (18 for native ETH, token-specific for ERC-20, 0 if contract does not implement decimals())
decimal — String! Human-readable balance with decimals applied (e.g. '1.0' = 1 ETH)
example
{
  "hex": "xyz789",
  "wei": "xyz789",
  "decimals": 123,
  "decimal": "xyz789"
}
Scalar

BigInt

Whole number of unlimited size, for values too large for GraphQL's standard Int (e.g. token balances in wei). Sent as a string in JSON to avoid precision loss.

example
{}
Input

BigIntFilter

Filter for very large integer fields (e.g. wei amounts, up to 256-bit); values are given as strings to avoid precision loss.

Fields

Field nameDescription
eq — String Equals (as string for large numbers). Default = null
ne — String Not equals. Default = null
gt — String Greater than. Default = null
gte — String Greater than or equal. Default = null
lt — String Less than. Default = null
lte — String Less than or equal. Default = null
in — [String!] In list of values (max 500 entries). Default = null
notIn — [String!] Not in list of values (max 500 entries). Default = null
between — [String!] Between two values [min, max]. Default = null
isNull — Boolean Is null check. Default = null
example
{
  "eq": "xyz789",
  "ne": "abc123",
  "gt": "xyz789",
  "gte": "abc123",
  "lt": "abc123",
  "lte": "abc123",
  "in": ["xyz789"],
  "notIn": ["xyz789"],
  "between": ["xyz789"],
  "isNull": false
}
Object

Block

A block on the blockchain (works the same way across all supported chains).

Fields

Field nameDescription
number — String! Block number, decimal string (db)
hash — String! Block hash, 0x-prefixed 32-byte hex (db)
parentHash — String Parent block hash, 0x-prefixed 32-byte hex (db)
timestamp — String Unix timestamp (seconds since epoch), decimal string (db)
miner — String Miner/validator address, checksummed EIP-55 (db)
gasUsed — String Total gas used by all transactions, decimal string (db)
gasLimit — String Block gas limit, decimal string (db)
baseFee — String Base fee per gas in wei, decimal string; '0' for pre-EIP-1559 blocks (db)
difficulty — String Block difficulty, decimal string; '0' post-Merge (db)
totalDifficulty — String Cumulative chain difficulty, decimal string (db)
size — String Block size in bytes, decimal string (db)
txCount — String Transaction count in the block, decimal string (db)
stateRoot — String State trie root, 0x-prefixed 32-byte hex (db)
txRoot — String Transaction trie root, 0x-prefixed 32-byte hex (db)
receiptRoot — String Receipts trie root, 0x-prefixed 32-byte hex (db)
nonce — String Block nonce (PoW), decimal string; '0' post-Merge (db)
mixDigest — String Mix hash for PoW, 0x-prefixed 32-byte hex (db)
uncleHash — String SHA3 of uncles list, 0x-prefixed 32-byte hex (db)
uncles — [String!] Uncle block hashes, each 0x-prefixed 32-byte hex (db)
uncleCount — String Number of uncle blocks, decimal string (db)
withdrawalsHash — String Withdrawals trie root, 0x-prefixed 32-byte hex (EIP-4895) (db)
withdrawalCount — String Number of validator withdrawals, decimal string (db)
blobGasUsed — String Blob gas consumed, decimal string (EIP-4844) (db)
excessBlobGas — String Excess blob gas for pricing, decimal string (EIP-4844) (db)
logsBloom — String Bloom filter for log lookup, 0x-prefixed 256-byte hex (db)
extraData — String Arbitrary data set by the miner, 0x-prefixed hex (db)
parentBeaconRoot — String Parent beacon block root, 0x-prefixed 32-byte hex (EIP-4788) (db)
requestsHash — String Requests trie root, 0x-prefixed 32-byte hex (EIP-7685) (db)
chainId — String Chain ID, decimal string (db)
finalized — Boolean! Whether the block is finalized (block.number <= finality watermark). Pending blocks served from the in-process ring buffer or live subscription are finalized=false. When watermark is 0 (ClickHouse empty / cold start), all blocks are treated as not-yet-finalized regardless of source. Watermark is frozen per-request for source-fixation.
transactions — [Transaction!]! This block's transactions, lazy-loaded on request. (db)
example
{
  "number": "xyz789",
  "hash": "xyz789",
  "parentHash": "xyz789",
  "timestamp": "abc123",
  "miner": "abc123",
  "gasUsed": "xyz789",
  "gasLimit": "abc123",
  "baseFee": "abc123",
  "difficulty": "abc123",
  "totalDifficulty": "xyz789",
  "size": "xyz789",
  "txCount": "xyz789",
  "stateRoot": "abc123",
  "txRoot": "xyz789",
  "receiptRoot": "xyz789",
  "nonce": "abc123",
  "mixDigest": "xyz789",
  "uncleHash": "abc123",
  "uncles": ["abc123"],
  "uncleCount": "abc123",
  "withdrawalsHash": "abc123",
  "withdrawalCount": "xyz789",
  "blobGasUsed": "xyz789",
  "excessBlobGas": "xyz789",
  "logsBloom": "xyz789",
  "extraData": "abc123",
  "parentBeaconRoot": "abc123",
  "requestsHash": "abc123",
  "chainId": "abc123",
  "finalized": true,
  "transactions": [Transaction]
}
Object

BlockConnection

A page of block results, with pagination info.

Fields

Field nameDescription
items — [Block!]! List of blocks in this page
pageInfo — PageInfo! Pagination information
example
{
  "items": [Block],
  "pageInfo": PageInfo
}
Input

BlockFilterInput

Filter conditions for querying blocks, combinable with AND/OR/NOT logic.

Fields

Field nameDescription
hash — StringFilter Filter by block hash. Default = null
parentHash — StringFilter Filter by parent block hash. Default = null
miner — StringFilter Filter by miner address. Default = null
nonce — StringFilter Filter by block nonce. Default = null
stateRoot — StringFilter Filter by state root. Default = null
txRoot — StringFilter Filter by transaction root. Default = null
receiptRoot — StringFilter Filter by receipt root. Default = null
mixDigest — StringFilter Filter by mix digest. Default = null
uncleHash — StringFilter Filter by uncle hash. Default = null
extraData — StringFilter Filter by extra data. Default = null
logsBloom — StringFilter Filter by logs bloom. Default = null
withdrawalsHash — StringFilter Filter by withdrawals hash. Default = null
parentBeaconRoot — StringFilter Filter by parent beacon root. Default = null
requestsHash — StringFilter Filter by requests hash. Default = null
number — IntFilter Filter by block number. Default = null
gasLimit — BigIntFilter Filter by gas limit. Default = null
gasUsed — BigIntFilter Filter by gas used. Default = null
timestamp — IntFilter Filter by timestamp. Default = null
difficulty — BigIntFilter Filter by difficulty. Default = null
totalDifficulty — BigIntFilter Filter by total difficulty. Default = null
size — IntFilter Filter by block size. Default = null
baseFee — BigIntFilter Filter by base fee per gas (EIP-1559). Default = null
txCount — IntFilter Filter by transaction count. Default = null
uncleCount — IntFilter Filter by uncle count. Default = null
withdrawalCount — IntFilter Filter by withdrawal count. Default = null
blobGasUsed — BigIntFilter Filter by blob gas used. Default = null
excessBlobGas — BigIntFilter Filter by excess blob gas. Default = null
chainId — IntFilter Filter by chain ID. Default = null
finalized — BoolFilter Filter by whether the block's number is at or below the indexer's finalized-block watermark. Default = null
and — [BlockFilterInput!] Combine multiple filters with AND logic. Default = null
or — [BlockFilterInput!] Combine multiple filters with OR logic. Default = null
not — BlockFilterInput Negate the filter conditions. Default = null
example
{
  "hash": StringFilter,
  "parentHash": StringFilter,
  "miner": StringFilter,
  "nonce": StringFilter,
  "stateRoot": StringFilter,
  "txRoot": StringFilter,
  "receiptRoot": StringFilter,
  "mixDigest": StringFilter,
  "uncleHash": StringFilter,
  "extraData": StringFilter,
  "logsBloom": StringFilter,
  "withdrawalsHash": StringFilter,
  "parentBeaconRoot": StringFilter,
  "requestsHash": StringFilter,
  "number": IntFilter,
  "gasLimit": BigIntFilter,
  "gasUsed": BigIntFilter,
  "timestamp": IntFilter,
  "difficulty": BigIntFilter,
  "totalDifficulty": BigIntFilter,
  "size": IntFilter,
  "baseFee": BigIntFilter,
  "txCount": IntFilter,
  "uncleCount": IntFilter,
  "withdrawalCount": IntFilter,
  "blobGasUsed": BigIntFilter,
  "excessBlobGas": BigIntFilter,
  "chainId": IntFilter,
  "finalized": BoolFilter,
  "and": [BlockFilterInput],
  "or": [BlockFilterInput],
  "not": BlockFilterInput
}
Input

BlockOrderByInput

Block ordering parameters

Fields

Field nameDescription
field — BlockOrderField! Field to order by. Default = NUMBER
direction — SortDirection! Sort direction. Default = DESC
example
{"field": "NUMBER", "direction": "ASC"}
Enum

BlockOrderField

Block fields available for ordering

Values

Enum ValueDescription

NUMBER

HASH

TIMESTAMP

GAS_USED

GAS_LIMIT

MINER

DIFFICULTY

SIZE

example
"NUMBER"
Input

BlockQueryInput

Input for querying blocks with filters

Fields

Field nameDescription
filters — BlockFilterInput Filter conditions for blocks. Default = null
pagination — PaginationInput Pagination settings. Default = null
orderBy — [BlockOrderByInput!] Ordering settings (multiple fields supported). Default = null
example
{
  "filters": BlockFilterInput,
  "pagination": PaginationInput,
  "orderBy": [BlockOrderByInput]
}
Object

BlockRevertedEvent

Emitted when a previously-published block is replaced by a chain reorganisation. Stub: no events are produced until the indexer implements reorg signalling.

Fields

Field nameDescription
blockNumber — String! Number of the reverted block, decimal string
blockHash — String! Hash of the reverted block, 0x-prefixed 32-byte hex
example
{
  "blockNumber": "xyz789",
  "blockHash": "xyz789"
}
Object

BlockSyncStatus

Compares block counts in the database against the node. Note: this check is not chain-scoped — the database side counts blocks across all indexed chains, while the node side reflects a single chain, so results are only meaningful for single-chain deployments.

Fields

Field nameDescription
nodeLastBlock — BigInt! Latest block number reported by the node (rpc)
dbMaxBlock — BigInt! Max block number in DB (db)
dbActualCount — BigInt! Actual block count in DB (db)
expected — BigInt! Expected block count if fully synced (node's last block + 1, since blocks are 0-indexed). Only meaningful for chains configured for full history — chains configured as live-only will never reach this count, so is_synced will stay false for them. (rpc)
actual — BigInt! Actual count (db)
isSynced — Boolean! True only if the database's block count matches the expected count AND the database's max block number matches the node's last block number (db, rpc)
status — SyncStatusEnum! Sync status (db, rpc)
message — String Status description (db, rpc)
example
{
  "nodeLastBlock": {},
  "dbMaxBlock": {},
  "dbActualCount": {},
  "expected": {},
  "actual": {},
  "isSynced": false,
  "status": "SYNCED",
  "message": "xyz789"
}
Input

BoolFilter

Filter for boolean fields (UInt8 0/1)

Fields

Field nameDescription
eq — Boolean Equals. Default = null
isNull — Boolean Is null check. Default = null
example
{"eq": true, "isNull": false}
Scalar

Boolean

The Boolean scalar type represents true or false.

Input

BuildTransactionInput

Complete transaction data with all required fields for building and sending signed transaction

Fields

Field nameDescription
to — String! Recipient address (20 bytes hex with 0x prefix)
value — String! Value in Wei (hex string with 0x prefix or decimal string)
gas — String! Gas limit (hex string with 0x prefix or decimal string)
nonce — String! Transaction nonce (hex string with 0x prefix or decimal string)
data — String! Contract call data (hex string with 0x prefix, use '0x' for empty data)
chainId — String! Chain ID (hex string with 0x prefix or decimal string)
gasPrice — String Gas price in Wei for legacy transactions (hex string with 0x prefix or decimal string, optional). Default = null
maxFeePerGas — String Maximum fee per gas for EIP-1559 transactions (hex string with 0x prefix or decimal string, optional). Default = null
maxPriorityFeePerGas — String Maximum priority fee per gas for EIP-1559 transactions (hex string with 0x prefix or decimal string, optional). Default = null
type — String Transaction type: '0' for legacy, '2' for EIP-1559 (hex string with 0x prefix or decimal string, optional). Default = null
example
{
  "to": "xyz789",
  "value": "xyz789",
  "gas": "xyz789",
  "nonce": "xyz789",
  "data": "abc123",
  "chainId": "abc123",
  "gasPrice": "xyz789",
  "maxFeePerGas": "abc123",
  "maxPriorityFeePerGas": "xyz789",
  "type": "abc123"
}
Enum

ChainDataMode

Values

Enum ValueDescription

FULL_HISTORY

LIVE_ONLY

example
"FULL_HISTORY"
Scalar

DateTime

Date with time (isoformat)

example
"2007-12-03T10:15:30Z"
Object

DbSyncResponse

Combined result of a database sync health check: the node's current state alongside the database's sync status.

Fields

Field nameDescription
nodeMetadata — NodeMetadata! Node metadata from RPC (rpc)
dbSyncStatus — DbSyncStatus! DB sync status details (db, rpc)
example
{
  "nodeMetadata": NodeMetadata,
  "dbSyncStatus": DbSyncStatus
}
Object

DbSyncStatus

Combined sync status across blocks, transactions, and logs, with an overall health summary.

Fields

Field nameDescription
blocks — BlockSyncStatus! Block sync status (db, rpc)
transactions — TransactionSyncStatus! Transaction sync status (db)
logs — LogSyncStatus! Log sync status (db)
overallStatus — SyncStatusEnum! Overall sync status — the worst (most out-of-sync) status among blocks, transactions, and logs (db, rpc)
syncPercentage — Float! Overall sync completeness as a percentage from 0 to 100 (db, rpc)
suggestedAction — String Suggested next step: NONE (no action needed), RESET_AND_RESYNC (mismatch beyond the normal backfill threshold — may just mean backfill is far behind, not necessarily data corruption), or INVESTIGATE (unusual state, needs manual review) (db, rpc)
lastSyncCheck — DateTime! Time of last sync check (db, rpc)
diagnosticMessage — String Detailed explanation of the sync status, useful for troubleshooting (db, rpc)
example
{
  "blocks": BlockSyncStatus,
  "transactions": TransactionSyncStatus,
  "logs": LogSyncStatus,
  "overallStatus": "SYNCED",
  "syncPercentage": 123.45,
  "suggestedAction": "xyz789",
  "lastSyncCheck": "2007-12-03T10:15:30Z",
  "diagnosticMessage": "abc123"
}
Object

DelegateStakeChangedConnection

A page of DelegateStakeChanged event results, with pagination info.

Fields

Field nameDescription
items — [DelegateStakeChangedEvent!]! List of DelegateStakeChanged events
pageInfo — PageInfo! Pagination information
example
{
  "items": [DelegateStakeChangedEvent],
  "pageInfo": PageInfo
}
Object

DelegateStakeChangedEvent

DelegateStakeChanged event — emitted by a Proof-of-Stake (PoS) staking protocol when a delegator's or guardian's stake changes (e.g. from staking, unstaking, or restaking). Topic0 (the event signature hash used to identify this event type in logs): 0x52db726bc1b1643b24886ed6f0194a41de9abac79d1c12108aca494e5b2bda6b

Fields

Field nameDescription
block — Block Block that contains this event (db)
transaction — Transaction Transaction that emitted this event (db)
log — Log Raw log entry for this event (db)
contractAddress — String! Staking contract address that emitted the event (db)
delegator — String! Address of the delegator (indexed topic1) — the account staking tokens to a guardian (db)
guardian — String! Address of the guardian (indexed topic2) — the validator/operator receiving delegated stake (db)
selfDelegatedStake — StakeAmount! The delegator's own stake amount, not counting stake received from other delegators (db)
delegatedStake — StakeAmount! Total delegated stake from other delegators (db)
delegatorContributedStake — StakeAmount! This delegator's contributed stake to the guardian (db)
blockNumber — String! Block number, decimal string (db: UInt64)
blockTimestamp — String Block timestamp as unix epoch, decimal string (db: UInt64)
txHash — String! Transaction hash (db)
logIndex — String! Log index within the block, decimal string (db: UInt32)
tokenAddress — String ERC-20 token address resolved from the first Transfer event in the same transaction. Null if the operation didn't move tokens (e.g. unstake/delegate/restake — pure internal state changes) (db)
chainId — String Chain ID, decimal string (db)
token — ERC20Token ERC-20 token used for staking. Null when the transaction didn't emit any Transfer event (unstake/delegate/restake)
delegatedEvents — [DelegatedEvent!]! All Delegated events for this delegator address. Shows delegation history (which guardians the delegator has delegated to)
example
{
  "block": Block,
  "transaction": Transaction,
  "log": Log,
  "contractAddress": "xyz789",
  "delegator": "abc123",
  "guardian": "xyz789",
  "selfDelegatedStake": StakeAmount,
  "delegatedStake": StakeAmount,
  "delegatorContributedStake": StakeAmount,
  "blockNumber": "xyz789",
  "blockTimestamp": "xyz789",
  "txHash": "xyz789",
  "logIndex": "xyz789",
  "tokenAddress": "abc123",
  "chainId": "xyz789",
  "token": ERC20Token,
  "delegatedEvents": [DelegatedEvent]
}
Input

DelegateStakeChangedFilterInput

Filter conditions for querying DelegateStakeChanged events, combinable with AND/OR/NOT logic.

Fields

Field nameDescription
contractAddress — StringFilter Filter by contract address that emitted the event. Default = null
delegator — StringFilter Filter by delegator address (topic1). Default = null
guardian — StringFilter Filter by guardian address (topic2). Default = null
txHash — StringFilter Filter by transaction hash. Default = null
blockNumber — IntFilter Filter by block number. Default = null
blockTimestamp — IntFilter Filter by block timestamp (unix epoch). Default = null
logIndex — IntFilter Filter by log index. Default = null
chainId — IntFilter Filter by chain ID. Default = null
and — [DelegateStakeChangedFilterInput!] Combine multiple filters with AND logic. Default = null
or — [DelegateStakeChangedFilterInput!] Combine multiple filters with OR logic. Default = null
not — DelegateStakeChangedFilterInput Negate the filter conditions. Default = null
example
{
  "contractAddress": StringFilter,
  "delegator": StringFilter,
  "guardian": StringFilter,
  "txHash": StringFilter,
  "blockNumber": IntFilter,
  "blockTimestamp": IntFilter,
  "logIndex": IntFilter,
  "chainId": IntFilter,
  "and": [DelegateStakeChangedFilterInput],
  "or": [DelegateStakeChangedFilterInput],
  "not": DelegateStakeChangedFilterInput
}
Input

DelegateStakeChangedOrderByInput

DelegateStakeChanged event ordering parameters

Fields

Field nameDescription
field — DelegateStakeChangedOrderField! Field to order by. Default = BLOCK_NUMBER
direction — SortDirection! Sort direction. Default = DESC
example
{"field": "BLOCK_NUMBER", "direction": "ASC"}
Enum

DelegateStakeChangedOrderField

DelegateStakeChanged event fields available for ordering

Values

Enum ValueDescription

BLOCK_NUMBER

LOG_INDEX

example
"BLOCK_NUMBER"
Input

DelegateStakeChangedQueryInput

Input for querying DelegateStakeChanged events

Fields

Field nameDescription
filters — DelegateStakeChangedFilterInput Filter conditions. Default = null
pagination — PaginationInput Pagination settings. Default = null
orderBy — [DelegateStakeChangedOrderByInput!] Ordering. Default = null
example
{
  "filters": DelegateStakeChangedFilterInput,
  "pagination": PaginationInput,
  "orderBy": [DelegateStakeChangedOrderByInput]
}
Object

DelegatedConnection

A page of Delegated event results, with pagination info.

Fields

Field nameDescription
items — [DelegatedEvent!]! List of Delegated events
pageInfo — PageInfo! Pagination information
example
{
  "items": [DelegatedEvent],
  "pageInfo": PageInfo
}
Object

DelegatedEvent

Delegated event — emitted when a delegator chooses a guardian to stake with in a PoS staking protocol. Topic0 (event signature hash): 0x4bc154dd35d6a5cb9206482ecb473cdbf2473006d6bce728b9cc0741bcc59ea2

Fields

Field nameDescription
block — Block Block that contains this event (db)
transaction — Transaction Transaction that emitted this event (db)
log — Log Raw log entry for this event (db)
contractAddress — String! Staking contract address that emitted the event (db)
delegator — String! Delegator address — indexed topic1 (db)
guardian — String! Guardian address — indexed topic2 (db)
blockNumber — String! Block number, decimal string (db: UInt64)
blockTimestamp — String Block timestamp as unix epoch, decimal string (db: UInt64)
txHash — String! Transaction hash (db)
logIndex — String! Log index within the block, decimal string (db: UInt32)
tokenAddress — String ERC-20 token address resolved from the first Transfer event in the same transaction. Null if the operation didn't move tokens (e.g. unstake/delegate/restake — pure internal state changes) (db)
chainId — String Chain ID, decimal string (db)
token — ERC20Token ERC-20 token used for staking. Null when the transaction didn't emit any Transfer event (unstake/delegate/restake)
example
{
  "block": Block,
  "transaction": Transaction,
  "log": Log,
  "contractAddress": "abc123",
  "delegator": "xyz789",
  "guardian": "abc123",
  "blockNumber": "xyz789",
  "blockTimestamp": "xyz789",
  "txHash": "xyz789",
  "logIndex": "xyz789",
  "tokenAddress": "abc123",
  "chainId": "abc123",
  "token": ERC20Token
}
Input

DelegatedFilterInput

Filter conditions for querying Delegated events, combinable with AND/OR/NOT logic.

Fields

Field nameDescription
contractAddress — StringFilter Filter by contract address that emitted the event. Default = null
delegator — StringFilter Filter by delegator address (topic1). Default = null
guardian — StringFilter Filter by guardian address (topic2). Default = null
txHash — StringFilter Filter by transaction hash. Default = null
blockNumber — IntFilter Filter by block number. Default = null
blockTimestamp — IntFilter Filter by block timestamp (unix epoch). Default = null
logIndex — IntFilter Filter by log index. Default = null
chainId — IntFilter Filter by chain ID. Default = null
and — [DelegatedFilterInput!] Combine multiple filters with AND logic. Default = null
or — [DelegatedFilterInput!] Combine multiple filters with OR logic. Default = null
not — DelegatedFilterInput Negate the filter conditions. Default = null
example
{
  "contractAddress": StringFilter,
  "delegator": StringFilter,
  "guardian": StringFilter,
  "txHash": StringFilter,
  "blockNumber": IntFilter,
  "blockTimestamp": IntFilter,
  "logIndex": IntFilter,
  "chainId": IntFilter,
  "and": [DelegatedFilterInput],
  "or": [DelegatedFilterInput],
  "not": DelegatedFilterInput
}
Input

DelegatedOrderByInput

Delegated event ordering parameters

Fields

Field nameDescription
field — DelegatedOrderField! Field to order by. Default = BLOCK_NUMBER
direction — SortDirection! Sort direction. Default = DESC
example
{"field": "BLOCK_NUMBER", "direction": "ASC"}
Enum

DelegatedOrderField

Delegated event fields available for ordering

Values

Enum ValueDescription

BLOCK_NUMBER

LOG_INDEX

example
"BLOCK_NUMBER"
Input

DelegatedQueryInput

Input for querying Delegated events

Fields

Field nameDescription
filters — DelegatedFilterInput Filter conditions. Default = null
pagination — PaginationInput Pagination settings. Default = null
orderBy — [DelegatedOrderByInput!] Ordering. Default = null
example
{
  "filters": DelegatedFilterInput,
  "pagination": PaginationInput,
  "orderBy": [DelegatedOrderByInput]
}
Object

ERC20Token

An ERC-20 token contract, with its balance, supply, and holder data.

Fields

Field nameDescription
tokenAddress — String! ERC-20 token smart contract address
example
{
  "tokenAddress": "abc123",
  "erc20TotalSupply": BalanceResponse,
  "erc20BalanceOf": BalanceResponse,
  "erc20Holders": [ERC20TokenHolder]
}
Object

ERC20TokenApproval

ERC-20 Approval event — emitted when an owner approves a spender to transfer tokens on their behalf

Fields

Field nameDescription
block — Block Block that contains this event (db)
transaction — Transaction Transaction that emitted this event (db)
log — Log Raw log entry for this event (db)
tokenAddress — String! Token contract address that emitted the event (db)
owner — String! Token owner granting the approval (db)
spender — String! Address approved to spend tokens on owner's behalf (db)
value — String! Approved allowance as hex string; '0x00' = revoked, '0xffff...ffff' = unlimited; use parsedApproval.amountFormatted for human-readable value (db)
blockNumber — String! Block number in which this event was emitted, decimal string (db: UInt64)
txHash — String! Transaction hash (db)
logIndex — String! Log index within the transaction, decimal string (db: UInt32)
chainId — String Chain ID, decimal string (db: UInt64)
blockTimestamp — String Block timestamp as unix epoch, decimal string (db: UInt64)
parsedApproval — ParsedTokenAmount Parsed approval with token decimals and human-readable approved amount (db+rpc)
example
{
  "block": Block,
  "transaction": Transaction,
  "log": Log,
  "tokenAddress": "xyz789",
  "owner": "xyz789",
  "spender": "abc123",
  "value": "xyz789",
  "blockNumber": "xyz789",
  "txHash": "abc123",
  "logIndex": "abc123",
  "chainId": "xyz789",
  "blockTimestamp": "xyz789",
  "parsedApproval": ParsedTokenAmount
}
Object

ERC20TokenApprovalConnection

A page of ERC-20 Approval event results, with pagination info.

Fields

Field nameDescription
items — [ERC20TokenApproval!]! List of Approval events in this page
pageInfo — PageInfo! Pagination information
example
{
  "items": [ERC20TokenApproval],
  "pageInfo": PageInfo
}
Input

ERC20TokenApprovalFilterInput

Filter conditions for querying ERC-20 Approval events, combinable with AND/OR/NOT logic.

Fields

Field nameDescription
tokenAddress — StringFilter Filter by token contract address. Default = null
owner — StringFilter Filter by token owner address. Default = null
spender — StringFilter Filter by approved spender address. Default = null
value — StringFilter Filter by approved amount (hex string). Default = null
txHash — StringFilter Filter by transaction hash. Default = null
blockNumber — IntFilter Filter by block number. Default = null
blockTimestamp — IntFilter Filter by block timestamp (unix epoch). Default = null
logIndex — IntFilter Filter by log index. Default = null
chainId — IntFilter Filter by chain ID. Default = null
and — [ERC20TokenApprovalFilterInput!] Combine multiple filters with AND logic. Default = null
or — [ERC20TokenApprovalFilterInput!] Combine multiple filters with OR logic. Default = null
not — ERC20TokenApprovalFilterInput Negate the filter conditions. Default = null
example
{
  "tokenAddress": StringFilter,
  "owner": StringFilter,
  "spender": StringFilter,
  "value": StringFilter,
  "txHash": StringFilter,
  "blockNumber": IntFilter,
  "blockTimestamp": IntFilter,
  "logIndex": IntFilter,
  "chainId": IntFilter,
  "and": [ERC20TokenApprovalFilterInput],
  "or": [ERC20TokenApprovalFilterInput],
  "not": ERC20TokenApprovalFilterInput
}
Input

ERC20TokenApprovalOrderByInput

ERC-20 Token Approval ordering parameters

Fields

Field nameDescription
field — ERC20TokenApprovalOrderField! Field to order by. Default = BLOCK_NUMBER
direction — SortDirection! Sort direction. Default = DESC
example
{"field": "BLOCK_NUMBER", "direction": "ASC"}
Enum

ERC20TokenApprovalOrderField

ERC-20 Token Approval event fields available for ordering

Values

Enum ValueDescription

BLOCK_NUMBER

LOG_INDEX

TOKEN_ADDRESS

OWNER

SPENDER

VALUE

example
"BLOCK_NUMBER"
Input

ERC20TokenApprovalQueryInput

Input for querying ERC-20 Token Approval events

Fields

Field nameDescription
filters — ERC20TokenApprovalFilterInput Filter conditions for Approval events. Default = null
pagination — PaginationInput Pagination settings. Default = null
orderBy — [ERC20TokenApprovalOrderByInput!] Ordering settings (multiple fields supported). Default = null
example
{
  "filters": ERC20TokenApprovalFilterInput,
  "pagination": PaginationInput,
  "orderBy": [ERC20TokenApprovalOrderByInput]
}
Object

ERC20TokenHolder

A wallet address holding a non-zero balance of an ERC-20 token.

Fields

Field nameDescription
walletAddress — String! Holder wallet address (checksummed EIP-55)
chainId — Int Chain ID the balance was resolved on (from the matched DB rows; per-chain rows are not merged when the chainId filter is omitted)
balance — BalanceResult! ERC-20 token balance of this holder
example
{
  "walletAddress": "abc123",
  "chainId": 987,
  "balance": BalanceResult
}
Object

ERC20TokenSwapEvent

Uniswap V2 Swap event — emitted on every token swap within a pair contract

Fields

Field nameDescription
block — Block Block that contains this event (db)
transaction — Transaction Transaction that emitted this event (db)
log — Log Raw log entry for this event (db)
pairAddress — String! Uniswap V2 pair contract address (db)
sender — String! Address that called swap() on the pair (msg.sender) (db)
to — String! Recipient address for the output tokens (db)
amount0In — String! Amount of token0 sent into the pair; non-zero when token0 is tokenIn (db: String)
amount1In — String! Amount of token1 sent into the pair; non-zero when token1 is tokenIn (db: String)
amount0Out — String! Amount of token0 received from the pair; non-zero when token0 is tokenOut (db: String)
amount1Out — String! Amount of token1 received from the pair; non-zero when token1 is tokenOut (db: String)
blockNumber — String! Block number in which this event was emitted, decimal string (db: UInt64)
txHash — String! Transaction hash (db)
logIndex — String! Log index within the transaction, decimal string (db: UInt32)
chainId — String Chain ID, decimal string (db: UInt64)
blockTimestamp — String Block timestamp as unix epoch, decimal string (db: UInt64)
parsedSwap — ParsedSwap Parsed swap with tokenIn/tokenOut, addresses, decimals, and formatted amounts (db+rpc)
example
{
  "block": Block,
  "transaction": Transaction,
  "log": Log,
  "pairAddress": "xyz789",
  "sender": "abc123",
  "to": "abc123",
  "amount0In": "abc123",
  "amount1In": "xyz789",
  "amount0Out": "abc123",
  "amount1Out": "xyz789",
  "blockNumber": "xyz789",
  "txHash": "xyz789",
  "logIndex": "abc123",
  "chainId": "abc123",
  "blockTimestamp": "xyz789",
  "parsedSwap": ParsedSwap
}
Object

ERC20TokenSwapEventConnection

A page of Uniswap V2 Swap event results, with pagination info.

Fields

Field nameDescription
items — [ERC20TokenSwapEvent!]! List of Swap events in this page
pageInfo — PageInfo! Pagination information
example
{
  "items": [ERC20TokenSwapEvent],
  "pageInfo": PageInfo
}
Input

ERC20TokenSwapEventFilterInput

Filter conditions for querying Uniswap V2 Swap events, combinable with AND/OR/NOT logic.

Fields

Field nameDescription
pairAddress — StringFilter Filter by pair contract address. Default = null
sender — StringFilter Filter by swap sender address. Default = null
to — StringFilter Filter by swap recipient address. Default = null
txHash — StringFilter Filter by transaction hash. Default = null
blockNumber — IntFilter Filter by block number. Default = null
blockTimestamp — IntFilter Filter by block timestamp (unix epoch). Default = null
logIndex — IntFilter Filter by log index. Default = null
chainId — IntFilter Filter by chain ID. Default = null
and — [ERC20TokenSwapEventFilterInput!] Combine multiple filters with AND logic. Default = null
or — [ERC20TokenSwapEventFilterInput!] Combine multiple filters with OR logic. Default = null
not — ERC20TokenSwapEventFilterInput Negate the filter conditions. Default = null
example
{
  "pairAddress": StringFilter,
  "sender": StringFilter,
  "to": StringFilter,
  "txHash": StringFilter,
  "blockNumber": IntFilter,
  "blockTimestamp": IntFilter,
  "logIndex": IntFilter,
  "chainId": IntFilter,
  "and": [ERC20TokenSwapEventFilterInput],
  "or": [ERC20TokenSwapEventFilterInput],
  "not": ERC20TokenSwapEventFilterInput
}
Input

ERC20TokenSwapEventOrderByInput

Uniswap V2 Swap event ordering parameters

Fields

Field nameDescription
field — ERC20TokenSwapEventOrderField! Field to order by. Default = BLOCK_NUMBER
direction — SortDirection! Sort direction. Default = DESC
example
{"field": "BLOCK_NUMBER", "direction": "ASC"}
Enum

ERC20TokenSwapEventOrderField

Uniswap V2 Swap event fields available for ordering

Values

Enum ValueDescription

BLOCK_NUMBER

LOG_INDEX

PAIR_ADDRESS

example
"BLOCK_NUMBER"
Input

ERC20TokenSwapEventQueryInput

Input for querying Uniswap V2 Swap events

Fields

Field nameDescription
filters — ERC20TokenSwapEventFilterInput Filter conditions for Swap events. Default = null
pagination — PaginationInput Pagination settings. Default = null
orderBy — [ERC20TokenSwapEventOrderByInput!] Ordering settings (multiple fields supported). Default = null
example
{
  "filters": ERC20TokenSwapEventFilterInput,
  "pagination": PaginationInput,
  "orderBy": [ERC20TokenSwapEventOrderByInput]
}
Object

ERC20TokenTransfer

ERC-20 Transfer event — emitted on every token transfer between addresses

Fields

Field nameDescription
block — Block Block that contains this event (db)
transaction — Transaction Transaction that emitted this event (db)
log — Log Raw log entry for this event (db)
tokenAddress — String! Token contract address that emitted the event (db)
fromAddress — String! Sender address; zero address (0x000...000) for mint events (db)
toAddress — String! Recipient address; zero address (0x000...000) for burn events (db)
value — String! Amount transferred as hex string; use parsedTransfer.amountFormatted for human-readable value (db)
blockNumber — String! Block number in which this event was emitted, decimal string (db: UInt64)
txHash — String! Transaction hash (db)
logIndex — String! Log index within the transaction, decimal string (db: UInt32)
chainId — String Chain ID, decimal string (db: UInt64)
blockTimestamp — String Block timestamp as unix epoch, decimal string (db: UInt64)
parsedTransfer — ParsedTokenAmount Parsed transfer with token decimals and human-readable amount (db+rpc)
example
{
  "block": Block,
  "transaction": Transaction,
  "log": Log,
  "tokenAddress": "abc123",
  "fromAddress": "abc123",
  "toAddress": "abc123",
  "value": "xyz789",
  "blockNumber": "xyz789",
  "txHash": "xyz789",
  "logIndex": "xyz789",
  "chainId": "xyz789",
  "blockTimestamp": "xyz789",
  "parsedTransfer": ParsedTokenAmount
}
Object

ERC20TokenTransferConnection

A page of ERC-20 Transfer event results, with pagination info.

Fields

Field nameDescription
items — [ERC20TokenTransfer!]! List of Transfer events in this page
pageInfo — PageInfo! Pagination information
example
{
  "items": [ERC20TokenTransfer],
  "pageInfo": PageInfo
}
Input

ERC20TokenTransferFilterInput

Filter conditions for querying ERC-20 Transfer events, combinable with AND/OR/NOT logic.

Fields

Field nameDescription
tokenAddress — StringFilter Filter by token contract address. Default = null
fromAddress — StringFilter Filter by sender address. Default = null
toAddress — StringFilter Filter by recipient address. Default = null
value — StringFilter Filter by transfer amount (hex string). Default = null
txHash — StringFilter Filter by transaction hash. Default = null
blockNumber — IntFilter Filter by block number. Default = null
blockTimestamp — IntFilter Filter by block timestamp (unix epoch). Default = null
logIndex — IntFilter Filter by log index. Default = null
chainId — IntFilter Filter by chain ID. Default = null
and — [ERC20TokenTransferFilterInput!] Combine multiple filters with AND logic. Default = null
or — [ERC20TokenTransferFilterInput!] Combine multiple filters with OR logic. Default = null
not — ERC20TokenTransferFilterInput Negate the filter conditions. Default = null
example
{
  "tokenAddress": StringFilter,
  "fromAddress": StringFilter,
  "toAddress": StringFilter,
  "value": StringFilter,
  "txHash": StringFilter,
  "blockNumber": IntFilter,
  "blockTimestamp": IntFilter,
  "logIndex": IntFilter,
  "chainId": IntFilter,
  "and": [ERC20TokenTransferFilterInput],
  "or": [ERC20TokenTransferFilterInput],
  "not": ERC20TokenTransferFilterInput
}
Input

ERC20TokenTransferOrderByInput

ERC-20 Token Transfer ordering parameters

Fields

Field nameDescription
field — ERC20TokenTransferOrderField! Field to order by. Default = BLOCK_NUMBER
direction — SortDirection! Sort direction. Default = DESC
example
{"field": "BLOCK_NUMBER", "direction": "ASC"}
Enum

ERC20TokenTransferOrderField

ERC-20 Token Transfer event fields available for ordering

Values

Enum ValueDescription

BLOCK_NUMBER

LOG_INDEX

TOKEN_ADDRESS

FROM_ADDRESS

TO_ADDRESS

VALUE

example
"BLOCK_NUMBER"
Input

ERC20TokenTransferQueryInput

Input for querying ERC-20 Token Transfer events

Fields

Field nameDescription
filters — ERC20TokenTransferFilterInput Filter conditions for Transfer events. Default = null
pagination — PaginationInput Pagination settings. Default = null
orderBy — [ERC20TokenTransferOrderByInput!] Ordering settings (multiple fields supported). Default = null
example
{
  "filters": ERC20TokenTransferFilterInput,
  "pagination": PaginationInput,
  "orderBy": [ERC20TokenTransferOrderByInput]
}
Object

ERC721Transfer

An NFT transfer event (ERC-721 standard) — emitted whenever an NFT moves between addresses, including mints and burns.

Fields

Field nameDescription
block — Block Block that contains this event (db)
transaction — Transaction Transaction that emitted this event (db)
log — Log Raw log entry for this event (db)
tokenAddress — String! NFT contract address that emitted the event (db)
fromAddress — String! Sender address; zero address (0x000...000) for mint events (db)
toAddress — String! Recipient address; zero address (0x000...000) for burn events (db)
tokenId — String! NFT token ID as hex string (0x-prefixed, 64-char padded from topic3) (db)
blockNumber — String! Block number in which this event was emitted, decimal string (db: UInt64)
txHash — String! Transaction hash (db)
logIndex — String! Log index within the transaction, decimal string (db: UInt32)
chainId — String Chain ID, decimal string (db: UInt64)
blockTimestamp — String Block timestamp as unix epoch, decimal string (db: UInt64)
example
{
  "block": Block,
  "transaction": Transaction,
  "log": Log,
  "tokenAddress": "xyz789",
  "fromAddress": "xyz789",
  "toAddress": "xyz789",
  "tokenId": "xyz789",
  "blockNumber": "xyz789",
  "txHash": "abc123",
  "logIndex": "xyz789",
  "chainId": "xyz789",
  "blockTimestamp": "abc123"
}
Object

ERC721TransferConnection

A page of ERC-721 NFT Transfer event results, with pagination info.

Fields

Field nameDescription
items — [ERC721Transfer!]! List of ERC-721 Transfer events in this page
pageInfo — PageInfo! Pagination information
example
{
  "items": [ERC721Transfer],
  "pageInfo": PageInfo
}
Input

ERC721TransferFilterInput

Filter conditions for querying ERC-721 NFT Transfer events, combinable with AND/OR/NOT logic.

Fields

Field nameDescription
tokenAddress — StringFilter Filter by NFT contract address. Default = null
fromAddress — StringFilter Filter by sender address. Default = null
toAddress — StringFilter Filter by recipient address. Default = null
tokenId — StringFilter Filter by token ID (hex string, 0x-prefixed, 64-char padded). Default = null
txHash — StringFilter Filter by transaction hash. Default = null
blockNumber — IntFilter Filter by block number. Default = null
blockTimestamp — IntFilter Filter by block timestamp (unix epoch). Default = null
logIndex — IntFilter Filter by log index. Default = null
chainId — IntFilter Filter by chain ID. Default = null
and — [ERC721TransferFilterInput!] Combine multiple filters with AND logic. Default = null
or — [ERC721TransferFilterInput!] Combine multiple filters with OR logic. Default = null
not — ERC721TransferFilterInput Negate the filter conditions. Default = null
example
{
  "tokenAddress": StringFilter,
  "fromAddress": StringFilter,
  "toAddress": StringFilter,
  "tokenId": StringFilter,
  "txHash": StringFilter,
  "blockNumber": IntFilter,
  "blockTimestamp": IntFilter,
  "logIndex": IntFilter,
  "chainId": IntFilter,
  "and": [ERC721TransferFilterInput],
  "or": [ERC721TransferFilterInput],
  "not": ERC721TransferFilterInput
}
Input

ERC721TransferOrderByInput

ERC-721 NFT Transfer ordering parameters

Fields

Field nameDescription
field — ERC721TransferOrderField! Field to order by. Default = BLOCK_NUMBER
direction — SortDirection! Sort direction. Default = DESC
example
{"field": "BLOCK_NUMBER", "direction": "ASC"}
Enum

ERC721TransferOrderField

ERC-721 NFT Transfer event fields available for ordering

Values

Enum ValueDescription

BLOCK_NUMBER

LOG_INDEX

TOKEN_ADDRESS

FROM_ADDRESS

TO_ADDRESS

TOKEN_ID

example
"BLOCK_NUMBER"
Input

ERC721TransferQueryInput

Input for querying ERC-721 NFT Transfer events

Fields

Field nameDescription
filters — ERC721TransferFilterInput Filter conditions for Transfer events. Default = null
pagination — PaginationInput Pagination settings. Default = null
orderBy — [ERC721TransferOrderByInput!] Ordering settings (multiple fields supported). Default = null
example
{
  "filters": ERC721TransferFilterInput,
  "pagination": PaginationInput,
  "orderBy": [ERC721TransferOrderByInput]
}
Object

Effectiveness

Fields

Field nameDescription
effectiveness — Float! Hyperflow effectiveness on Base. The number of RPC requests over the past 7 days that didn't have to interact with RPC server (mock)
jsonrpcRatio — Float! JSON-RPC vs GraphQL. Average number of JSON-RPC requests sent in one GraphQL request over the last 7 days (mock)
example
{"effectiveness": 123.45, "jsonrpcRatio": 123.45}
Object

EmbeddedLog

An event log emitted by a smart contract during a transaction (e.g. a Transfer event).

Fields

Field nameDescription
blockNumber — String Block number, decimal string (db)
txIndex — String Transaction position in the block, decimal string (db)
logIndex — String Log position within the transaction, decimal string (db)
txHash — String Transaction hash, 0x-prefixed 32-byte hex (db)
blockHash — String Block hash, 0x-prefixed 32-byte hex (db)
address — String Contract address that emitted the log, checksummed EIP-55 (db)
topic0 — String! The event's signature hash (keccak256 of its name and parameter types), identifying which event this is, e.g. Transfer(address,address,uint256). (db)
topic1 — String! The event's first indexed parameter (a filterable value set by the contract), 0x-prefixed 32-byte hex; addresses are left-padded with zeros. (db)
topic2 — String! The event's second indexed parameter, 0x-prefixed 32-byte hex. (db)
topic3 — String! The event's third indexed parameter, 0x-prefixed 32-byte hex. (db)
data — String Log data (non-indexed event parameters) (db)
removed — Boolean True if log was removed due to chain reorganization (db)
chainId — String Chain ID, decimal string (db)
topics — [String!] All topics for this log as one array (topic0 = event signature, topic1–3 = indexed parameters), omitting any that are empty.
example
{
  "blockNumber": "xyz789",
  "txIndex": "abc123",
  "logIndex": "xyz789",
  "txHash": "abc123",
  "blockHash": "abc123",
  "address": "xyz789",
  "topic0": "xyz789",
  "topic1": "xyz789",
  "topic2": "xyz789",
  "topic3": "abc123",
  "data": "abc123",
  "removed": true,
  "chainId": "xyz789",
  "topics": ["abc123"]
}
Object

EmbeddedTransaction

A transaction on the blockchain (works the same way across all supported chains).

Fields

Field nameDescription
blockNumber — String Block number, decimal string (db)
txIndex — String Transaction position within the block, decimal string (db)
hash — String Transaction hash, 0x-prefixed 32-byte hex (db)
fromAddress — String Sender address, 0x-prefixed checksummed EIP-55 (db)
toAddress — String Recipient address, checksummed EIP-55; '0x' for contract creation (db)
valueWei — String Value in wei, decimal string (e.g. '1000000000000000000' = 1 ETH) (db)
gas — String Gas limit, decimal string (db)
gasPrice — String Gas price in wei, decimal string (db)
gasUsed — String Actual gas consumed, decimal string (db)
nonce — String Sender nonce, decimal string (db)
txType — String EIP-2718 transaction type: '0' legacy, '1' EIP-2930, '2' EIP-1559 (db)
maxFeePerGas — String Max fee per gas in wei, decimal string; '0' for legacy tx (EIP-1559) (db)
maxPriorityFeePerGas — String Max priority fee (tip) in wei, decimal string; '0' for legacy tx (EIP-1559) (db)
input — String Calldata, 0x-prefixed hex; '0x' for simple transfers (db)
v — String ECDSA recovery id (db)
r — String ECDSA signature r, 0x-prefixed hex (db)
s — String ECDSA signature s, 0x-prefixed hex (db)
size — String Transaction size in bytes, decimal string (db)
success — String 1 if transaction succeeded, 0 if failed (db)
logsCount — String Number of event logs emitted, decimal string (db)
chainId — String Chain ID, decimal string (db)
example
{
  "blockNumber": "abc123",
  "txIndex": "xyz789",
  "hash": "xyz789",
  "fromAddress": "abc123",
  "toAddress": "abc123",
  "valueWei": "xyz789",
  "gas": "xyz789",
  "gasPrice": "xyz789",
  "gasUsed": "abc123",
  "nonce": "abc123",
  "txType": "xyz789",
  "maxFeePerGas": "xyz789",
  "maxPriorityFeePerGas": "xyz789",
  "input": "abc123",
  "v": "abc123",
  "r": "abc123",
  "s": "abc123",
  "size": "xyz789",
  "success": "abc123",
  "logsCount": "abc123",
  "chainId": "abc123"
}
Input

EstimateGasInput

Fields

Field nameDescription
to — String Recipient address (required for contract calls). Default = null
fromAddress — String Sender address (optional). Default = null
gas — String Maximum amount of gas the call may consume before failing (hex with 0x prefix, optional). Default = null
gasPrice — String Price per unit of gas the sender is willing to pay, in wei (hex with 0x prefix). Used only for legacy (pre-EIP-1559) transactions; omit when using maxFeePerGas/maxPriorityFeePerGas. Default = null
maxFeePerGas — String Maximum total fee per unit of gas the sender will pay, in wei (hex with 0x prefix). Part of EIP-1559's fee model, which replaced the single gasPrice with a network base fee plus a priority tip. Default = null
maxPriorityFeePerGas — String Maximum 'tip' per unit of gas paid directly to the block producer, in wei (hex with 0x prefix), on top of the network's base fee (EIP-1559). Default = null
value — String Value to send in wei (hex with 0x prefix, optional). Default = null
data — String Encoded contract call data / function calldata (hex with 0x prefix); required to invoke a contract method. Default = null
blockIdentifier — String Optional block number (hex) or tag ("latest", "earliest", "pending"). Default = null
example
{
  "to": "abc123",
  "fromAddress": "abc123",
  "gas": "xyz789",
  "gasPrice": "abc123",
  "maxFeePerGas": "abc123",
  "maxPriorityFeePerGas": "xyz789",
  "value": "xyz789",
  "data": "xyz789",
  "blockIdentifier": "xyz789"
}
Object

EstimateGasResult

Fields

Field nameDescription
gas — String! Estimated gas required to execute this transaction, as a hex string. (rpc) — computed live by the node by simulating the call, not from our database.
gasDecimal — Int! Same estimate as gas, expressed as a decimal number for convenience. (rpc)
example
{"gas": "xyz789", "gasDecimal": 987}
Input

EthCallInput

Fields

Field nameDescription
to — String Recipient address (required for contract calls). Default = null
fromAddress — String Sender address (optional). Default = null
gas — String Maximum amount of gas the call may consume before failing (hex with 0x prefix, optional). Default = null
gasPrice — String Price per unit of gas the sender is willing to pay, in wei (hex with 0x prefix). Used only for legacy (pre-EIP-1559) transactions; omit when using maxFeePerGas/maxPriorityFeePerGas. Default = null
maxFeePerGas — String Maximum total fee per unit of gas the sender will pay, in wei (hex with 0x prefix). Part of EIP-1559's fee model, which replaced the single gasPrice with a network base fee plus a priority tip. Default = null
maxPriorityFeePerGas — String Maximum 'tip' per unit of gas paid directly to the block producer, in wei (hex with 0x prefix), on top of the network's base fee (EIP-1559). Default = null
value — String Value to send in wei (hex with 0x prefix, optional). Default = null
data — String Encoded contract call data / function calldata (hex with 0x prefix); required to invoke a contract method. Default = null
blockIdentifier — String! Block number (hex) or tag ("latest", "earliest", "pending"). Default = "latest"
example
{
  "to": "abc123",
  "fromAddress": "xyz789",
  "gas": "abc123",
  "gasPrice": "abc123",
  "maxFeePerGas": "abc123",
  "maxPriorityFeePerGas": "xyz789",
  "value": "xyz789",
  "data": "abc123",
  "blockIdentifier": "abc123"
}
Object

EthCallResult

Fields

Field nameDescription
data — String! Hex-encoded return value of the executed contract call (rpc)
example
{"data": "abc123"}
Scalar

Float

The Float scalar type represents signed double-precision fractional values as specified by IEEE 754.

example
123.45
Input

GetTransactionCountInput

Fields

Field nameDescription
address — String! Account address (20 bytes hex with 0x prefix)
blockIdentifier — String! Block number (hex) or tag ("latest", "earliest", "pending"). Default = "latest"
chainId — Int Filter by chain ID (e.g. 1 for Ethereum Mainnet). Default = null
example
{
  "address": "xyz789",
  "blockIdentifier": "xyz789",
  "chainId": 123
}
Scalar

Int

The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.

example
123
Input

IntFilter

Filter for integer fields (UInt32, UInt64)

Fields

Field nameDescription
eq — Int Equals. Default = null
ne — Int Not equals. Default = null
gt — Int Greater than. Default = null
gte — Int Greater than or equal. Default = null
lt — Int Less than. Default = null
lte — Int Less than or equal. Default = null
in — [Int!] In list of values (max 500 entries). Default = null
notIn — [Int!] Not in list of values (max 500 entries). Default = null
between — [Int!] Between two values [min, max]. Default = null
isNull — Boolean Is null check. Default = null
example
{
  "eq": 987,
  "ne": 123,
  "gt": 123,
  "gte": 123,
  "lt": 123,
  "lte": 123,
  "in": [123],
  "notIn": [123],
  "between": [123],
  "isNull": true
}
Object

InternalTransaction

A value transfer or contract call made internally during a transaction's execution (e.g. one contract calling another) — part of an execution trace, not a standalone on-chain transaction.

Fields

Field nameDescription
blockNumber — String Block number, decimal string (db)
txHash — String Parent transaction hash, 0x-prefixed 32-byte hex (db)
txIndex — String Transaction position within the block, decimal string (db: UInt32)
traceIndex — String Trace position within the transaction, decimal string (db: UInt32)
subtraces — String Number of child traces, decimal string (db: UInt32)
traceAddress — String Trace address path (e.g. '0.1.2' for nested calls) (db)
fromAddress — String Caller address, checksummed EIP-55 (db)
toAddress — String Target address, checksummed EIP-55; null for CREATE (db)
valueWei — String Value transferred in wei, decimal string (db)
callType — String How this internal call was made: 'call' (standard), 'delegatecall' (runs the target's code using the caller's storage), 'staticcall' (read-only, cannot modify state), 'create'/'create2' (deploys a new contract). (db)
gas — String Gas provided for the call, decimal string (db)
gasUsed — String Gas consumed by the call, decimal string (db)
input — String Call input data, 0x-prefixed hex (db)
output — String Call return data, 0x-prefixed hex (db)
error — String Revert reason if call failed; null on success (db)
success — String 1 if the internal call succeeded, 0 if failed (db)
chainId — String Chain ID (db)
block — Block Block that contains this internal transaction (db)
transaction — Transaction The top-level transaction this trace was executed within. (db)
example
{
  "blockNumber": "abc123",
  "txHash": "abc123",
  "txIndex": "abc123",
  "traceIndex": "xyz789",
  "subtraces": "abc123",
  "traceAddress": "abc123",
  "fromAddress": "abc123",
  "toAddress": "abc123",
  "valueWei": "xyz789",
  "callType": "xyz789",
  "gas": "xyz789",
  "gasUsed": "abc123",
  "input": "xyz789",
  "output": "abc123",
  "error": "abc123",
  "success": "xyz789",
  "chainId": "xyz789",
  "block": Block,
  "transaction": Transaction
}
Object

InternalTransactionConnection

A page of internal transaction results, with pagination info.

Fields

Field nameDescription
items — [InternalTransaction!]! List of internal transactions in this page
pageInfo — PageInfo! Pagination information
example
{
  "items": [InternalTransaction],
  "pageInfo": PageInfo
}
Input

InternalTxFilterInput

Filter conditions for querying internal transactions, combinable with AND/OR/NOT logic.

Fields

Field nameDescription
blockNumber — IntFilter Filter by block number. Default = null
txIndex — IntFilter Filter by parent transaction index in block. Default = null
traceIndex — IntFilter Filter by trace index within the transaction. Default = null
subtraces — IntFilter Filter by number of child traces. Default = null
txHash — StringFilter Filter by parent transaction hash. Default = null
traceAddress — StringFilter Filter by trace address path (e.g. '0.1.2'). Default = null
fromAddress — StringFilter Filter by caller address. Default = null
toAddress — StringFilter Filter by target address. Default = null
callType — StringFilter Filter by call type ('call', 'delegatecall', 'staticcall', 'create', 'create2'). Default = null
input — StringFilter Filter by call input data. Default = null
error — StringFilter Filter by revert reason. Default = null
valueWei — BigIntFilter Filter by value transferred in wei. Default = null
gas — BigIntFilter Filter by gas provided for the call. Default = null
gasUsed — BigIntFilter Filter by gas consumed by the call. Default = null
success — IntFilter Filter by call success status (1=success, 0=failed). Default = null
chainId — IntFilter Filter by chain ID. Default = null
and — [InternalTxFilterInput!] Combine multiple filters with AND logic. Default = null
or — [InternalTxFilterInput!] Combine multiple filters with OR logic. Default = null
not — InternalTxFilterInput Negate the filter conditions. Default = null
example
{
  "blockNumber": IntFilter,
  "txIndex": IntFilter,
  "traceIndex": IntFilter,
  "subtraces": IntFilter,
  "txHash": StringFilter,
  "traceAddress": StringFilter,
  "fromAddress": StringFilter,
  "toAddress": StringFilter,
  "callType": StringFilter,
  "input": StringFilter,
  "error": StringFilter,
  "valueWei": BigIntFilter,
  "gas": BigIntFilter,
  "gasUsed": BigIntFilter,
  "success": IntFilter,
  "chainId": IntFilter,
  "and": [InternalTxFilterInput],
  "or": [InternalTxFilterInput],
  "not": InternalTxFilterInput
}
Input

InternalTxOrderByInput

Internal transaction ordering parameters

Fields

Field nameDescription
field — InternalTxOrderField! Field to order by. Default = TRACE_INDEX
direction — SortDirection! Sort direction. Default = ASC
example
{"field": "BLOCK_NUMBER", "direction": "ASC"}
Enum

InternalTxOrderField

Internal transaction fields available for ordering

Values

Enum ValueDescription

BLOCK_NUMBER

TRACE_INDEX

FROM_ADDRESS

TO_ADDRESS

VALUE_WEI

CALL_TYPE

example
"BLOCK_NUMBER"
Input

InternalTxQueryInput

Input for querying internal transactions with filters

Fields

Field nameDescription
filters — InternalTxFilterInput Filter conditions for internal transactions. Default = null
pagination — PaginationInput Pagination settings. Default = null
orderBy — [InternalTxOrderByInput!] Ordering settings (multiple fields supported). Default = null
example
{
  "filters": InternalTxFilterInput,
  "pagination": PaginationInput,
  "orderBy": [InternalTxOrderByInput]
}
Scalar

JSON

The JSON scalar type represents JSON values as specified by ECMA-404.

example
{}
Object

Log

An event log emitted by a smart contract during a transaction (e.g. a Transfer event).

Fields

Field nameDescription
blockNumber — String Block number, decimal string (db)
txIndex — String Transaction position in the block, decimal string (db)
logIndex — String Log position within the transaction, decimal string (db)
txHash — String Transaction hash, 0x-prefixed 32-byte hex (db)
blockHash — String Block hash, 0x-prefixed 32-byte hex (db)
address — String Contract address that emitted the log, checksummed EIP-55 (db)
topic0 — String! The event's signature hash (keccak256 of its name and parameter types), identifying which event this is, e.g. Transfer(address,address,uint256). (db)
topic1 — String! The event's first indexed parameter (a filterable value set by the contract), 0x-prefixed 32-byte hex; addresses are left-padded with zeros. (db)
topic2 — String! The event's second indexed parameter, 0x-prefixed 32-byte hex. (db)
topic3 — String! The event's third indexed parameter, 0x-prefixed 32-byte hex. (db)
data — String Log data (non-indexed event parameters) (db)
removed — Boolean True if log was removed due to chain reorganization (db)
chainId — String Chain ID, decimal string (db)
topics — [String!] All topics for this log as one array (topic0 = event signature, topic1–3 = indexed parameters), omitting any that are empty.
block — Block Block that contains this log (db)
transaction — EmbeddedTransaction The transaction that emitted this log. (db)
example
{
  "blockNumber": "xyz789",
  "txIndex": "abc123",
  "logIndex": "xyz789",
  "txHash": "abc123",
  "blockHash": "abc123",
  "address": "xyz789",
  "topic0": "abc123",
  "topic1": "xyz789",
  "topic2": "xyz789",
  "topic3": "abc123",
  "data": "xyz789",
  "removed": false,
  "chainId": "abc123",
  "topics": ["abc123"],
  "block": Block,
  "transaction": EmbeddedTransaction
}
Object

LogConnection

A page of log results, with pagination info.

Fields

Field nameDescription
items — [Log!]! List of logs in this page
pageInfo — PageInfo! Pagination information
example
{
  "items": [Log],
  "pageInfo": PageInfo
}
Input

LogFilterInput

Filter conditions for querying logs, combinable with AND/OR/NOT logic.

Fields

Field nameDescription
blockNumber — IntFilter Filter by block number. Default = null
txIndex — IntFilter Filter by transaction index. Default = null
logIndex — IntFilter Filter by log index. Default = null
txHash — StringFilter Filter by transaction hash. Default = null
blockHash — StringFilter Filter by block hash. Default = null
address — StringFilter Filter by contract address. Default = null
topic0 — StringFilter Filter by topic0 — the event signature hash (identifies which event type, e.g. Transfer). Default = null
topic1 — StringFilter Filter by topic1 — the event's first indexed parameter. Default = null
topic2 — StringFilter Filter by topic2 — the event's second indexed parameter. Default = null
topic3 — StringFilter Filter by topic3 — the event's third indexed parameter. Default = null
data — StringFilter Filter by log data. Default = null
removed — BoolFilter Filter by removed status. Default = null
chainId — IntFilter Filter by chain ID. Default = null
and — [LogFilterInput!] Combine multiple filters with AND logic. Default = null
or — [LogFilterInput!] Combine multiple filters with OR logic. Default = null
not — LogFilterInput Negate the filter conditions. Default = null
example
{
  "blockNumber": IntFilter,
  "txIndex": IntFilter,
  "logIndex": IntFilter,
  "txHash": StringFilter,
  "blockHash": StringFilter,
  "address": StringFilter,
  "topic0": StringFilter,
  "topic1": StringFilter,
  "topic2": StringFilter,
  "topic3": StringFilter,
  "data": StringFilter,
  "removed": BoolFilter,
  "chainId": IntFilter,
  "and": [LogFilterInput],
  "or": [LogFilterInput],
  "not": LogFilterInput
}
Input

LogOrderByInput

Log ordering parameters

Fields

Field nameDescription
field — LogOrderField! Field to order by. Default = LOG_INDEX
direction — SortDirection! Sort direction. Default = ASC
example
{"field": "BLOCK_NUMBER", "direction": "ASC"}
Enum

LogOrderField

Log fields available for ordering

Values

Enum ValueDescription

BLOCK_NUMBER

TX_INDEX

LOG_INDEX

ADDRESS

example
"BLOCK_NUMBER"
Input

LogQueryInput

Input for querying logs with filters

Fields

Field nameDescription
filters — LogFilterInput Filter conditions for logs. Default = null
pagination — PaginationInput Pagination settings. Default = null
orderBy — [LogOrderByInput!] Ordering settings (multiple fields supported). Default = null
example
{
  "filters": LogFilterInput,
  "pagination": PaginationInput,
  "orderBy": [LogOrderByInput]
}
Object

LogSyncStatus

Compares log counts recorded in transactions against logs actually stored in the database.

Fields

Field nameDescription
sumOfLogCountersInTxs — BigInt! Sum of logs_count from all transactions (db)
actualCountInDb — BigInt! Actual log count in DB (db)
isSynced — Boolean! Whether logs are synced (db)
status — SyncStatusEnum! Sync status (db)
message — String Status description (db)
example
{
  "sumOfLogCountersInTxs": {},
  "actualCountInDb": {},
  "isSynced": false,
  "status": "SYNCED",
  "message": "abc123"
}
Object

Metadata

Fields

Field nameDescription
example
{
  "clientVersion": "abc123",
  "chainId": "abc123",
  "netVersion": "abc123",
  "netListening": true,
  "netPeerCount": "xyz789",
  "ethSyncing": {},
  "ethMining": true,
  "ethHashrate": "abc123",
  "ethProtocolVersion": "abc123",
  "ethBlockNumber": "xyz789",
  "ethGasPrice": "abc123"
}
Object

NodeMetadata

Snapshot of the blockchain node's current state, fetched live via RPC — used as the source of truth to compare against the database.

Fields

Field nameDescription
lastBlockNumber — String! Last block number reported by the node, as a hex string for EVM chains (rpc)
lastBlockHash — String! Hash of the last block reported by the node (rpc)
blockTimestamp — Int! Unix timestamp of the last block (rpc)
networkId — String! Network ID reported by the node (rpc)
chainId — Int! Chain ID (rpc)
lastQueryTime — DateTime! Time this node metadata was fetched (rpc)
example
{
  "lastBlockNumber": "abc123",
  "lastBlockHash": "abc123",
  "blockTimestamp": 123,
  "networkId": "abc123",
  "chainId": 987,
  "lastQueryTime": "2007-12-03T10:15:30Z"
}
Object

PageInfo

Pagination info for page-number-based navigation.

Fields

Field nameDescription
hasNextPage — Boolean! Whether there are more items after this page
hasPreviousPage — Boolean! Whether there are items before this page
totalCount — BigInt! Total number of items
currentPage — Int! Current page number (1-based)
totalPages — Int! Total number of pages
example
{
  "hasNextPage": true,
  "hasPreviousPage": true,
  "totalCount": {},
  "currentPage": 123,
  "totalPages": 123
}
Input

PaginationInput

Controls how many results to return and where to start (limit/offset).

Fields

Field nameDescription
limit — Int! Maximum number of items to return (max: 1000). Default = 50
offset — Int! Number of items to skip. Default = 0
example
{"limit": 987, "offset": 987}
Object

ParsedSwap

Decoded Uniswap V2 swap: tokenIn and tokenOut with addresses, decimals, and formatted amounts

Fields

Field nameDescription
tokenIn — SwapTokenInfo! Token that was sent into the pair (sold)
tokenOut — SwapTokenInfo! Token that was received from the pair (bought)
example
{
  "tokenIn": SwapTokenInfo,
  "tokenOut": SwapTokenInfo
}
Object

ParsedTokenAmount

Decoded token amount with raw hex, integer string, and human-readable formatted value

Fields

Field nameDescription
tokenAddress — String! Token contract address (db)
decimals — Int Token decimals from decimals() RPC call; null if RPC unavailable (rpc, cached)
amount — String! Raw amount as hex string, as stored in the log (db)
amountRaw — String! Amount as unsigned integer string (e.g. '1000000' for 1 USDT) (db)
amountFormatted — String Human-readable amount with decimals applied (e.g. '1.0' for 1 USDT with 6 decimals); null if decimals unavailable (rpc, cached)
example
{
  "tokenAddress": "abc123",
  "decimals": 123,
  "amount": "abc123",
  "amountRaw": "xyz789",
  "amountFormatted": "abc123"
}
Input

SignatureInput

Transaction signature components (ECDSA r, s, v)

Fields

Field nameDescription
r — String! ECDSA signature r component (hex string with 0x prefix)
s — String! ECDSA signature s component (hex string with 0x prefix)
v — String! ECDSA signature v component (hex string with 0x prefix or integer string)
example
{
  "r": "abc123",
  "s": "xyz789",
  "v": "abc123"
}
Enum

SortDirection

Sort direction

Values

Enum ValueDescription

ASC

DESC

example
"ASC"
Object

StakeAmount

Stake amount in multiple representations: hex, integer string, and human-readable decimal

Fields

Field nameDescription
hex — String! Stake as 0x-prefixed hex string, raw from event data (db)
wei — String! Stake as unsigned integer string in wei (db)
decimals — Int! Decimal places (18 for standard ERC-20 staking tokens)
decimal — String! Human-readable stake with decimals applied (e.g. '1500.0')
example
{
  "hex": "xyz789",
  "wei": "xyz789",
  "decimals": 123,
  "decimal": "xyz789"
}
Input

StorageAtInput

Fields

Field nameDescription
address — String! Contract address (20 bytes hex with 0x prefix)
position — String! Storage position (hex with 0x prefix, e.g., '0x0')
blockIdentifier — String! Block number (hex) or tag ("latest", "earliest", "pending", "safe", "finalized"). Default = "latest"
example
{
  "address": "abc123",
  "position": "abc123",
  "blockIdentifier": "abc123"
}
Object

StorageAtResult

Fields

Field nameDescription
value — String! The raw 32-byte value stored at the requested contract storage slot. (rpc) — read live from the node's current state, not our indexed database.
example
{"value": "abc123"}
Scalar

String

The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.

example
"abc123"
Input

StringFilter

Filter for string fields

Fields

Field nameDescription
eq — String Equals. Default = null
ne — String Not equals. Default = null
contains — String Contains substring (case-sensitive). Default = null
notContains — String Does not contain substring. Default = null
startsWith — String Starts with. Default = null
endsWith — String Ends with. Default = null
regex — String Matches values against a regular expression pattern (RE2 syntax — similar to most common regex dialects, but without backreferences). Default = null
notRegex — String Matches values that do NOT match the given regular expression pattern (RE2 syntax). Default = null
in — [String!] In list of values (max 500 entries). Default = null
notIn — [String!] Not in list of values (max 500 entries). Default = null
isNull — Boolean Is null check. Default = null
example
{
  "eq": "xyz789",
  "ne": "abc123",
  "contains": "xyz789",
  "notContains": "xyz789",
  "startsWith": "abc123",
  "endsWith": "xyz789",
  "regex": "xyz789",
  "notRegex": "xyz789",
  "in": ["xyz789"],
  "notIn": ["xyz789"],
  "isNull": false
}
Object

SupportedChain

A blockchain network this API can query (e.g. Ethereum, Base, Polygon).

Fields

Field nameDescription
chainId — Int! The chain's unique numeric identifier (EIP-155), e.g. 1 for Ethereum Mainnet.
chainIdHex — String! The chain ID as a 0x-prefixed hexadecimal string, as used in wallet/RPC configs (e.g. '0x1').
chainName — String! Human-readable chain name
nativeCurrencySymbol — String The chain's native currency symbol (e.g. 'ETH'), or null if the chain isn't in the local chain registry.
nativeCurrencyDecimals — Int The chain's native currency decimals (e.g. 18), or null if the chain isn't in the local chain registry.
dataMode — ChainDataMode! How much history is indexed for this chain: full archive from genesis, or only recent/live blocks going forward.
example
{
  "chainId": 123,
  "chainIdHex": "xyz789",
  "chainName": "xyz789",
  "nativeCurrencySymbol": "abc123",
  "nativeCurrencyDecimals": 123,
  "dataMode": "FULL_HISTORY"
}
Object

SwapTokenInfo

Decoded token side of a swap — address, amounts, and decimals for one direction

Fields

Field nameDescription
side — String! Position in pair: 'token0' or 'token1'
address — String Token contract address resolved from pair via RPC; null if RPC unavailable (rpc, cached)
amount — String! Raw amount as string from the Swap event — decimal from DB, hex from real-time (db)
amountRaw — String! Amount as unsigned integer string (db)
decimals — Int Token decimals from decimals() RPC call; null if RPC unavailable (rpc, cached)
amountFormatted — String Human-readable amount with decimals applied; null if decimals unavailable (rpc, cached)
example
{
  "side": "xyz789",
  "address": "xyz789",
  "amount": "abc123",
  "amountRaw": "xyz789",
  "decimals": 123,
  "amountFormatted": "abc123"
}
Enum

SyncStatusEnum

Indicates how closely the database is keeping up with the blockchain node: SYNCED (fully caught up), DESYNCHRONIZED (mismatch within normal backfill range), OUT_OF_SYNC (mismatch beyond the backfill threshold — lag over 1000 blocks, or over 10000 for transaction/log counts), or ERROR (sync check failed). PARTIALLY_SYNCED is defined but not currently produced by the sync check.

Values

Enum ValueDescription

SYNCED

PARTIALLY_SYNCED

DESYNCHRONIZED

OUT_OF_SYNC

ERROR

example
"SYNCED"
Object

Transaction

A transaction on the blockchain (works the same way across all supported chains).

Fields

Field nameDescription
blockNumber — String Block number, decimal string (db)
txIndex — String Transaction position within the block, decimal string (db)
hash — String Transaction hash, 0x-prefixed 32-byte hex (db)
fromAddress — String Sender address, 0x-prefixed checksummed EIP-55 (db)
toAddress — String Recipient address, checksummed EIP-55; '0x' for contract creation (db)
valueWei — String Value in wei, decimal string (e.g. '1000000000000000000' = 1 ETH) (db)
gas — String Gas limit, decimal string (db)
gasPrice — String Gas price in wei, decimal string (db)
gasUsed — String Actual gas consumed, decimal string (db)
nonce — String Sender nonce, decimal string (db)
txType — String EIP-2718 transaction type: '0' legacy, '1' EIP-2930, '2' EIP-1559 (db)
maxFeePerGas — String Max fee per gas in wei, decimal string; '0' for legacy tx (EIP-1559) (db)
maxPriorityFeePerGas — String Max priority fee (tip) in wei, decimal string; '0' for legacy tx (EIP-1559) (db)
input — String Calldata, 0x-prefixed hex; '0x' for simple transfers (db)
v — String ECDSA recovery id (db)
r — String ECDSA signature r, 0x-prefixed hex (db)
s — String ECDSA signature s, 0x-prefixed hex (db)
size — String Transaction size in bytes, decimal string (db)
success — String 1 if transaction succeeded, 0 if failed (db)
logsCount — String Number of event logs emitted, decimal string (db)
chainId — String Chain ID, decimal string (db)
block — Block Block that contains this transaction (db)
logs — [EmbeddedLog!]! Event logs emitted by this transaction. (db)
internalTransactions — [InternalTransaction!]! Internal transactions — value transfers or calls made during this transaction's execution, e.g. by a smart contract. (db)
example
{
  "blockNumber": "abc123",
  "txIndex": "xyz789",
  "hash": "xyz789",
  "fromAddress": "xyz789",
  "toAddress": "xyz789",
  "valueWei": "xyz789",
  "gas": "abc123",
  "gasPrice": "xyz789",
  "gasUsed": "abc123",
  "nonce": "abc123",
  "txType": "xyz789",
  "maxFeePerGas": "xyz789",
  "maxPriorityFeePerGas": "abc123",
  "input": "abc123",
  "v": "abc123",
  "r": "xyz789",
  "s": "xyz789",
  "size": "xyz789",
  "success": "abc123",
  "logsCount": "xyz789",
  "chainId": "xyz789",
  "block": Block,
  "logs": [EmbeddedLog],
  "internalTransactions": [InternalTransaction]
}
Object

TransactionConnection

A page of transaction results, with pagination info.

Fields

Field nameDescription
items — [Transaction!]! List of transactions in this page
pageInfo — PageInfo! Pagination information
example
{
  "items": [Transaction],
  "pageInfo": PageInfo
}
Object

TransactionCountResult

Fields

Field nameDescription
hex — String! Transaction count (hex string) (db)
count — String! Transaction count (decimal string) (db)
example
{
  "hex": "xyz789",
  "count": "abc123"
}
Input

TransactionFilterInput

Filter conditions for querying transactions, combinable with AND/OR/NOT logic.

Fields

Field nameDescription
hash — StringFilter Filter by transaction hash. Default = null
fromAddress — StringFilter Filter by sender address. Default = null
toAddress — StringFilter Filter by recipient address. Default = null
input — StringFilter Filter by input data (calldata). Default = null
blockNumber — IntFilter Filter by block number. Default = null
txIndex — IntFilter Filter by transaction index in block. Default = null
nonce — IntFilter Filter by nonce. Default = null
txType — IntFilter Filter by transaction type. Default = null
logsCount — IntFilter Filter by number of logs. Default = null
valueWei — BigIntFilter Filter by value in wei. Default = null
gas — BigIntFilter Filter by gas limit. Default = null
gasPrice — BigIntFilter Filter by gas price. Default = null
gasUsed — BigIntFilter Filter by gas used. Default = null
maxFeePerGas — BigIntFilter Filter by max fee per gas (EIP-1559). Default = null
maxPriorityFeePerGas — BigIntFilter Filter by max priority fee per gas (EIP-1559). Default = null
success — IntFilter Filter by transaction success status (1=success, 0=failed). Default = null
size — IntFilter Filter by transaction size in bytes. Default = null
chainId — IntFilter Filter by chain ID. Default = null
and — [TransactionFilterInput!] Combine multiple filters with AND logic. Default = null
or — [TransactionFilterInput!] Combine multiple filters with OR logic. Default = null
not — TransactionFilterInput Negate the filter conditions. Default = null
example
{
  "hash": StringFilter,
  "fromAddress": StringFilter,
  "toAddress": StringFilter,
  "input": StringFilter,
  "blockNumber": IntFilter,
  "txIndex": IntFilter,
  "nonce": IntFilter,
  "txType": IntFilter,
  "logsCount": IntFilter,
  "valueWei": BigIntFilter,
  "gas": BigIntFilter,
  "gasPrice": BigIntFilter,
  "gasUsed": BigIntFilter,
  "maxFeePerGas": BigIntFilter,
  "maxPriorityFeePerGas": BigIntFilter,
  "success": IntFilter,
  "size": IntFilter,
  "chainId": IntFilter,
  "and": [TransactionFilterInput],
  "or": [TransactionFilterInput],
  "not": TransactionFilterInput
}
Input

TransactionLeaf

A single transaction to broadcast (batch leaf). Provide either raw (a pre-signed hex string) OR txData + signature — not both.

Fields

Field nameDescription
raw — String Pre-signed raw transaction hex (with 0x prefix). Mutually exclusive with txData/signature. Default = null
txData — BuildTransactionInput Complete transaction data used to build the raw transaction. Default = null
signature — SignatureInput ECDSA signature components (r, s, v) for the transaction. Default = null
example
{
  "raw": "xyz789",
  "txData": BuildTransactionInput,
  "signature": SignatureInput
}
Input

TransactionNode

A node in a batch-transaction tree. Specify exactly one of item, seq or par.

Fields

Field nameDescription
item — TransactionLeaf A single transaction to send (mutually exclusive with seq/par). Default = null
seq — [TransactionNode!] Child nodes executed sequentially, one after another. Default = null
par — [TransactionNode!] Child nodes executed concurrently (in parallel). Default = null
example
{
  "item": TransactionLeaf,
  "seq": [TransactionNode],
  "par": [TransactionNode]
}
Input

TransactionOrderByInput

Transaction ordering parameters

Fields

Field nameDescription
field — TransactionOrderField! Field to order by. Default = BLOCK_NUMBER
direction — SortDirection! Sort direction. Default = DESC
example
{"field": "BLOCK_NUMBER", "direction": "ASC"}
Enum

TransactionOrderField

Transaction fields available for ordering

Values

Enum ValueDescription

BLOCK_NUMBER

TX_INDEX

HASH

FROM_ADDRESS

TO_ADDRESS

VALUE_WEI

GAS

GAS_PRICE

GAS_USED

NONCE

example
"BLOCK_NUMBER"
Input

TransactionQueryInput

Input for querying transactions with filters

Fields

Field nameDescription
filters — TransactionFilterInput Filter conditions for transactions. Default = null
pagination — PaginationInput Pagination settings. Default = null
orderBy — [TransactionOrderByInput!] Ordering settings (multiple fields supported). Default = null
example
{
  "filters": TransactionFilterInput,
  "pagination": PaginationInput,
  "orderBy": [TransactionOrderByInput]
}
Object

TransactionResult

Result of a single transaction in a batch.

Fields

Field nameDescription
hash — String Transaction hash if successfully broadcast, null on failure.
success — Boolean! Whether this transaction was sent successfully.
error — String Error message if the transaction failed, null on success.
example
{
  "hash": "xyz789",
  "success": false,
  "error": "abc123"
}
Object

TransactionSyncStatus

Compares transaction counts recorded in blocks against transactions actually stored in the database.

Fields

Field nameDescription
sumOfTxCountersInBlocks — BigInt! Sum of tx_count from all blocks (db)
actualCountInDb — BigInt! Actual transaction count in DB (db)
isSynced — Boolean! Whether transactions are synced (db)
status — SyncStatusEnum! Sync status (db)
message — String Status description (db)
example
{
  "sumOfTxCountersInBlocks": {},
  "actualCountInDb": {},
  "isSynced": false,
  "status": "SYNCED",
  "message": "abc123"
}