Skip to content
TraceFast Docs

EIP-7702 authorizations of one block

Open this block in TraceFast →

Every EIP-7702 authorization-list entry carried by the transactions of one block: the contract an account delegates its code to, the account that signed it, the chain id and nonce the authorization was signed for, the signature, and the hash and position of the transaction that carried it — in transaction order and then list order. An authorization is an account's signed permission for its code to be set to a delegation to a contract; it travels in a type-4 transaction. See EIP-7702 and transactions on ethereum.org.

GET https://tracefast.xyz/api/v1/chains/1/blocks/{number}/authorizations
ParameterInTypeNotes
numberpathintegerblock height, 0 or more
limitqueryinteger, optional1..100, default 25
cursorquerystring, optionalnextCursor 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_authorizations 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

  • The authorizations as signed, not their effect. An entry is listed whether or not it took effect — the protocol skips an authorization whose nonce or chain id does not match. Whether an account is delegated now is an attribute of the address: see attributes of an address and relations of an address.
  • The signer is recovered from the signature, and says so. authority is the account that signed — the account whose code is delegated — and is present only when authorityStatus is recovered. recovery_failed means the signature is not valid: the authorization has no signer and does not take effect. not_available means the signer is not determined yet — ask again later; it is not a statement that there is no signer.
  • A delegation to the zero address clears one. address = 0x0000000000000000000000000000000000000000 is an account resetting its delegation, per EIP-7702.
  • An empty list is a block with no type-4 transaction — every block before the Pectra upgrade, and most after it.
  • The history trails the chain head. Every answer names its reach in meta.coverage.authorizationsThroughBlock; an existing block above it is refused with 422 block_not_available and the same bound as maxAvailableBlock. A block above the chain head does not exist yet and answers 404 not_found. See data freshness.

Response

200 application/json, here for block 25925120 with ?limit=2:

{
  "data": {
    "blockNumber": 25925120,
    "authorizations": [
      {
        "txNumber": 3722531565,
        "txHash": "0x9ef423ce94bb8ac8f9ed1290145a71dfe1fed9f859e89bcc84955c4a2a1cbb73",
        "txIndex": 16,
        "authority": "0x4de23f3f0fb3318287378adbde030cf61714b2f3",
        "authorityStatus": "recovered",
        "index": 0,
        "chainId": 1,
        "address": "0x8a67b5020ee254ef48e3b6a04927f39baf7e408a",
        "nonce": 444064,
        "yParity": 1,
        "r": "0x66547eabe7805663c776eef9151f71860792e48e7f504ca10c7799e098b63fe5",
        "s": "0x66314b5f10b3933646cd8a171c11134b5f967aaf85694cde0ceef3ee7650e9c6"
      },
      {
        "txNumber": 3722531609,
        "txHash": "0x8be9c0f133d7840f50e3504f5cb18085511509257645573b6488406b608af9ae",
        "txIndex": 60,
        "authority": "0x966cd7e5a005d48f1386ad069e52000e075ffdcd",
        "authorityStatus": "recovered",
        "index": 0,
        "chainId": 1,
        "address": "0x2c6f01799fa9db1e7f2797e5ba892b72b865571d",
        "nonce": 35,
        "yParity": 1,
        "r": "0x90dc2ca0a945c97e49cfe057c73b262b3acd11a111e647e6c9f2b21d78662c45",
        "s": "0x27b0537961b1650fdf70809bbf0dbd2d4fa27ef3beef62005d1e52ba0e15575b"
      }
    ],
    "nextCursor": "AVsyNTkyNTEyMCwzNzIyNTMxNjA5LDBdAS4lzGWrTYIoJSik4KACzA"
  },
  "meta": {
    "chain": "ethereum",
    "timestamp": 1789067462135,
    "cached": false,
    "asOfBlock": 25925120,
    "docs": "https://docs.tracefast.xyz/api/block-authorizations",
    "coverage": {
      "authorizationsThroughBlock": 25925128
    }
  }
}

data

FieldMeaning
blockNumberthe block these authorizations belong to
authorizations[]this page, in transaction order and then list order. Empty when the block carries no type-4 transaction
nextCursorcursor for the next page. Absent on the last page

An authorization

FieldMeaning
txNumbersequence number of the transaction that carried the entry, counted across the whole chain. It orders the block's transactions; the position inside the block is txIndex
txHashhash of the transaction that carried the entry, lowercase
txIndexposition of that transaction inside the block, from 0
authoritythe account that signed the authorization — the account whose code is delegated — lowercase. Present only when authorityStatus is recovered
authorityStatuswhether the signer is known: recovered (authority names it), recovery_failed (the signature is not valid — no signer, and the authorization does not take effect) or not_available (not determined yet — not "no signer")
indexposition of the entry inside that transaction's authorization list, from 0
chainIdthe chain id the authorization was signed for; 0 means any chain
addressthe contract the account delegates its code to, lowercase
noncethe signing account's nonce at the time of signing
yParity, r, sthe signature: recovery bit, and the r / s components as 0x-hex

meta.coverage

KeyMeaning
authorizationsThroughBlockthe last block the authorization history has reached — the same bound a 422 names as maxAvailableBlock for a block above it. meta.asOfBlock stays the block you asked about

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 — restart from the first page. See pagination.

Errors

StatuscodeWhendetails
400bad_requestnumber is not a non-negative integerreason: block_number_invalid
400bad_requestlimit outside 1..100reason: limit_out_of_range, limit, maxLimit
400invalid_cursorthe cursor was not issued for this request—
404not_foundthe block is above the chain head — it does not exist yet—
422block_not_availablethe block exists but is past the history this method coversreason: block_not_available, maxAvailableBlock
422block_not_availablethe block sits in a coverage gap; it exists, ask again laterreason: coverage_gap, coverageGapFromBlock, coverageGapToBlock, maxAvailableBlock
503service_unavailablethe coverage boundary could not be read; retry with backoff—

Malformed input, unknown parameters and the key check's 401/403/429 are the same for every method — see conventions and API keys.


Last updated 22 Oct 2026, 08:06 UTC · verified against TraceFast v1.0.261 · Markdown