Skip to content
TraceFast Docs

Blacklist events about one address

Check this address in TraceFast →

Every blacklist event any issuer contract recorded about one address, newest first: the address was listed (add), unlisted (remove), or its funds were destroyed or frozen (enforce). Each event carries the issuer, its authority tier and the transaction that emitted it. For the summary per issuer — who lists the address now — see which issuer contracts list one address.

GET https://tracefast.xyz/api/v1/chains/1/risk/blacklists/{address}/events
ParameterInTypeNotes
addresspathstring0x-prefixed, 40 hex characters, any case
issuerContractquerystring, optionalonly events emitted by this issuer contract, 0x-prefixed
actionquerystring, optionalonly events of this kind: add, remove or enforce
limitqueryinteger, optional1..100, default 25
cursorquerystring, optionalnextCursor of the previous page

Access — an API key on the Investigation 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_blacklist_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

  • On-chain facts only, emitted by the issuer contracts themselves. No external sanctions list is consulted, and no event here is a legal or sanctions determination.
  • Weigh every event by its issuer. Any token can ship a blacklist function; an event from an arbitrary_token is that token's own decision.
  • Identity-blind — issuers appear as contract addresses, never as organisation names.
  • meta.asOfBlock is the reach of the blacklist history — the last block the blacklist history covers. It trails the chain tip by design, so a newer event may not be listed yet. The method carries no meta.coverage.
  • An empty page is an answer — no issuer recorded an event about the address up to meta.asOfBlock.

Response

200 application/json, here with ?limit=3 — the address has two events, so there is no nextCursor:

{
  "data": {
    "chainId": 1,
    "address": "0x8f882eb5e9a17220a21ec14e09b2fcf7b75d204d",
    "events": [
      {
        "blockNumber": 25890354,
        "logIndex": 1061,
        "timestamp": 1788361103,
        "txHash": "0xb6dd8173fc2a6bd34ca35752e8ec5431f6fc67c3724868cfef362b2bc5e07733",
        "issuerContract": "0xdac17f958d2ee523a2206206994597c13d831ec7",
        "authorityTier": "recognized_issuer",
        "action": "enforce",
        "statusEffect": "enforcement",
        "eventName": "DestroyedBlackFunds"
      },
      {
        "blockNumber": 24184326,
        "logIndex": 541,
        "timestamp": 1767807239,
        "txHash": "0xeb6d5edc63a62c421f2d87f8f3b25e58aba9b6c92298378fdf8566960e111b92",
        "issuerContract": "0xdac17f958d2ee523a2206206994597c13d831ec7",
        "authorityTier": "recognized_issuer",
        "action": "add",
        "statusEffect": "membership",
        "eventName": "AddedBlackList"
      }
    ]
  },
  "meta": {
    "chain": "ethereum",
    "timestamp": 1789063641427,
    "cached": false,
    "asOfBlock": 25924174,
    "docs": "https://docs.tracefast.xyz/api/risk-blacklist-events"
  }
}

data

FieldMeaning
chainId1
addressthe address asked about, lowercase
events[]at most limit events, newest first. Empty when no issuer ever recorded one
nextCursorcursor of the next page; absent on the last page

An event

FieldMeaning
blockNumber, logIndexwhere the event sits. Together they identify it — one transaction can emit the same event twice
timestampUnix time of the block, seconds
txHashthe transaction that emitted the event, lowercase
issuerContractthe contract that emitted it, lowercase
authorityTierrecognized_issuer, arbitrary_token or unknown — see authority tiers. Absent when it cannot be stated
actionadd — listed; remove — unlisted; enforce — funds destroyed or frozen
statusEffectmembership for add and remove, enforcement for enforce
eventNamethe event's name as the issuer's contract declares it: AddedBlackList, Blacklisted, DestroyedBlackFunds, FundsFrozen, …

Pagination

Pages are keyset, newest first. While nextCursor is present, pass it back as cursor with the same issuerContract and action; it is absent on the last page. A cursor reused with other filters answers 400 invalid_cursor — restart from the first page. See pagination.

Errors

StatuscodeWhendetails
400bad_requestissuerContract is not a 0x-prefixed 40-hex addressreason: issuer_contract_invalid, issuerContract
400bad_requestaction is outside add / remove / enforcereason: action_invalid, action
400bad_requestlimit outside 1..100reason: limit_out_of_range, limit, maxLimit: 100
400invalid_cursorthe cursor is not valid for this address and these filters—
503service_unavailablethe reach of the blacklist history could not be read, so an empty page could not be told from a gap. 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