Activity of an address
Open this address in TraceFast →
When an address was active, answered as three separate questions, because they have different answers:
- When was it first mentioned anywhere on chain?
- When did its own account state — balance, nonce or code — last change, and how many times has it changed?
- What is the newest block at which it took part in anything — a top-level transaction, a token transfer, an emitted log, a value-bearing call — and which sources was that computed over?
GET https://tracefast.xyz/api/v1/chains/1/entities/{address}/activity
| Parameter | In | Type | Notes |
|---|---|---|---|
address | path | string | 0x-prefixed, 40 hex characters, any case |
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_entity_activity 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. The method takes no query parameters — an
unknown one is refused rather than ignored.
What it covers, and what it does not
- "Last state change" is not "last active". A contract that is only ever
called by other contracts never changes its own state after deployment: its
lastStateChangeBlockis its deployment block, however busy it is. ReadlastActivityfor "when was it last active". lastActivitysays which sources it consulted. A source missing fromsourcescould not be consulted for this response, andbySourcesays nothing about it. A source that was consulted and holds nothing readsnull.- An address mentioned nowhere on chain answers
404.
Response
200 application/json:
{
"data": {
"chainId": 1,
"address": "0xf977814e90da44bfa03b6295a0616a897441acec",
"firstSeenBlock": 8115394,
"firstSeenTimestamp": 1562653163,
"lastStateChangeBlock": 26219271,
"lastStateChangeTimestamp": 1792324367,
"stateChangeCount": 20276,
"lastInteractionBlock": 26219271,
"lastInteractionTimestamp": 1792324367,
"lastActivity": {
"block": 26220033,
"timestamp": 1792333571,
"sources": ["events", "tokenTransfers", "internalTransfers", "directTx", "calls"],
"bySource": {
"events": null,
"tokenTransfers": 26220033,
"internalTransfers": 25946150,
"directTx": 26219271,
"calls": 26185276
}
}
},
"meta": {
"chain": "ethereum",
"timestamp": 1792338471207,
"cached": false,
"asOfBlock": 26220350,
"docs": "https://docs.tracefast.xyz/api/address-activity"
}
}Here the address was last active through a token transfer (26220033), some
760 blocks after its own last transaction (26219271). events: null means the address
has never emitted a log — as expected for an account without code.
data
| Field | Meaning |
|---|---|
chainId | the chain the facts are about; 1 is Ethereum mainnet |
address | the address, lowercase |
firstSeenBlock | the first block that mentions the address anywhere on chain. Absent when it could not be resolved |
firstSeenTimestamp | Unix time of firstSeenBlock, seconds |
lastStateChangeBlock | the last block at which the address's own account state changed. For a contract that is only ever called, this is its deployment. null for an address whose account state was never touched |
lastStateChangeTimestamp | Unix time of lastStateChangeBlock, seconds |
stateChangeCount | how many account-state changes were observed. 0 for an address whose account state was never touched |
lastInteractionBlock | the newest top-level transaction with the address as sender or recipient. Absent when there is none |
lastInteractionTimestamp | Unix time of lastInteractionBlock, seconds |
lastActivity | when the address was last active in any form — see below |
lastActivity
| Field | Meaning |
|---|---|
block | the newest block across the consulted sources. null when nothing was observed anywhere — never 0 |
timestamp | Unix time of block, seconds; null when the block is null or its time could not be resolved |
sources | the sources consulted, always in this order: events, tokenTransfers, internalTransfers, directTx, calls |
bySource | the newest block each source saw the address at. A key is never omitted; null means the source was consulted and holds nothing for this address |
lastActivity.bySource
| Key | What the source counts |
|---|---|
events | logs emitted by the address |
tokenTransfers | token transfers with the address as sender or receiver |
internalTransfers | value-bearing call frames the address took part in |
directTx | top-level transactions from or to the address |
calls | calls the address received inside a transaction — with or without value, reverted or not. This is what shows a contract is in use when only other contracts call it |
Errors
| Status | code | When | details |
|---|---|---|---|
| 404 | not_found | the address is mentioned nowhere on chain | — |
| 422 | block_not_available | recent blocks are in a coverage gap, and an address first seen in them cannot be confirmed right now. Retry later — this is not "does not exist" | reason: coverage_gap, coverageGapFromBlock, coverageGapToBlock, maxAvailableBlock |
| 404 | chain_not_supported | a chain id other than 1 | — |
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 address — balance, nonce and transaction counters
- Daily activity of an address — account-state changes per day
- Transactions of an address — the transactions themselves
- Token transfers of an address — the token side of the activity
- Accounts & Wallets — the liveness chip in the app is built on the same facts
Last updated 22 Oct 2026, 08:06 UTC · verified against TraceFast v1.0.261 · Markdown