Skip to content
TraceFast Docs

Event logs of a transaction

Open this transaction in TraceFast →

The event logs a transaction emitted, in emission order: the emitting contract, topics and data, and — when the event signature is known — the decoded event name and arguments, with a stated confidence. Decoding covers the common token, DeFi and protocol events; an unknown signature comes back raw. New to events? See events and logs on ethereum.org.

GET https://tracefast.xyz/api/v1/chains/1/transactions/{hash}/events
ParameterInTypeNotes
hashpathstring0x-prefixed, 64 hex characters, any case
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_transaction_events 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

  • Every log is returned raw: topics and data are always there, decoded or not. Decoding is an addition, never a replacement.
  • A decoding is a claim with a confidence, stated in decodeStatus. Several events can share one signature hash; ambiguous means the best candidate was chosen out of candidateCount. The ERC-20 and ERC-721 Transfer events are the classic case: same hash, different meaning of the third topic.
  • The emitter is only an address. Any contract can emit an event called Transfer; the name says nothing about who emitted it.
  • Pages are bounded by size as well as count. A page holds at most limit logs and may hold fewer when their data is large; a log is never cut.

Response

200 application/json, here with ?limit=2. This transaction emitted two logs, so there is no nextCursor:

{
  "data": {
    "hash": "0x6bb3103eec4ca8f4a324bbab71dc84f533af7e6be11ab8b13d0d10333bb9abc5",
    "events": [
      {
        "address": "0x4cd00e387622c35bddb9b4c962c136462338bc31",
        "blockNumber": 25920000,
        "txIndex": 168,
        "logIndex": 497,
        "logIndexInTx": 0,
        "txHash": "0x6bb3103eec4ca8f4a324bbab71dc84f533af7e6be11ab8b13d0d10333bb9abc5",
        "timestamp": 1788718079,
        "topics": [
          "0x8032066556caf3967d8fec4ad22a2d9e1e9576556b2903a0fcd5b1fd201e3477"
        ],
        "data": "0x00000000000000000000000007d65f37f0b4e10070eb683e51ebce416eb5aa3a0000000000000000000000000000000000000000000000000000b5e620f48000f15bf2357626ca31ec762cf7294fbcaaa9822fc8181ab782af7e0bee88cc442a",
        "decoded": {
          "name": "RelayNativeDeposit",
          "args": [
            { "name": "from", "type": "address", "value": "0x07d65f37f0b4e10070eb683e51ebce416eb5aa3a", "indexed": false },
            { "name": "amount", "type": "uint256", "value": "200000000000000", "indexed": false },
            { "name": "id", "type": "bytes32", "value": "0xf15bf2357626ca31ec762cf7294fbcaaa9822fc8181ab782af7e0bee88cc442a", "indexed": false }
          ],
          "candidateCount": 1
        },
        "decodeStatus": "verified"
      },
      {
        "address": "0x69460570c93f9de5e2edbc3052bf10125f0ca22d",
        "blockNumber": 25920000,
        "txIndex": 168,
        "logIndex": 498,
        "logIndexInTx": 1,
        "txHash": "0x6bb3103eec4ca8f4a324bbab71dc84f533af7e6be11ab8b13d0d10333bb9abc5",
        "timestamp": 1788718079,
        "topics": [
          "0x012c155f3836c4edb9222305b909a109f9efa46288efffe40a0e66da3a9a9800",
          "0x0000000000000000000000000000000053fc9230e9444c29b879a4521d59140a",
          "0x0000000000000000000000000000000000000000000000000000000000000038",
          "0x000000000000000000000000000000000000000000000000000000000000032b"
        ],
        "data": "0x…",
        "decoded": {
          "name": "RangoBridgeInitiated",
          "args": [
            { "name": "requestId", "type": "address", "value": "0x0000000053fc9230e9444c29b879a4521d59140a", "indexed": true },
            { "name": "bridgeToken", "type": "address", "value": "0x0000000000000000000000000000000000000000", "indexed": false },
            { "name": "bridgeAmount", "type": "uint256", "value": "200000000000000", "indexed": false },
            { "name": "receiver", "type": "address", "value": "0x07d65f37f0b4e10070eb683e51ebce416eb5aa3a", "indexed": false },
            { "name": "destinationChainId", "type": "uint256", "value": "4663", "indexed": false },
            { "name": "hasInterchainMessage", "type": "bool", "value": false, "indexed": false },
            { "name": "hasDestinationSwap", "type": "bool", "value": false, "indexed": false },
            { "name": "bridgeId", "type": "uint8", "value": "56", "indexed": true },
            { "name": "dAppTag", "type": "uint16", "value": "811", "indexed": true },
            { "name": "dAppName", "type": "string", "value": "BinanceWeb3Wallet", "indexed": false }
          ],
          "candidateCount": 1
        },
        "decodeStatus": "verified"
      }
    ]
  },
  "meta": {
    "chain": "ethereum",
    "timestamp": 1789047732417,
    "cached": false,
    "asOfBlock": 25920000,
    "docs": "https://docs.tracefast.xyz/api/transaction-events"
  }
}

The second log's data (416 bytes) is shortened to 0x… here; the API returns it whole.

data

FieldMeaning
hashthe transaction, lowercase
events[]this page, in emission order
nextCursorcursor for the next page. Absent on the last page

An event log

FieldMeaning
addressthe contract that emitted the log
blockNumber, txIndexthe block and the transaction's index within it
logIndexthe log's index within the block
logIndexInTxthe log's index within the transaction — emission order, from 0
txHashthe transaction that emitted the log
timestampUnix time of the block, seconds
topics[]the log's topics in order; topics[0] is the event signature hash (absent for an anonymous event)
datathe log's non-indexed data, 0x-hex
decodeStatushow confident the decoding is — see below
decodedthe decoded event, when there is one: name, args[], candidateCount

decoded

FieldMeaning
nameevent name, for example Transfer
candidateCounthow many known signatures share this event's hash. 1 is unambiguous
args[].name, args[].typeargument name and Solidity type
args[].indexedtrue when the argument came from a topic
args[].valueaddresses as 0x strings, integers as decimal strings, bytes as 0x hex, booleans as booleans. An indexed dynamic argument (string, bytes, array) is only its hash on chain and comes back as { "hash": "0x…", "dynamic": true }

decodeStatus

ValueMeaning
verifiedone known signature, decoded
ambiguousseveral signatures share the hash; decoded is the best candidate
partialdecoded in part
inferredthe decoding is inferred, not matched to a known signature
abi_missingthe signature is unknown; the log is raw only
failedthe signature is known but the data did not decode

Pagination

Keyset pagination: pass nextCursor back as cursor, with the same hash, until the response carries no nextCursor. A page may hold fewer than limit logs while nextCursor is still present — keep going. A cursor is valid only for this method and this transaction; anything else answers 400 invalid_cursor. See pagination.

Errors

StatuscodeWhendetails
400bad_requestthe hash is not 0x plus 64 hex charactersreason: tx_hash_invalid
400bad_requestlimit outside 1..100reason: limit_out_of_range, limit, maxLimit
400invalid_cursorthe cursor was not issued for this request—
404not_foundno transaction with this hash is known—
422block_not_availablethe hash is unknown while recent blocks are in a coverage gap; ask again laterreason: coverage_gap, coverageGapFromBlock, coverageGapToBlock, maxAvailableBlock

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