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
Native coin balance (ETH/COTI) for a wallet. Calculated from on-chain transactions, internal transfers, mining rewards and withdrawals (db)
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" : 123 , "balance" : BalanceResult }
}
}
Query blocks with filtering, pagination, and ordering (db)
query blocks($queryInput : BlockQueryInput) {
blocks(queryInput: $queryInput ) {
items {
...BlockFragment
}
pageInfo {
...PageInfoFragment
}
}
}
Response {
"data" : {
"blocks" : {
"items" : [ Block ] ,
"pageInfo" : PageInfo
}
}
}
Get DB synchronization status with node (db, rpc)
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
Query DelegateStakeChanged events with filtering, pagination, and ordering (db). Topic0: 0x52db726bc1b1643b24886ed6f0194a41de9abac79d1c12108aca494e5b2bda6b
query delegateStakeChangedEvents($input : DelegateStakeChangedQueryInput) {
delegateStakeChangedEvents(input: $input ) {
items {
...DelegateStakeChangedEventFragment
}
pageInfo {
...PageInfoFragment
}
}
}
Response {
"data" : {
"delegateStakeChangedEvents" : {
"items" : [ DelegateStakeChangedEvent ] ,
"pageInfo" : PageInfo
}
}
}
Query Delegated events with filtering, pagination, and ordering (db). Topic0: 0x4bc154dd35d6a5cb9206482ecb473cdbf2473006d6bce728b9cc0741bcc59ea2
query delegatedEvents($input : DelegatedQueryInput) {
delegatedEvents(input: $input ) {
items {
...DelegatedEventFragment
}
pageInfo {
...PageInfoFragment
}
}
}
Response {
"data" : {
"delegatedEvents" : {
"items" : [ DelegatedEvent ] ,
"pageInfo" : PageInfo
}
}
}
ERC-20 token by contract address. Provides token balance, total supply and holder list. Balances calculated from Transfer event logs (db, rpc)
Arguments Name Description
tokenAddressString!
query erc20Token($tokenAddress : String! ) {
erc20Token(tokenAddress: $tokenAddress ) {
tokenAddress
erc20TotalSupply {
...BalanceResponseFragment
}
erc20BalanceOf {
...BalanceResponseFragment
}
erc20Holders {
...ERC20TokenHolderFragment
}
}
}
Variables { "tokenAddress" : "xyz789" }
Response {
"data" : {
"erc20Token" : {
"tokenAddress" : "abc123" ,
"erc20TotalSupply" : BalanceResponse ,
"erc20BalanceOf" : BalanceResponse ,
"erc20Holders" : [ ERC20TokenHolder ]
}
}
}
Query ERC-20 Approval events with filtering, pagination, and ordering (db)
query erc20TokenApprovals($input : ERC20TokenApprovalQueryInput) {
erc20TokenApprovals(input: $input ) {
items {
...ERC20TokenApprovalFragment
}
pageInfo {
...PageInfoFragment
}
}
}
Response {
"data" : {
"erc20TokenApprovals" : {
"items" : [ ERC20TokenApproval ] ,
"pageInfo" : PageInfo
}
}
}
Query erc20TokenSwapEvents
Query Uniswap V2 Swap events with filtering, pagination, and ordering (db)
query erc20TokenSwapEvents($input : ERC20TokenSwapEventQueryInput) {
erc20TokenSwapEvents(input: $input ) {
items {
...ERC20TokenSwapEventFragment
}
pageInfo {
...PageInfoFragment
}
}
}
Response {
"data" : {
"erc20TokenSwapEvents" : {
"items" : [ ERC20TokenSwapEvent ] ,
"pageInfo" : PageInfo
}
}
}
Query ERC-20 Transfer events with filtering, pagination, and ordering (db)
query erc20TokenTransfers($input : ERC20TokenTransferQueryInput) {
erc20TokenTransfers(input: $input ) {
items {
...ERC20TokenTransferFragment
}
pageInfo {
...PageInfoFragment
}
}
}
Response {
"data" : {
"erc20TokenTransfers" : {
"items" : [ ERC20TokenTransfer ] ,
"pageInfo" : PageInfo
}
}
}
Query ERC-721 NFT Transfer events with filtering, pagination, and ordering (db)
query erc721Transfers($input : ERC721TransferQueryInput) {
erc721Transfers(input: $input ) {
items {
...ERC721TransferFragment
}
pageInfo {
...PageInfoFragment
}
}
}
Response {
"data" : {
"erc721Transfers" : {
"items" : [ ERC721Transfer ] ,
"pageInfo" : PageInfo
}
}
}
Estimate gas required for a transaction without executing it (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" : "abc123" ,
"gasDecimal" : 987
}
}
}
Execute a call transaction without creating a transaction on chain (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 at a given contract address. Equivalent to eth_getCode RPC method. Returns '0x' for non-contract addresses. (db)
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" : "abc123" ,
"blockNumber" : null ,
"chainId" : null
}
Response { "data" : { "ethGetCode" : "xyz789" } }
Query ethGetTransactionCount
Get the number of transactions sent from an address (nonce) (db)
query ethGetTransactionCount($input : GetTransactionCountInput! ) {
ethGetTransactionCount(input: $input ) {
hex
count
}
}
Variables { "input" : GetTransactionCountInput }
Response {
"data" : {
"ethGetTransactionCount" : {
"hex" : "xyz789" ,
"count" : "xyz789"
}
}
}
Ethereum sync status (rpc)
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" : { } } }
Get contract storage value at a specific position (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" : "abc123" }
}
}
Query logs with filtering, pagination, and ordering (db)
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" : "xyz789" ,
"netVersion" : "abc123" ,
"netListening" : false ,
"netPeerCount" : "abc123" ,
"ethSyncing" : { } ,
"ethMining" : true ,
"ethHashrate" : "abc123" ,
"ethProtocolVersion" : "xyz789" ,
"ethBlockNumber" : "abc123" ,
"ethGasPrice" : "abc123"
}
}
}
Query transactions with filtering, pagination, and ordering (db)
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" : 987.65 , "jsonrpcRatio" : 987.65 } } }
Keccak-256 hash of the given message (local)
query web3Sha3($message : String! ) {
web3Sha3(message: $message )
}
Response { "data" : { "web3Sha3" : "xyz789" } }
Mutation sendRawTransaction
Send a signed transaction to the blockchain (rpc)
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" : "abc123" ,
"chain" : null ,
"chainId" : null
}
Response { "data" : { "sendRawTransaction" : "abc123" } }
Build and send a signed transaction to the blockchain (rpc)
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" } }
Build, sign and broadcast many transactions in a single call. 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" : "xyz789" ,
"success" : false ,
"error" : "xyz789"
}
]
}
}
Build a signed raw transaction without broadcasting (local)
mutation signTransaction(
$txData : BuildTransactionInput! ,
$signature : SignatureInput!
) {
signTransaction(
txData: $txData ,
signature: $signature
)
}
Variables {
"txData" : BuildTransactionInput ,
"signature" : SignatureInput
}
Response { "data" : { "signTransaction" : "xyz789" } }
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" : "abc123" ,
"gasUsed" : "xyz789" ,
"gasLimit" : "xyz789" ,
"baseFee" : "xyz789" ,
"difficulty" : "xyz789" ,
"totalDifficulty" : "xyz789" ,
"size" : "abc123" ,
"txCount" : "xyz789" ,
"stateRoot" : "xyz789" ,
"txRoot" : "xyz789" ,
"receiptRoot" : "abc123" ,
"nonce" : "xyz789" ,
"mixDigest" : "xyz789" ,
"uncleHash" : "xyz789" ,
"uncles" : [ "xyz789" ] ,
"uncleCount" : "xyz789" ,
"withdrawalsHash" : "xyz789" ,
"withdrawalCount" : "abc123" ,
"blobGasUsed" : "xyz789" ,
"excessBlobGas" : "abc123" ,
"logsBloom" : "xyz789" ,
"extraData" : "xyz789" ,
"parentBeaconRoot" : "xyz789" ,
"requestsHash" : "xyz789" ,
"chainId" : "xyz789" ,
"finalized" : true ,
"transactions" : [ Transaction ]
}
}
}
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" : "abc123" ,
"logIndex" : "xyz789" ,
"txHash" : "abc123" ,
"blockHash" : "abc123" ,
"address" : "xyz789" ,
"topic0" : "abc123" ,
"topic1" : "xyz789" ,
"topic2" : "xyz789" ,
"topic3" : "xyz789" ,
"data" : "xyz789" ,
"removed" : false ,
"chainId" : "xyz789" ,
"topics" : [ "xyz789" ] ,
"block" : Block ,
"transaction" : EmbeddedTransaction
}
}
}
Subscription newPendingTransactions
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" : "xyz789" ,
"fromAddress" : "abc123" ,
"toAddress" : "abc123" ,
"valueWei" : "xyz789" ,
"gas" : "xyz789" ,
"gasPrice" : "xyz789" ,
"gasUsed" : "abc123" ,
"nonce" : "xyz789" ,
"txType" : "abc123" ,
"maxFeePerGas" : "xyz789" ,
"maxPriorityFeePerGas" : "abc123" ,
"input" : "xyz789" ,
"v" : "xyz789" ,
"r" : "xyz789" ,
"s" : "abc123" ,
"size" : "xyz789" ,
"success" : "xyz789" ,
"logsCount" : "abc123" ,
"chainId" : "abc123" ,
"block" : Block ,
"logs" : [ EmbeddedLog ] ,
"internalTransactions" : [ InternalTransaction ]
}
}
}
Subscription newTransactions
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" : "xyz789" ,
"hash" : "abc123" ,
"fromAddress" : "xyz789" ,
"toAddress" : "abc123" ,
"valueWei" : "abc123" ,
"gas" : "abc123" ,
"gasPrice" : "xyz789" ,
"gasUsed" : "abc123" ,
"nonce" : "abc123" ,
"txType" : "abc123" ,
"maxFeePerGas" : "xyz789" ,
"maxPriorityFeePerGas" : "xyz789" ,
"input" : "abc123" ,
"v" : "xyz789" ,
"r" : "abc123" ,
"s" : "xyz789" ,
"size" : "xyz789" ,
"success" : "abc123" ,
"logsCount" : "xyz789" ,
"chainId" : "abc123" ,
"block" : Block ,
"logs" : [ EmbeddedLog ] ,
"internalTransactions" : [ InternalTransaction ]
}
}
}
Balance response with chain scope
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 }
Balance in multiple representations
Fields Field name Description
hex — String!
Balance as 0x-prefixed hex string (e.g. '0xde0b6b3a7640000')
wei — String!
Balance as decimal string in wei (e.g. '1000000000000000000')
decimals — Int!
Decimal places used for conversion (18 for native ETH/COTI, 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" : "abc123" ,
"wei" : "abc123" ,
"decimals" : 123 ,
"decimal" : "abc123"
}
Large integer that can exceed 32-bit range, serialized as string
Filter for large integer fields (UInt256)
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. Default = null
notIn — [String!]
Not in list of values. Default = null
isNull — Boolean
Is null check. Default = null
{
"eq" : "abc123" ,
"ne" : "xyz789" ,
"gt" : "abc123" ,
"gte" : "abc123" ,
"lt" : "xyz789" ,
"lte" : "abc123" ,
"in" : [ "xyz789" ] ,
"notIn" : [ "abc123" ] ,
"isNull" : true
}
Ethereum block
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!]!
Block transactions (db)
{
"number" : "abc123" ,
"hash" : "abc123" ,
"parentHash" : "xyz789" ,
"timestamp" : "abc123" ,
"miner" : "abc123" ,
"gasUsed" : "abc123" ,
"gasLimit" : "xyz789" ,
"baseFee" : "abc123" ,
"difficulty" : "xyz789" ,
"totalDifficulty" : "abc123" ,
"size" : "abc123" ,
"txCount" : "abc123" ,
"stateRoot" : "abc123" ,
"txRoot" : "abc123" ,
"receiptRoot" : "xyz789" ,
"nonce" : "abc123" ,
"mixDigest" : "abc123" ,
"uncleHash" : "abc123" ,
"uncles" : [ "xyz789" ] ,
"uncleCount" : "abc123" ,
"withdrawalsHash" : "abc123" ,
"withdrawalCount" : "abc123" ,
"blobGasUsed" : "abc123" ,
"excessBlobGas" : "abc123" ,
"logsBloom" : "xyz789" ,
"extraData" : "abc123" ,
"parentBeaconRoot" : "abc123" ,
"requestsHash" : "abc123" ,
"chainId" : "abc123" ,
"finalized" : false ,
"transactions" : [ Transaction ]
}
Paginated block response
Fields Field name Description
items — [Block!]!
List of blocks in this page
pageInfo — PageInfo!
Pagination information
{
"items" : [ Block ] ,
"pageInfo" : PageInfo
}
Filter query_input for blocks with logical operators
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 finalization status (block.number <= 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"
}
Block sync status between DB and node
Fields Field name Description
nodeLastBlock — BigInt!
Last block from node (rpc)
dbMaxBlock — BigInt!
Max block number in DB (db)
dbActualCount — BigInt!
Actual block count in DB (db)
expected — BigInt!
Expected count (nodeLastBlock + 1) (rpc)
actual — BigInt!
Actual count (db)
isSynced — Boolean!
Whether blocks are synced (db, rpc)
status — SyncStatusEnum!
Sync status (db, rpc)
message — String
Status description (db, rpc)
{
"nodeLastBlock" : { } ,
"dbMaxBlock" : { } ,
"dbActualCount" : { } ,
"expected" : { } ,
"actual" : { } ,
"isSynced" : true ,
"status" : "SYNCED" ,
"message" : "abc123"
}
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" : true }
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" : "abc123" ,
"value" : "xyz789" ,
"gas" : "xyz789" ,
"nonce" : "xyz789" ,
"data" : "xyz789" ,
"chainId" : "xyz789" ,
"gasPrice" : "abc123" ,
"maxFeePerGas" : "abc123" ,
"maxPriorityFeePerGas" : "xyz789" ,
"type" : "xyz789"
}
Date with time (isoformat)
DB sync response with node metadata
Fields Field name Description
nodeMetadata — NodeMetadata!
Node metadata from RPC (rpc)
dbSyncStatus — DbSyncStatus!
DB sync status details (db, rpc)
{
"nodeMetadata" : NodeMetadata ,
"dbSyncStatus" : DbSyncStatus
}
Overall DB sync status
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 status (worst of three) (db, rpc)
syncPercentage — Float!
Sync percentage (0-100%) (db, rpc)
suggestedAction — String
Suggested action: NONE | RESET_AND_RESYNC | INVESTIGATE (db, rpc)
lastSyncCheck — DateTime!
Time of last sync check (db, rpc)
diagnosticMessage — String
Detailed diagnostic information (db, rpc)
{
"blocks" : BlockSyncStatus ,
"transactions" : TransactionSyncStatus ,
"logs" : LogSyncStatus ,
"overallStatus" : "SYNCED" ,
"syncPercentage" : 123.45 ,
"suggestedAction" : "abc123" ,
"lastSyncCheck" : "2007-12-03T10:15:30Z" ,
"diagnosticMessage" : "xyz789"
}
Object DelegateStakeChangedConnection
Connection type for paginated DelegateStakeChanged events
{
"items" : [ DelegateStakeChangedEvent ] ,
"pageInfo" : PageInfo
}
Object DelegateStakeChangedEvent
DelegateStakeChanged event — emitted when delegation stakes are updated in a PoS staking protocol. Topic0: 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!
Delegator address — indexed topic1 (db)
guardian — String!
Guardian address — indexed topic2 (db)
selfDelegatedStake — StakeAmount!
Delegate's own stake (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" : "abc123" ,
"selfDelegatedStake" : StakeAmount ,
"delegatedStake" : StakeAmount ,
"delegatorContributedStake" : StakeAmount ,
"blockNumber" : "xyz789" ,
"blockTimestamp" : "abc123" ,
"txHash" : "abc123" ,
"logIndex" : "xyz789" ,
"tokenAddress" : "abc123" ,
"chainId" : "xyz789" ,
"token" : ERC20Token ,
"delegatedEvents" : [ DelegatedEvent ]
}
Input DelegateStakeChangedFilterInput
Filter input for DelegateStakeChanged events
{
"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
Connection type for paginated Delegated events
{
"items" : [ DelegatedEvent ] ,
"pageInfo" : PageInfo
}
Delegated event — emitted when a delegator delegates to a guardian in a PoS staking protocol. Topic0: 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" : "xyz789" ,
"delegator" : "xyz789" ,
"guardian" : "abc123" ,
"blockNumber" : "xyz789" ,
"blockTimestamp" : "abc123" ,
"txHash" : "abc123" ,
"logIndex" : "xyz789" ,
"tokenAddress" : "abc123" ,
"chainId" : "xyz789" ,
"token" : ERC20Token
}
Input DelegatedFilterInput
Filter input for Delegated events
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 with AND logic. Default = null
or — [DelegatedFilterInput!]
Combine with OR logic. Default = null
not — DelegatedFilterInput
Negate 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 ]
}
ERC-20 token
Fields Field name Description
tokenAddress — String!
ERC-20 token smart contract address
{
"tokenAddress" : "xyz789" ,
"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" : "abc123" ,
"spender" : "xyz789" ,
"value" : "xyz789" ,
"blockNumber" : "xyz789" ,
"txHash" : "abc123" ,
"logIndex" : "abc123" ,
"chainId" : "xyz789" ,
"blockTimestamp" : "abc123" ,
"parsedApproval" : ParsedTokenAmount
}
Object ERC20TokenApprovalConnection
Connection type for paginated ERC-20 Approval events
{
"items" : [ ERC20TokenApproval ] ,
"pageInfo" : PageInfo
}
Input ERC20TokenApprovalFilterInput
Filter input for ERC-20 Token Approval events
{
"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 ]
}
ERC-20 token holder with balance
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" : "xyz789" ,
"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" : "abc123" ,
"sender" : "xyz789" ,
"to" : "xyz789" ,
"amount0In" : "abc123" ,
"amount1In" : "abc123" ,
"amount0Out" : "xyz789" ,
"amount1Out" : "xyz789" ,
"blockNumber" : "xyz789" ,
"txHash" : "xyz789" ,
"logIndex" : "xyz789" ,
"chainId" : "abc123" ,
"blockTimestamp" : "xyz789" ,
"parsedSwap" : ParsedSwap
}
Object ERC20TokenSwapEventConnection
Connection type for paginated Uniswap V2 Swap events
{
"items" : [ ERC20TokenSwapEvent ] ,
"pageInfo" : PageInfo
}
Input ERC20TokenSwapEventFilterInput
Filter input for Uniswap V2 Swap events
{
"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" : "xyz789" ,
"toAddress" : "abc123" ,
"value" : "xyz789" ,
"blockNumber" : "abc123" ,
"txHash" : "xyz789" ,
"logIndex" : "xyz789" ,
"chainId" : "abc123" ,
"blockTimestamp" : "abc123" ,
"parsedTransfer" : ParsedTokenAmount
}
Object ERC20TokenTransferConnection
Connection type for paginated ERC-20 Transfer events
{
"items" : [ ERC20TokenTransfer ] ,
"pageInfo" : PageInfo
}
Input ERC20TokenTransferFilterInput
Filter input for ERC-20 Token Transfer events
{
"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 ]
}
ERC-721 NFT Transfer event — emitted on every NFT 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!
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" : "abc123" ,
"toAddress" : "abc123" ,
"tokenId" : "abc123" ,
"blockNumber" : "xyz789" ,
"txHash" : "abc123" ,
"logIndex" : "abc123" ,
"chainId" : "abc123" ,
"blockTimestamp" : "xyz789"
}
Object ERC721TransferConnection
Connection type for paginated ERC-721 NFT Transfer events
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 input for ERC-721 NFT Transfer events
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" : 987.65 , "jsonrpcRatio" : 123.45 }
Transaction log entry (embedded — no back-reference to transaction)
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!
Event signature — keccak256 of event ABI, 0x-prefixed 32-byte hex (db)
topic1 — String!
First indexed parameter, 0x-prefixed 32-byte hex; addresses are left-padded with zeros (db)
topic2 — String!
Second indexed parameter, 0x-prefixed 32-byte hex (db)
topic3 — String!
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!]
Log topics assembled from topic0-3 (event signature and indexed params)
{
"blockNumber" : "xyz789" ,
"txIndex" : "abc123" ,
"logIndex" : "abc123" ,
"txHash" : "xyz789" ,
"blockHash" : "abc123" ,
"address" : "abc123" ,
"topic0" : "abc123" ,
"topic1" : "xyz789" ,
"topic2" : "xyz789" ,
"topic3" : "xyz789" ,
"data" : "abc123" ,
"removed" : false ,
"chainId" : "abc123" ,
"topics" : [ "xyz789" ]
}
Object EmbeddedTransaction
Ethereum transaction (embedded — no back-reference to logs)
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" : "xyz789" ,
"txIndex" : "xyz789" ,
"hash" : "xyz789" ,
"fromAddress" : "abc123" ,
"toAddress" : "xyz789" ,
"valueWei" : "xyz789" ,
"gas" : "xyz789" ,
"gasPrice" : "xyz789" ,
"gasUsed" : "abc123" ,
"nonce" : "abc123" ,
"txType" : "xyz789" ,
"maxFeePerGas" : "abc123" ,
"maxPriorityFeePerGas" : "xyz789" ,
"input" : "xyz789" ,
"v" : "xyz789" ,
"r" : "xyz789" ,
"s" : "abc123" ,
"size" : "abc123" ,
"success" : "xyz789" ,
"logsCount" : "xyz789" ,
"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
Gas limit (hex with 0x prefix, optional). Default = null
gasPrice — String
Gas price in wei (hex with 0x prefix, optional, legacy). Default = null
maxFeePerGas — String
Max fee per gas (hex with 0x prefix, EIP-1559). Default = null
maxPriorityFeePerGas — String
Max priority fee per gas (hex with 0x prefix, EIP-1559). Default = null
value — String
Value to send in wei (hex with 0x prefix, optional). Default = null
data — String
Transaction data (hex with 0x prefix, required for contract calls). Default = null
blockIdentifier — String
Optional block number (hex) or tag ("latest", "earliest", "pending"). Default = null
{
"to" : "xyz789" ,
"fromAddress" : "abc123" ,
"gas" : "abc123" ,
"gasPrice" : "abc123" ,
"maxFeePerGas" : "abc123" ,
"maxPriorityFeePerGas" : "abc123" ,
"value" : "abc123" ,
"data" : "abc123" ,
"blockIdentifier" : "abc123"
}
Fields Field name Description
gas — String!
Estimated gas amount (hex string) (rpc)
gasDecimal — Int!
Estimated gas amount (decimal) (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
Gas limit (hex with 0x prefix, optional). Default = null
gasPrice — String
Gas price in wei (hex with 0x prefix, optional, legacy). Default = null
maxFeePerGas — String
Max fee per gas (hex with 0x prefix, EIP-1559). Default = null
maxPriorityFeePerGas — String
Max priority fee per gas (hex with 0x prefix, EIP-1559). Default = null
value — String
Value to send in wei (hex with 0x prefix, optional). Default = null
data — String
Transaction data (hex with 0x prefix, required for contract calls). Default = null
blockIdentifier — String!
Block number (hex) or tag ("latest", "earliest", "pending"). Default = "latest"
{
"to" : "abc123" ,
"fromAddress" : "abc123" ,
"gas" : "abc123" ,
"gasPrice" : "xyz789" ,
"maxFeePerGas" : "xyz789" ,
"maxPriorityFeePerGas" : "abc123" ,
"value" : "xyz789" ,
"data" : "xyz789" ,
"blockIdentifier" : "xyz789"
}
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. Default = null
{
"address" : "xyz789" ,
"blockIdentifier" : "abc123" ,
"chainId" : 987
}
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. Default = null
notIn — [Int!]
Not in list of values. Default = null
between — [Int!]
Between two values [min, max]. Default = null
isNull — Boolean
Is null check. Default = null
{
"eq" : 123 ,
"ne" : 987 ,
"gt" : 123 ,
"gte" : 123 ,
"lt" : 987 ,
"lte" : 987 ,
"in" : [ 123 ] ,
"notIn" : [ 123 ] ,
"between" : [ 123 ] ,
"isNull" : false
}
Object InternalTransaction
Internal transaction (trace)
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
Call type: 'call', 'delegatecall', 'staticcall', 'create', 'create2' (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
Parent transaction of this trace (db)
{
"blockNumber" : "abc123" ,
"txHash" : "xyz789" ,
"txIndex" : "abc123" ,
"traceIndex" : "xyz789" ,
"subtraces" : "xyz789" ,
"traceAddress" : "abc123" ,
"fromAddress" : "xyz789" ,
"toAddress" : "xyz789" ,
"valueWei" : "abc123" ,
"callType" : "xyz789" ,
"gas" : "abc123" ,
"gasUsed" : "xyz789" ,
"input" : "abc123" ,
"output" : "xyz789" ,
"error" : "abc123" ,
"success" : "xyz789" ,
"chainId" : "xyz789" ,
"block" : Block ,
"transaction" : Transaction
}
The JSON scalar type represents JSON values as specified by ECMA-404 .
Transaction log entry
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!
Event signature — keccak256 of event ABI, 0x-prefixed 32-byte hex (db)
topic1 — String!
First indexed parameter, 0x-prefixed 32-byte hex; addresses are left-padded with zeros (db)
topic2 — String!
Second indexed parameter, 0x-prefixed 32-byte hex (db)
topic3 — String!
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!]
Log topics assembled from topic0-3 (event signature and indexed params)
block — Block
Block that contains this log (db)
transaction — EmbeddedTransaction
Transaction that emitted this log — no back-reference to logs (db)
{
"blockNumber" : "xyz789" ,
"txIndex" : "xyz789" ,
"logIndex" : "abc123" ,
"txHash" : "xyz789" ,
"blockHash" : "xyz789" ,
"address" : "abc123" ,
"topic0" : "xyz789" ,
"topic1" : "abc123" ,
"topic2" : "abc123" ,
"topic3" : "xyz789" ,
"data" : "abc123" ,
"removed" : true ,
"chainId" : "xyz789" ,
"topics" : [ "abc123" ] ,
"block" : Block ,
"transaction" : EmbeddedTransaction
}
Paginated log response
Fields Field name Description
items — [Log!]!
List of logs in this page
pageInfo — PageInfo!
Pagination information
{
"items" : [ Log ] ,
"pageInfo" : PageInfo
}
Filter input for logs with logical operators
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 (event signature). Default = null
topic1 — StringFilter
Filter by topic1 (1st indexed param). Default = null
topic2 — StringFilter
Filter by topic2 (2nd indexed param). Default = null
topic3 — StringFilter
Filter by topic3 (3rd indexed param). 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 ]
}
Log sync status between DB and transactions
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" : "xyz789" ,
"chainId" : "xyz789" ,
"netVersion" : "xyz789" ,
"netListening" : false ,
"netPeerCount" : "xyz789" ,
"ethSyncing" : { } ,
"ethMining" : false ,
"ethHashrate" : "xyz789" ,
"ethProtocolVersion" : "abc123" ,
"ethBlockNumber" : "abc123" ,
"ethGasPrice" : "xyz789"
}
Node metadata from RPC
Fields Field name Description
lastBlockNumber — String!
Last block number (HEX for EVM) (rpc)
lastBlockHash — String!
Last block hash (rpc)
blockTimestamp — Int!
Unix timestamp of the last block (rpc)
networkId — String!
Network ID (rpc)
chainId — Int!
Chain ID (rpc)
lastQueryTime — DateTime!
Time when data was fetched (rpc)
{
"lastBlockNumber" : "xyz789" ,
"lastBlockHash" : "abc123" ,
"blockTimestamp" : 987 ,
"networkId" : "xyz789" ,
"chainId" : 123 ,
"lastQueryTime" : "2007-12-03T10:15:30Z"
}
Pagination info for cursor-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" : false ,
"totalCount" : { } ,
"currentPage" : 123 ,
"totalPages" : 987
}
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" : "xyz789" ,
"decimals" : 987 ,
"amount" : "xyz789" ,
"amountRaw" : "xyz789" ,
"amountFormatted" : "xyz789"
}
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" : "xyz789"
}
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" : "abc123" ,
"wei" : "abc123" ,
"decimals" : 987 ,
"decimal" : "abc123"
}
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" : "xyz789" ,
"blockIdentifier" : "xyz789"
}
Fields Field name Description
value — String!
Storage value at the given position (32 bytes hex string) (rpc)
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 regular expression pattern (re2 syntax). Default = null
notRegex — String
Does not match regular expression pattern. Default = null
in — [String!]
In list of values. Default = null
notIn — [String!]
Not in list of values. Default = null
isNull — Boolean
Is null check. Default = null
{
"eq" : "xyz789" ,
"ne" : "abc123" ,
"contains" : "abc123" ,
"notContains" : "xyz789" ,
"startsWith" : "abc123" ,
"endsWith" : "abc123" ,
"regex" : "xyz789" ,
"notRegex" : "abc123" ,
"in" : [ "xyz789" ] ,
"notIn" : [ "abc123" ] ,
"isNull" : true
}
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" : "abc123" ,
"amount" : "abc123" ,
"amountRaw" : "abc123" ,
"decimals" : 987 ,
"amountFormatted" : "abc123"
}
Values Enum Value Description
SYNCED
PARTIALLY_SYNCED
DESYNCHRONIZED
OUT_OF_SYNC
ERROR
Ethereum transaction
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!]!
Transaction logs (events) — no back-reference to transaction (db)
internalTransactions — [InternalTransaction!]!
Internal transactions (traces) (db)
{
"blockNumber" : "abc123" ,
"txIndex" : "abc123" ,
"hash" : "xyz789" ,
"fromAddress" : "xyz789" ,
"toAddress" : "xyz789" ,
"valueWei" : "xyz789" ,
"gas" : "abc123" ,
"gasPrice" : "xyz789" ,
"gasUsed" : "xyz789" ,
"nonce" : "xyz789" ,
"txType" : "xyz789" ,
"maxFeePerGas" : "xyz789" ,
"maxPriorityFeePerGas" : "abc123" ,
"input" : "abc123" ,
"v" : "abc123" ,
"r" : "xyz789" ,
"s" : "abc123" ,
"size" : "xyz789" ,
"success" : "xyz789" ,
"logsCount" : "abc123" ,
"chainId" : "abc123" ,
"block" : Block ,
"logs" : [ EmbeddedLog ] ,
"internalTransactions" : [ InternalTransaction ]
}
Object TransactionConnection
Paginated transaction response
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" : "xyz789"
}
Input TransactionFilterInput
Filter query_input for transactions with logical operators
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" : "abc123" ,
"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" : "abc123" ,
"success" : false ,
"error" : "abc123"
}
Object TransactionSyncStatus
Transaction sync status between DB and blocks
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"
}