Skip to content
TraceFast Docs

Relations of an address

Open the USDC contract in TraceFast →

The relations an address holds now: which implementation a proxy points at, which beacon it reads, who administers it, where an account has delegated, which bridge maps a token to its remote representation. A relation joins two addresses — a subject and an object. Read the address from either side:

  • direction=subject (default) — what the address points at;
  • direction=object — who points at the address.
GET https://tracefast.xyz/api/v1/chains/1/entities/{address}/relations
ParameterInTypeNotes
addresspathstring0x-prefixed, 40 hex characters, any case
directionquerystring, optionalsubject (default) or object
attributeIdquerystring, optionalnarrow to one relation id, relation:name
limitqueryinteger, optional1..100, default 25
cursorquerystring, optionalnextCursor of the previous page

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_relations 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

  • Proven relations only. Every row is a relation the knowledge graph has proven. A relation missing from the answer is not proven — never "false".
  • No names, no labels. A counterpart is an address. To learn what it is, ask its attributes.
  • No total, in either direction. On the object side one implementation can be pointed at by millions of proxies. The absence of nextCursor is the only completeness statement the method makes.
  • Now only. For the relations at a past block, see relations at a block; for when each one started and ended, the relation history.

Response

200 application/json for the USDC proxy, here with ?attributeId=relation:proxy_uses_implementation:

{
  "data": {
    "chainId": 1,
    "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
    "direction": "subject",
    "relations": [
      {
        "attributeId": "relation:proxy_uses_implementation",
        "counterpart": "0x43506849d7c04f9138d1a2050bbf3a0c054402dd",
        "result": "pass",
        "referenceBlock": 18963716
      }
    ]
  },
  "meta": {
    "chain": "ethereum",
    "timestamp": 1789047745695,
    "cached": false,
    "asOfBlock": 25924975,
    "docs": "https://docs.tracefast.xyz/api/address-relations"
  }
}

Asked from the other side — the implementation 0x4350…02dd with ?direction=object — the same relation lists the USDC proxy as a counterpart, next to every other proxy that points at that implementation.

data

FieldMeaning
chainId1, Ethereum mainnet
addressthe address, lowercase
directionthe side the address is read on, echoed
relations[]the page, ordered by relation id, then by counterpart
nextCursorthe cursor of the next page. Absent on the last page

A relation

FieldMeaning
attributeIdthe relation id, relation:name
counterpartthe other end, lowercase: the object under direction=subject, the subject under direction=object
resultpass means the relation is proven
referenceBlockthe block the relation was evaluated at
valuethe relation's value, for relations that carry one; absent otherwise. A string — for some relations it holds JSON text, for example the bridge contract of a bridged-token relation

Pagination

Pages are keyset, never offset. Pass nextCursor back as cursor, with the same direction and attributeId, until nextCursor is absent. A cursor issued for one direction or filter does not open under another — it answers 400 invalid_cursor, and the recovery is to start again from the first page. See pagination.

Errors

StatuscodeWhendetails
400bad_requestdirection is not subject or objectreason: direction_invalid, direction
400bad_requestattributeId is not a short identifier of letters, digits and :_.-reason: attribute_id_invalid
400bad_requestlimit outside 1..100reason: limit_out_of_range, limit, maxLimit: 100
400invalid_cursorthe cursor is not valid for this request—

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