Queries
I got fewer rows than I expected
I got fewer rows than I expected
- Check
to_blockin the response: near the head, or for ranges over 50,000 blocks, the response covers less than you asked for. Continue fromnext_block. - Check your topic filters: an address in a topic must be padded to 32 bytes.
- Check
address: events are emitted by the contract that runs the code. For a proxy, that’s the proxy’s address. - ERC-20
Transferand ERC-721Transfershare atopic0; check which you want.
I asked for maxObjects: 1000 and got 3,000 rows
I asked for maxObjects: 1000 and got 3,000 rows
maxObjects, so a busy block can push it well past.The response is empty, but I know there's data
The response is empty, but I know there's data
- Is
fromBlockpast the head? Thento_blockis lower thanfrom_block, andnext_blockequals yourfromBlock. Wait for the chain to get there. - Is it the right chain?
https://api.bloklake.com/v1/chains/eth/…vs…/rh/…. - Hex values are case-insensitive, so case isn’t the problem.
A column is all null
A column is all null
unavailable_fields: the chain might not have that field (for example withdrawals on
Robinhood Chain). Otherwise the field doesn’t apply to those rows (baseFeePerGas before
London, to on contract creations).404 on api.bloklake.com/query
404 on api.bloklake.com/query
https://api.bloklake.com/v1/chains/eth/query, or use
https://eth.api.bloklake.com/query.400 invalid_query: no fields selected for logs
400 invalid_query: no fields selected for logs
fields.log. Select at least one log field.400 unknown_query_id
400 unknown_query_id
Data I read near the head changed
Data I read near the head changed
finalized_block are final. See
Finality and reorgs.Can I filter by value, gas, or a function argument?
Can I filter by value, gas, or a function argument?
address/topic0–topic3 (logs) and from/to/sighash/status
(transactions) are indexed. Filter as narrowly as those allow, then filter the rest in your
code.Can I get internal transactions, traces, balances or contract state?
Can I get internal transactions, traces, balances or contract state?
Reading responses
My Arrow reader only sees the first row type
My Arrow reader only sees the first row type
Block numbers are bigint in JavaScript
Block numbers are bigint in JavaScript
UInt64 as bigint. Use Number(x) for block numbers and timestamps.How do I turn a 16-byte value into a number?
How do I turn a 16-byte value into a number?
int.from_bytes(b, "big") in Python,
BigInt("0x" + hex) in JavaScript. See Data types.My client sometimes gets cut off
My client sometimes gets cut off
Keys and billing
401 missing_api_key
401 missing_api_key
Authorization: Bearer <key>. Keys in the URL aren’t accepted.I lost my key
I lost my key
402 balance_exhausted
402 balance_exhausted
402 overage_limit_reached
402 overage_limit_reached
429 rate_limited, though I send one request at a time
429 rate_limited, though I send one request at a time
Why was I billed for an error?
Why was I billed for an error?
400, 404 unknown_set) are billed the 10 KB minimum, like any
other processed request. Server errors, rate-limited and refused requests are free. See
How billing works.Can I call the API from a web page?
Can I call the API from a web page?
Still stuck?
Email [email protected] with the request body, the response status and body, and theX-Request-Id.