Transactions of one block
Open this block in TraceFast →
The transactions of one block, in their order within the block, each with
sender, recipient, value, gas, the fee fields of its type and the receipt's
outcome. Pages follow an opaque cursor; txCount is the block's whole count,
so you know how many pages to expect.
GET https://tracefast.xyz/api/v1/chains/1/blocks/{number}/transactions
| Parameter | In | Type | Notes |
|---|---|---|---|
number | path | integer | block height, 0 or more |
limit | query | integer, optional | 1..100, default 25 |
cursor | query | string, optional | nextCursor of the previous page, unchanged |
Access — an API key on the Enriched Data plan or higher (plans), or no key at all: pay per call with x402 at the same path on https://mpp.tracefast.xyz/api/v1, at the price its 402 states. As a tool for AI agents: get_block_transactions on the MCP server. Stable — see stability.
chains/1 is a literal: the method serves Ethereum mainnet data. Other chain
ids answer 404 chain_not_supported. There are no other parameters — an
unknown one is refused rather than ignored.
What it covers, and what it does not
- Top-level transactions only. Internal calls are in the execution trace; emitted events in event logs of a transaction.
- A block this API cannot see is refused, never answered empty. A height
past the newest block answers
404 not_found; a block inside a coverage gap answers422 block_not_availablewithreason: coverage_gap— the same verdict as one block. An empty list only ever means a block with no transactions.
Response
200 application/json, here with ?limit=2:
{
"data": {
"blockNumber": 25920000,
"txCount": 411,
"transactions": [
{
"chainId": 1,
"hash": "0xbde113f9fa6fc2b0355ba9067a56b58e9c1fc6621b908a3efe809ad7c2185059",
"blockNumber": 25920000,
"txIndex": 0,
"timestamp": 1788718079,
"from": "0xc917c3fa468f2c4b9c84c72caa46420eb9825249",
"to": "0x0000000aa232009084bd71a5797d089aa4edfad4",
"valueWei": "0",
"methodId": "0x1828e0e7",
"inputSize": 196,
"nonce": 108848,
"txType": 2,
"gasLimit": "100000",
"gasUsed": "34681",
"maxFeePerGas": "190356350",
"maxPriorityFeePerGas": "0",
"effectiveGasPrice": "92963002",
"status": 1,
"logCount": 0
},
{
"chainId": 1,
"hash": "0x9c0bce2399468e1ceeaa3f780237db2550a65804a84524017ea950f1d6a61b94",
"blockNumber": 25920000,
"txIndex": 1,
"timestamp": 1788718079,
"from": "0xf874e3f8fa13dd2fde9b7d0c9f4a7b9352afbc1e",
"to": "0x66a9893cc07d91d95644aedd05d03f95e1dba8af",
"valueWei": "0",
"methodId": "0x3593564c",
"inputSize": 1669,
"nonce": 2344,
"txType": 2,
"gasLimit": "500000",
"gasUsed": "222383",
"maxFeePerGas": "318718136",
"maxPriorityFeePerGas": "100000000",
"effectiveGasPrice": "192963002",
"status": 1,
"logCount": 4
}
],
"nextCursor": "AVsyNTkyMDAwMCwxXdYbYDmDIx058H5sxG39VoA"
},
"meta": {
"chain": "ethereum",
"timestamp": 1789063614466,
"cached": false,
"asOfBlock": 25920000,
"docs": "https://docs.tracefast.xyz/api/block-transactions"
}
}data
| Field | Meaning |
|---|---|
blockNumber | the block these transactions belong to |
txCount | how many transactions the block holds in total, not on this page |
transactions[] | this page, in transaction-index order |
nextCursor | cursor for the next page. Absent on the last page |
Each row has the same fields as one transaction —
sender, recipient, value, nonce, type, gas, the fee fields (gasPrice,
maxFeePerGas, maxPriorityFeePerGas, effectiveGasPrice, each absent where
the type does not carry it), status and logCount.
Pagination
Keyset pagination: pass nextCursor back as cursor, with the same number,
until the response carries no nextCursor. A cursor is valid only for this
method and this block; anything else answers 400 invalid_cursor, and the
recovery is to start again from the first page. See
pagination.
Errors
| Status | code | When | details |
|---|---|---|---|
| 400 | bad_request | number is not a non-negative integer | reason: block_number_invalid |
| 400 | bad_request | limit outside 1..100 | reason: limit_out_of_range, limit, maxLimit |
| 400 | invalid_cursor | the cursor was not issued for this request | — |
| 404 | not_found | no block at that height yet — past the newest block the API serves | — |
| 422 | block_not_available | the block exists on chain but sits in a coverage gap; ask again later | reason: coverage_gap, coverageGapFromBlock, coverageGapToBlock, maxAvailableBlock |
The 422 for a block inside a coverage gap reads, for example:
{
"error": {
"code": "block_not_available",
"details": {
"coverageGapFromBlock": 25925129,
"coverageGapToBlock": 25948372,
"maxAvailableBlock": 25925128,
"reason": "coverage_gap"
},
"message": "block 25930000 falls in a range that is temporarily unavailable (a coverage gap): blocks 25925129-25948372. They exist on chain; this is not a statement that they do not. Retry later, or ask about a block at or below 25925128.",
"requestId": "01a08c80-4d21-74c1-b528-2f39a262c99a"
}
}Malformed input, unknown parameters and the key check's 401/403/429 are the same for every method — see conventions and API keys.
Related pages
- One block — the block's header and totals
- One transaction — the same row, by hash
- Event logs of a transaction — what a transaction emitted
- Accounts touched by one block — whose state these transactions changed
- Blocks — the block page in the app
Last updated 22 Oct 2026, 08:06 UTC · verified against TraceFast v1.0.261 · Markdown