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.
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.
Query
balance
Native ETH balance for a wallet at the latest block — or any historical block.
query Balance ($wallet : String! ) {
balance (walletAddress: $wallet ) {
chainId
balance {
wei
decimal
decimals
}
}
}
{
"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.
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 }
}
}
{
"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.
subscription OnNewBlocks {
newBlocks (criteria: { finalized : { eq : true } }) {
number
hash
timestamp
txCount
finalized
}
}
▶ 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
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.
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.
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
Copy
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.
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.
query TokenIntel {
erc20Token(tokenAddress: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48") {
erc20TotalSupply { balance { decimal } }
erc20BalanceOf(walletAddress: "0x83b8499b5637bdf5b4c3ddb5ee1f54a24c8518bd") { balance { decimal } }
erc20Holders(limit: 10) { walletAddress balance { decimal } }
}
}
Live today
Next up
Arbitrum
Base
Optimism
Polygon
Planned
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.
Arguments Name Description
walletAddressString!
blockNumberInt
Default = null
chainIdInt
Default = null
query balance(
$walletAddress : String! ,
$blockNumber : Int,
$chainId : Int
) {
balance(
walletAddress: $walletAddress ,
blockNumber: $blockNumber ,
chainId: $chainId
) {
chainId
balance {
...BalanceResultFragment
}
}
}
Variables {
"walletAddress" : "xyz789" ,
"blockNumber" : null ,
"chainId" : null
}
Response {
"data" : {
"balance" : { "chainId" : 987 , "balance" : BalanceResult }
}
}
Searches blocks with optional filters (e.g. by number, miner, timestamp), pagination, and ordering. (db) — served from our indexed database.
query blocks($queryInput : BlockQueryInput) {
blocks(queryInput: $queryInput ) {
items {
...BlockFragment
}
pageInfo {
...PageInfoFragment
}
}
}
Response {
"data" : {
"blocks" : {
"items" : [ Block ] ,
"pageInfo" : PageInfo
}
}
}
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.
Arguments Name Description
chainString
Default = null
chainIdString
Default = null
query dbSyncStatus(
$chain : String,
$chainId : String
) {
dbSyncStatus(
chain: $chain ,
chainId: $chainId
) {
nodeMetadata {
...NodeMetadataFragment
}
dbSyncStatus {
...DbSyncStatusFragment
}
}
}
Variables { "chain" : null , "chainId" : null }
Response {
"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
query delegateStakeChangedEvents($input : DelegateStakeChangedQueryInput) {
delegateStakeChangedEvents(input: $input ) {
items {
...DelegateStakeChangedEventFragment
}
pageInfo {
...PageInfoFragment
}
}
}
Response {
"data" : {
"delegateStakeChangedEvents" : {
"items" : [ DelegateStakeChangedEvent ] ,
"pageInfo" : PageInfo
}
}
}
Searches Delegated events — recorded when a delegator selects a guardian to stake with — with optional filters, pagination, and ordering. (db) Topic0: 0x4bc154dd35d6a5cb9206482ecb473cdbf2473006d6bce728b9cc0741bcc59ea2
query delegatedEvents($input : DelegatedQueryInput) {
delegatedEvents(input: $input ) {
items {
...DelegatedEventFragment
}
pageInfo {
...PageInfoFragment
}
}
}
Response {
"data" : {
"delegatedEvents" : {
"items" : [ DelegatedEvent ] ,
"pageInfo" : PageInfo
}
}
}
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.
Arguments Name Description
tokenAddressString!
query erc20Token($tokenAddress : String! ) {
erc20Token(tokenAddress: $tokenAddress ) {
tokenAddress
erc20TotalSupply {
...BalanceResponseFragment
}
erc20BalanceOf {
...BalanceResponseFragment
}
erc20Holders {
...ERC20TokenHolderFragment
}
}
}
Variables { "tokenAddress" : "abc123" }
Response {
"data" : {
"erc20Token" : {
"tokenAddress" : "xyz789" ,
"erc20TotalSupply" : BalanceResponse ,
"erc20BalanceOf" : BalanceResponse ,
"erc20Holders" : [ ERC20TokenHolder ]
}
}
}
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)
query erc20TokenApprovals($input : ERC20TokenApprovalQueryInput) {
erc20TokenApprovals(input: $input ) {
items {
...ERC20TokenApprovalFragment
}
pageInfo {
...PageInfoFragment
}
}
}
Response {
"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)
query erc20TokenSwapEvents($input : ERC20TokenSwapEventQueryInput) {
erc20TokenSwapEvents(input: $input ) {
items {
...ERC20TokenSwapEventFragment
}
pageInfo {
...PageInfoFragment
}
}
}
Response {
"data" : {
"erc20TokenSwapEvents" : {
"items" : [ ERC20TokenSwapEvent ] ,
"pageInfo" : PageInfo
}
}
}
Searches ERC-20 token transfer events with optional filters (e.g. by token, sender, recipient), pagination, and ordering. (db)
query erc20TokenTransfers($input : ERC20TokenTransferQueryInput) {
erc20TokenTransfers(input: $input ) {
items {
...ERC20TokenTransferFragment
}
pageInfo {
...PageInfoFragment
}
}
}
Response {
"data" : {
"erc20TokenTransfers" : {
"items" : [ ERC20TokenTransfer ] ,
"pageInfo" : PageInfo
}
}
}
Searches NFT transfer events (ERC-721 standard) with optional filters (e.g. by contract, sender, recipient), pagination, and ordering. (db)
query erc721Transfers($input : ERC721TransferQueryInput) {
erc721Transfers(input: $input ) {
items {
...ERC721TransferFragment
}
pageInfo {
...PageInfoFragment
}
}
}
Response {
"data" : {
"erc721Transfers" : {
"items" : [ ERC721Transfer ] ,
"pageInfo" : PageInfo
}
}
}
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)
query estimateGas(
$input : EstimateGasInput! ,
$chain : String,
$chainId : Int
) {
estimateGas(
input: $input ,
chain: $chain ,
chainId: $chainId
) {
gas
gasDecimal
}
}
Variables {
"input" : EstimateGasInput ,
"chain" : null ,
"chainId" : null
}
Response {
"data" : {
"estimateGas" : {
"gas" : "xyz789" ,
"gasDecimal" : 123
}
}
}
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)
query ethCall(
$input : EthCallInput! ,
$chain : String,
$chainId : Int
) {
ethCall(
input: $input ,
chain: $chain ,
chainId: $chainId
) {
data
}
}
Variables { "input" : EthCallInput , "chain" : null , "chainId" : null }
Response { "data" : { "ethCall" : { "data" : "xyz789" } } }
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.
Arguments Name Description
addressString!
blockNumberInt
Default = null
chainIdInt
Default = null
query ethGetCode(
$address : String! ,
$blockNumber : Int,
$chainId : Int
) {
ethGetCode(
address: $address ,
blockNumber: $blockNumber ,
chainId: $chainId
)
}
Variables {
"address" : "xyz789" ,
"blockNumber" : null ,
"chainId" : null
}
Response { "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.
query ethGetTransactionCount($input : GetTransactionCountInput! ) {
ethGetTransactionCount(input: $input ) {
hex
count
}
}
Variables { "input" : GetTransactionCountInput }
Response {
"data" : {
"ethGetTransactionCount" : {
"hex" : "xyz789" ,
"count" : "abc123"
}
}
}
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.
Arguments Name Description
chainString
Default = null
chainIdInt
Default = null
query ethSyncing(
$chain : String,
$chainId : Int
) {
ethSyncing(
chain: $chain ,
chainId: $chainId
)
}
Variables { "chain" : null , "chainId" : null }
Response { "data" : { "ethSyncing" : { } } }
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)
query getStorageAt(
$input : StorageAtInput! ,
$chain : String,
$chainId : Int
) {
getStorageAt(
input: $input ,
chain: $chain ,
chainId: $chainId
) {
value
}
}
Variables { "input" : StorageAtInput , "chain" : null , "chainId" : null }
Response {
"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)
query internalTransactions($input : InternalTxQueryInput) {
internalTransactions(input: $input ) {
items {
...InternalTransactionFragment
}
pageInfo {
...PageInfoFragment
}
}
}
Response {
"data" : {
"internalTransactions" : {
"items" : [ InternalTransaction ] ,
"pageInfo" : PageInfo
}
}
}
Searches event logs with optional filters (e.g. by contract address, event topic), pagination, and ordering. (db) — served from our indexed database.
query logs($input : LogQueryInput) {
logs(input: $input ) {
items {
...LogFragment
}
pageInfo {
...PageInfoFragment
}
}
}
Response {
"data" : {
"logs" : {
"items" : [ Log ] ,
"pageInfo" : PageInfo
}
}
}
query metadata {
metadata {
clientVersion
chainId
netVersion
netListening
netPeerCount
ethSyncing
ethMining
ethHashrate
ethProtocolVersion
ethBlockNumber
ethGasPrice
}
}
Response {
"data" : {
"metadata" : {
"clientVersion" : "abc123" ,
"chainId" : "abc123" ,
"netVersion" : "abc123" ,
"netListening" : true ,
"netPeerCount" : "xyz789" ,
"ethSyncing" : { } ,
"ethMining" : false ,
"ethHashrate" : "abc123" ,
"ethProtocolVersion" : "abc123" ,
"ethBlockNumber" : "abc123" ,
"ethGasPrice" : "xyz789"
}
}
}
Lists every blockchain network this API currently supports, with each chain's ID and how much historical data is available.
query supportedChains {
supportedChains {
chainId
chainIdHex
chainName
nativeCurrencySymbol
nativeCurrencyDecimals
dataMode
}
}
Response {
"data" : {
"supportedChains" : [
{
"chainId" : 123 ,
"chainIdHex" : "xyz789" ,
"chainName" : "abc123" ,
"nativeCurrencySymbol" : "abc123" ,
"nativeCurrencyDecimals" : 123 ,
"dataMode" : "FULL_HISTORY"
}
]
}
}
Searches transactions with optional filters (e.g. by sender, recipient, value), pagination, and ordering. (db) — served from our indexed database.
query transactions($input : TransactionQueryInput) {
transactions(input: $input ) {
items {
...TransactionFragment
}
pageInfo {
...PageInfoFragment
}
}
}
Response {
"data" : {
"transactions" : {
"items" : [ Transaction ] ,
"pageInfo" : PageInfo
}
}
}
Returns usage statistics (currently returns mock data) (mock)
query usageStat {
usageStat {
effectiveness
jsonrpcRatio
}
}
Response { "data" : { "usageStat" : { "effectiveness" : 123.45 , "jsonrpcRatio" : 123.45 } } }
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.
query web3Sha3($message : String! ) {
web3Sha3(message: $message )
}
Response { "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.
Arguments Name Description
signedTxString!
chainString
Default = null
chainIdInt
Default = null
mutation sendRawTransaction(
$signedTx : String! ,
$chain : String,
$chainId : Int
) {
sendRawTransaction(
signedTx: $signedTx ,
chain: $chain ,
chainId: $chainId
)
}
Variables {
"signedTx" : "xyz789" ,
"chain" : null ,
"chainId" : null
}
Response { "data" : { "sendRawTransaction" : "abc123" } }
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.
mutation sendTransaction(
$txData : BuildTransactionInput! ,
$signature : SignatureInput! ,
$chain : String,
$chainId : Int
) {
sendTransaction(
txData: $txData ,
signature: $signature ,
chain: $chain ,
chainId: $chainId
)
}
Variables {
"txData" : BuildTransactionInput ,
"signature" : SignatureInput ,
"chain" : null ,
"chainId" : null
}
Response { "data" : { "sendTransaction" : "abc123" } }
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.
mutation sendTransactions(
$node : TransactionNode! ,
$chain : String,
$chainId : Int
) {
sendTransactions(
node: $node ,
chain: $chain ,
chainId: $chainId
) {
hash
success
error
}
}
Variables { "node" : TransactionNode , "chain" : null , "chainId" : null }
Response {
"data" : {
"sendTransactions" : [
{
"hash" : "abc123" ,
"success" : false ,
"error" : "abc123"
}
]
}
}
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.
mutation signTransaction(
$txData : BuildTransactionInput! ,
$signature : SignatureInput!
) {
signTransaction(
txData: $txData ,
signature: $signature
)
}
Variables {
"txData" : BuildTransactionInput ,
"signature" : SignatureInput
}
Response { "data" : { "signTransaction" : "xyz789" } }
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)
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
}
}
}
Response {
"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 ]
}
}
}
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)
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
}
}
}
Response {
"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.
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 {
"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)
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
}
}
}
Response {
"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 ]
}
}
}
A balance result together with the blockchain it was resolved on.
Fields Field name Description
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
{ "chainId" : 987 , "balance" : BalanceResult }
An account balance expressed in several equivalent formats: raw hex, wei, and a human-readable decimal amount.
Fields Field name Description
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)
{
"hex" : "xyz789" ,
"wei" : "xyz789" ,
"decimals" : 123 ,
"decimal" : "xyz789"
}
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.
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 name Description
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
{
"eq" : "xyz789" ,
"ne" : "abc123" ,
"gt" : "xyz789" ,
"gte" : "abc123" ,
"lt" : "abc123" ,
"lte" : "abc123" ,
"in" : [ "xyz789" ] ,
"notIn" : [ "xyz789" ] ,
"between" : [ "xyz789" ] ,
"isNull" : false
}
A block on the blockchain (works the same way across all supported chains).
Fields Field name Description
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)
{
"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 ]
}
A page of block results, with pagination info.
Fields Field name Description
items — [Block!]!
List of blocks in this page
pageInfo — PageInfo!
Pagination information
{
"items" : [ Block ] ,
"pageInfo" : PageInfo
}
Filter conditions for querying blocks, combinable with AND/OR/NOT logic.
Fields Field name Description
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
{
"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
}
Block ordering parameters
{ "field" : "NUMBER" , "direction" : "ASC" }
Block fields available for ordering
Values Enum Value Description
NUMBER
HASH
TIMESTAMP
GAS_USED
GAS_LIMIT
MINER
DIFFICULTY
SIZE
Input for querying blocks with filters
{
"filters" : BlockFilterInput ,
"pagination" : PaginationInput ,
"orderBy" : [ BlockOrderByInput ]
}
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 name Description
blockNumber — String!
Number of the reverted block, decimal string
blockHash — String!
Hash of the reverted block, 0x-prefixed 32-byte hex
{
"blockNumber" : "xyz789" ,
"blockHash" : "xyz789"
}
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 name Description
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)
{
"nodeLastBlock" : { } ,
"dbMaxBlock" : { } ,
"dbActualCount" : { } ,
"expected" : { } ,
"actual" : { } ,
"isSynced" : false ,
"status" : "SYNCED" ,
"message" : "xyz789"
}
Filter for boolean fields (UInt8 0/1)
Fields Field name Description
eq — Boolean
Equals. Default = null
isNull — Boolean
Is null check. Default = null
{ "eq" : true , "isNull" : false }
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 name Description
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
{
"to" : "xyz789" ,
"value" : "xyz789" ,
"gas" : "xyz789" ,
"nonce" : "xyz789" ,
"data" : "abc123" ,
"chainId" : "abc123" ,
"gasPrice" : "xyz789" ,
"maxFeePerGas" : "abc123" ,
"maxPriorityFeePerGas" : "xyz789" ,
"type" : "abc123"
}
Values Enum Value Description
FULL_HISTORY
LIVE_ONLY
Date with time (isoformat)
Combined result of a database sync health check: the node's current state alongside the database's sync status.
Fields Field name Description
nodeMetadata — NodeMetadata!
Node metadata from RPC (rpc)
dbSyncStatus — DbSyncStatus!
DB sync status details (db, rpc)
{
"nodeMetadata" : NodeMetadata ,
"dbSyncStatus" : DbSyncStatus
}
Combined sync status across blocks, transactions, and logs, with an overall health summary.
Fields Field name Description
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)
{
"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.
{
"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 name Description
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)
{
"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.
{
"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
{ "field" : "BLOCK_NUMBER" , "direction" : "ASC" }
Enum DelegateStakeChangedOrderField
DelegateStakeChanged event fields available for ordering
Values Enum Value Description
BLOCK_NUMBER
LOG_INDEX
Input DelegateStakeChangedQueryInput
Input for querying DelegateStakeChanged events
{
"filters" : DelegateStakeChangedFilterInput ,
"pagination" : PaginationInput ,
"orderBy" : [ DelegateStakeChangedOrderByInput ]
}
Object DelegatedConnection
A page of Delegated event results, with pagination info.
{
"items" : [ DelegatedEvent ] ,
"pageInfo" : PageInfo
}
Delegated event — emitted when a delegator chooses a guardian to stake with in a PoS staking protocol. Topic0 (event signature hash): 0x4bc154dd35d6a5cb9206482ecb473cdbf2473006d6bce728b9cc0741bcc59ea2
Fields Field name Description
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)
{
"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 name Description
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
{
"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
{ "field" : "BLOCK_NUMBER" , "direction" : "ASC" }
Delegated event fields available for ordering
Values Enum Value Description
BLOCK_NUMBER
LOG_INDEX
Input for querying Delegated events
{
"filters" : DelegatedFilterInput ,
"pagination" : PaginationInput ,
"orderBy" : [ DelegatedOrderByInput ]
}
An ERC-20 token contract, with its balance, supply, and holder data.
Fields Field name Description
tokenAddress — String!
ERC-20 token smart contract address
{
"tokenAddress" : "abc123" ,
"erc20TotalSupply" : BalanceResponse ,
"erc20BalanceOf" : BalanceResponse ,
"erc20Holders" : [ ERC20TokenHolder ]
}
ERC-20 Approval event — emitted when an owner approves a spender to transfer tokens on their behalf
Fields Field name Description
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)
{
"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.
{
"items" : [ ERC20TokenApproval ] ,
"pageInfo" : PageInfo
}
Input ERC20TokenApprovalFilterInput
Filter conditions for querying ERC-20 Approval events, combinable with AND/OR/NOT logic.
{
"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
{ "field" : "BLOCK_NUMBER" , "direction" : "ASC" }
Enum ERC20TokenApprovalOrderField
ERC-20 Token Approval event fields available for ordering
Values Enum Value Description
BLOCK_NUMBER
LOG_INDEX
TOKEN_ADDRESS
OWNER
SPENDER
VALUE
Input ERC20TokenApprovalQueryInput
Input for querying ERC-20 Token Approval events
{
"filters" : ERC20TokenApprovalFilterInput ,
"pagination" : PaginationInput ,
"orderBy" : [ ERC20TokenApprovalOrderByInput ]
}
A wallet address holding a non-zero balance of an ERC-20 token.
Fields Field name Description
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
{
"walletAddress" : "abc123" ,
"chainId" : 987 ,
"balance" : BalanceResult
}
Object ERC20TokenSwapEvent
Uniswap V2 Swap event — emitted on every token swap within a pair contract
Fields Field name Description
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)
{
"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.
{
"items" : [ ERC20TokenSwapEvent ] ,
"pageInfo" : PageInfo
}
Input ERC20TokenSwapEventFilterInput
Filter conditions for querying Uniswap V2 Swap events, combinable with AND/OR/NOT logic.
{
"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
{ "field" : "BLOCK_NUMBER" , "direction" : "ASC" }
Enum ERC20TokenSwapEventOrderField
Uniswap V2 Swap event fields available for ordering
Values Enum Value Description
BLOCK_NUMBER
LOG_INDEX
PAIR_ADDRESS
Input ERC20TokenSwapEventQueryInput
Input for querying Uniswap V2 Swap events
{
"filters" : ERC20TokenSwapEventFilterInput ,
"pagination" : PaginationInput ,
"orderBy" : [ ERC20TokenSwapEventOrderByInput ]
}
ERC-20 Transfer event — emitted on every token transfer between addresses
Fields Field name Description
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)
{
"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.
{
"items" : [ ERC20TokenTransfer ] ,
"pageInfo" : PageInfo
}
Input ERC20TokenTransferFilterInput
Filter conditions for querying ERC-20 Transfer events, combinable with AND/OR/NOT logic.
{
"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
{ "field" : "BLOCK_NUMBER" , "direction" : "ASC" }
Enum ERC20TokenTransferOrderField
ERC-20 Token Transfer event fields available for ordering
Values Enum Value Description
BLOCK_NUMBER
LOG_INDEX
TOKEN_ADDRESS
FROM_ADDRESS
TO_ADDRESS
VALUE
Input ERC20TokenTransferQueryInput
Input for querying ERC-20 Token Transfer events
{
"filters" : ERC20TokenTransferFilterInput ,
"pagination" : PaginationInput ,
"orderBy" : [ ERC20TokenTransferOrderByInput ]
}
An NFT transfer event (ERC-721 standard) — emitted whenever an NFT moves between addresses, including mints and burns.
Fields Field name Description
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)
{
"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 name Description
items — [ERC721Transfer!]!
List of ERC-721 Transfer events in this page
pageInfo — PageInfo!
Pagination information
{
"items" : [ ERC721Transfer ] ,
"pageInfo" : PageInfo
}
Input ERC721TransferFilterInput
Filter conditions for querying ERC-721 NFT Transfer events, combinable with AND/OR/NOT logic.
Fields Field name Description
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
{
"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
{ "field" : "BLOCK_NUMBER" , "direction" : "ASC" }
Enum ERC721TransferOrderField
ERC-721 NFT Transfer event fields available for ordering
Values Enum Value Description
BLOCK_NUMBER
LOG_INDEX
TOKEN_ADDRESS
FROM_ADDRESS
TO_ADDRESS
TOKEN_ID
Input ERC721TransferQueryInput
Input for querying ERC-721 NFT Transfer events
{
"filters" : ERC721TransferFilterInput ,
"pagination" : PaginationInput ,
"orderBy" : [ ERC721TransferOrderByInput ]
}
Fields Field name Description
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)
{ "effectiveness" : 123.45 , "jsonrpcRatio" : 123.45 }
An event log emitted by a smart contract during a transaction (e.g. a Transfer event).
Fields Field name Description
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.
{
"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 name Description
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)
{
"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"
}
Fields Field name Description
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
{
"to" : "abc123" ,
"fromAddress" : "abc123" ,
"gas" : "xyz789" ,
"gasPrice" : "abc123" ,
"maxFeePerGas" : "abc123" ,
"maxPriorityFeePerGas" : "xyz789" ,
"value" : "xyz789" ,
"data" : "xyz789" ,
"blockIdentifier" : "xyz789"
}
Fields Field name Description
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)
{ "gas" : "xyz789" , "gasDecimal" : 987 }
Fields Field name Description
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"
{
"to" : "abc123" ,
"fromAddress" : "xyz789" ,
"gas" : "abc123" ,
"gasPrice" : "abc123" ,
"maxFeePerGas" : "abc123" ,
"maxPriorityFeePerGas" : "xyz789" ,
"value" : "xyz789" ,
"data" : "abc123" ,
"blockIdentifier" : "abc123"
}
Fields Field name Description
data — String!
Hex-encoded return value of the executed contract call (rpc)
The Float scalar type represents signed double-precision fractional values as specified by IEEE 754 .
Input GetTransactionCountInput
Fields Field name Description
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
{
"address" : "xyz789" ,
"blockIdentifier" : "xyz789" ,
"chainId" : 123
}
The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.
Filter for integer fields (UInt32, UInt64)
Fields Field name Description
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
{
"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 name Description
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)
{
"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.
{
"items" : [ InternalTransaction ] ,
"pageInfo" : PageInfo
}
Input InternalTxFilterInput
Filter conditions for querying internal transactions, combinable with AND/OR/NOT logic.
Fields Field name Description
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
{
"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
{ "field" : "BLOCK_NUMBER" , "direction" : "ASC" }
Internal transaction fields available for ordering
Values Enum Value Description
BLOCK_NUMBER
TRACE_INDEX
FROM_ADDRESS
TO_ADDRESS
VALUE_WEI
CALL_TYPE
Input InternalTxQueryInput
Input for querying internal transactions with filters
{
"filters" : InternalTxFilterInput ,
"pagination" : PaginationInput ,
"orderBy" : [ InternalTxOrderByInput ]
}
The JSON scalar type represents JSON values as specified by ECMA-404 .
An event log emitted by a smart contract during a transaction (e.g. a Transfer event).
Fields Field name Description
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)
{
"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
}
A page of log results, with pagination info.
Fields Field name Description
items — [Log!]!
List of logs in this page
pageInfo — PageInfo!
Pagination information
{
"items" : [ Log ] ,
"pageInfo" : PageInfo
}
Filter conditions for querying logs, combinable with AND/OR/NOT logic.
Fields Field name Description
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
{
"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
}
Log ordering parameters
Fields Field name Description
field — LogOrderField!
Field to order by. Default = LOG_INDEX
direction — SortDirection!
Sort direction. Default = ASC
{ "field" : "BLOCK_NUMBER" , "direction" : "ASC" }
Log fields available for ordering
Values Enum Value Description
BLOCK_NUMBER
TX_INDEX
LOG_INDEX
ADDRESS
Input for querying logs with filters
Fields Field name Description
filters — LogFilterInput
Filter conditions for logs. Default = null
pagination — PaginationInput
Pagination settings. Default = null
orderBy — [LogOrderByInput!]
Ordering settings (multiple fields supported). Default = null
{
"filters" : LogFilterInput ,
"pagination" : PaginationInput ,
"orderBy" : [ LogOrderByInput ]
}
Compares log counts recorded in transactions against logs actually stored in the database.
Fields Field name Description
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)
{
"sumOfLogCountersInTxs" : { } ,
"actualCountInDb" : { } ,
"isSynced" : false ,
"status" : "SYNCED" ,
"message" : "abc123"
}
{
"clientVersion" : "abc123" ,
"chainId" : "abc123" ,
"netVersion" : "abc123" ,
"netListening" : true ,
"netPeerCount" : "xyz789" ,
"ethSyncing" : { } ,
"ethMining" : true ,
"ethHashrate" : "abc123" ,
"ethProtocolVersion" : "abc123" ,
"ethBlockNumber" : "xyz789" ,
"ethGasPrice" : "abc123"
}
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 name Description
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)
{
"lastBlockNumber" : "abc123" ,
"lastBlockHash" : "abc123" ,
"blockTimestamp" : 123 ,
"networkId" : "abc123" ,
"chainId" : 987 ,
"lastQueryTime" : "2007-12-03T10:15:30Z"
}
Pagination info for page-number-based navigation.
Fields Field name Description
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
{
"hasNextPage" : true ,
"hasPreviousPage" : true ,
"totalCount" : { } ,
"currentPage" : 123 ,
"totalPages" : 123
}
Decoded Uniswap V2 swap: tokenIn and tokenOut with addresses, decimals, and formatted amounts
Fields Field name Description
tokenIn — SwapTokenInfo!
Token that was sent into the pair (sold)
tokenOut — SwapTokenInfo!
Token that was received from the pair (bought)
{
"tokenIn" : SwapTokenInfo ,
"tokenOut" : SwapTokenInfo
}
Decoded token amount with raw hex, integer string, and human-readable formatted value
Fields Field name Description
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)
{
"tokenAddress" : "abc123" ,
"decimals" : 123 ,
"amount" : "abc123" ,
"amountRaw" : "xyz789" ,
"amountFormatted" : "abc123"
}
Transaction signature components (ECDSA r, s, v)
Fields Field name Description
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)
{
"r" : "abc123" ,
"s" : "xyz789" ,
"v" : "abc123"
}
Sort direction
Values Enum Value Description
ASC
DESC
Stake amount in multiple representations: hex, integer string, and human-readable decimal
Fields Field name Description
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')
{
"hex" : "xyz789" ,
"wei" : "xyz789" ,
"decimals" : 123 ,
"decimal" : "xyz789"
}
Fields Field name Description
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"
{
"address" : "abc123" ,
"position" : "abc123" ,
"blockIdentifier" : "abc123"
}
Fields Field name Description
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.
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.
Filter for string fields
Fields Field name Description
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
{
"eq" : "xyz789" ,
"ne" : "abc123" ,
"contains" : "xyz789" ,
"notContains" : "xyz789" ,
"startsWith" : "abc123" ,
"endsWith" : "xyz789" ,
"regex" : "xyz789" ,
"notRegex" : "xyz789" ,
"in" : [ "xyz789" ] ,
"notIn" : [ "xyz789" ] ,
"isNull" : false
}
A blockchain network this API can query (e.g. Ethereum, Base, Polygon).
Fields Field name Description
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.
{
"chainId" : 123 ,
"chainIdHex" : "xyz789" ,
"chainName" : "xyz789" ,
"nativeCurrencySymbol" : "abc123" ,
"nativeCurrencyDecimals" : 123 ,
"dataMode" : "FULL_HISTORY"
}
Decoded token side of a swap — address, amounts, and decimals for one direction
Fields Field name Description
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)
{
"side" : "xyz789" ,
"address" : "xyz789" ,
"amount" : "abc123" ,
"amountRaw" : "xyz789" ,
"decimals" : 123 ,
"amountFormatted" : "abc123"
}
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 Value Description
SYNCED
PARTIALLY_SYNCED
DESYNCHRONIZED
OUT_OF_SYNC
ERROR
A transaction on the blockchain (works the same way across all supported chains).
Fields Field name Description
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)
{
"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 name Description
items — [Transaction!]!
List of transactions in this page
pageInfo — PageInfo!
Pagination information
{
"items" : [ Transaction ] ,
"pageInfo" : PageInfo
}
Object TransactionCountResult
Fields Field name Description
hex — String!
Transaction count (hex string) (db)
count — String!
Transaction count (decimal string) (db)
{
"hex" : "xyz789" ,
"count" : "abc123"
}
Input TransactionFilterInput
Filter conditions for querying transactions, combinable with AND/OR/NOT logic.
Fields Field name Description
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
{
"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
}
A single transaction to broadcast (batch leaf). Provide either raw (a pre-signed hex string) OR txData + signature — not both.
Fields Field name Description
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
{
"raw" : "xyz789" ,
"txData" : BuildTransactionInput ,
"signature" : SignatureInput
}
A node in a batch-transaction tree. Specify exactly one of item, seq or par.
Fields Field name Description
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
{
"item" : TransactionLeaf ,
"seq" : [ TransactionNode ] ,
"par" : [ TransactionNode ]
}
Input TransactionOrderByInput
Transaction ordering parameters
{ "field" : "BLOCK_NUMBER" , "direction" : "ASC" }
Enum TransactionOrderField
Transaction fields available for ordering
Values Enum Value Description
BLOCK_NUMBER
TX_INDEX
HASH
FROM_ADDRESS
TO_ADDRESS
VALUE_WEI
GAS
GAS_PRICE
GAS_USED
NONCE
Input TransactionQueryInput
Input for querying transactions with filters
{
"filters" : TransactionFilterInput ,
"pagination" : PaginationInput ,
"orderBy" : [ TransactionOrderByInput ]
}
Result of a single transaction in a batch.
Fields Field name Description
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.
{
"hash" : "xyz789" ,
"success" : false ,
"error" : "abc123"
}
Object TransactionSyncStatus
Compares transaction counts recorded in blocks against transactions actually stored in the database.
Fields Field name Description
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)
{
"sumOfTxCountersInBlocks" : { } ,
"actualCountInDb" : { } ,
"isSynced" : false ,
"status" : "SYNCED" ,
"message" : "abc123"
}