Skip to content
TraceFast Docs

Attribute history of an address

Open this address in TraceFast →

Every attribute interval an address has held, oldest first: when it first held state, when it became a contract, when its code was removed, when it was delegated. Each interval carries the block window it held for.

GET https://tracefast.xyz/api/v1/chains/1/entities/{address}/attributes/history
ParameterInTypeNotes
addresspathstring0x-prefixed, 40 hex characters, any case
limitqueryinteger, optional1..500, default 100

Access — an API key on the Intelligence 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_entity_attribute_history on the MCP server. Stable — see stability.

chains/1 is a literal: other chain ids answer 404 chain_not_supported. An unknown parameter is refused rather than ignored.

What it covers, and what it does not

  • Only the families in coveredFamilies. An empty or short timeline says nothing about attributes of other families. For the full current set, ask the current attributes.
  • One call, no cursor. A whole timeline is a few hundred intervals on the busiest addresses, so the method returns it in one answer up to limit. truncated: true says the cap cut it — what you got is a prefix of the history, not all of it. Ask again with a higher limit.
  • Absence means "not proven", never "false".

Response

200 application/json, here with ?limit=3:

{
  "data": {
    "chainId": 1,
    "address": "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97",
    "intervals": [
      { "attributeId": "address_nature:account_state_ever_touched", "startBlock": 16976894 },
      { "attributeId": "address_nature:eoa_currently", "startBlock": 16976894, "endBlock": 25251272 },
      { "attributeId": "address_nature:has_onchain_existence", "startBlock": 16976894 }
    ],
    "coveredFamilies": ["address_nature", "address_presence"],
    "truncated": true
  },
  "meta": {
    "chain": "ethereum",
    "timestamp": 1789047669326,
    "cached": false,
    "asOfBlock": 25924843,
    "docs": "https://docs.tracefast.xyz/api/address-attribute-history"
  }
}

data

FieldMeaning
chainId1, Ethereum mainnet
addressthe address, lowercase
intervals[]ascending by startBlock, then by attribute id
coveredFamiliesthe attribute families the history is built for
truncatedtrue when the timeline was cut at limit

An interval

FieldMeaning
attributeIdfamily:name, explained in the dictionary
startBlockthe first block the attribute held at
endBlockthe last block it held at. Absent when the interval was still open at the end of the covered history
valuethe attribute's value over the interval, for attributes that carry one; absent otherwise

The same attribute can appear more than once: an address can become a contract, lose its code and become one again. Each stretch is its own interval.

meta.asOfBlock is the block the history has been computed up to. An interval without endBlock was still open there.

Errors

StatuscodeWhendetails
400bad_requestlimit outside 1..500reason: limit_out_of_range, limit, maxLimit: 500

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