Skip to content
TraceFast Docs

Proof of one attribute of an address

Open this address in TraceFast →

The evidence behind one proven attribute of an address: the facts that were checked, with their expected and observed values; the conditions that had to be false; and the block the evaluation was pinned to, with its hash. Nothing is summarised or ranked. The record is the evaluator's own, so you can check the claim instead of trusting it.

GET https://tracefast.xyz/api/v1/chains/1/entities/{address}/attributes/{attribute_id}/proof
ParameterInTypeNotes
addresspathstring0x-prefixed, 40 hex characters, any case
attribute_idpathstringthe attribute id, family:name, as listed by the attributes method

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_proof on the MCP server. Stable — see stability.

chains/1 is a literal: other chain ids answer 404 chain_not_supported. The method takes no query parameters; an unknown one is refused.

Response

200 application/json, for address_nature:has_onchain_existence:

{
  "data": {
    "chainId": 1,
    "subject": "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97",
    "attributeId": "address_nature:has_onchain_existence",
    "result": "pass",
    "definitionVersion": "1.0.0",
    "graphRevision": "rev:e7ea6ccecae0",
    "referenceBlock": 16976894,
    "referenceBlockHash": "0x7639d2adc72d2333b23d4c19f937559c3dad98f6eb685f391e5f273f21eb6179",
    "snapshotId": "eth-mainnet@16976894",
    "selectedFamilyId": "…",
    "factResults": [
      { "fact_id": "…", "observed": true, "operator": "exists", "threshold": 1 }
    ],
    "negativeControlResults": [
      { "control_id": "…", "evaluation": "must_be_false", "observed": false }
    ],
    "dependencyProofRefs": [],
    "bindingVersions": {
      "ev:60ebdf660aa9": "ev:6a2ad5a75626"
    },
    "sourceEvidenceRefs": [
      { "sourceId": "ev:64e10ab0077a" }
    ],
    "evaluatorVersion": "1.0.0",
    "evaluatedAt": 1788023786,
    "failureReasonCodes": [],
    "proofHash": "sha256:f139d055acd55fb338afcfb12ff337cc437535803787cd4004252e7c4d8d65eb"
  },
  "meta": {
    "chain": "ethereum",
    "timestamp": 1789063643509,
    "cached": false,
    "asOfBlock": 25924975,
    "docs": "https://docs.tracefast.xyz/api/address-attribute-proof"
  }
}

data

FieldMeaning
chainId1, Ethereum mainnet
subjectthe address the attribute is about, lowercase
attributeIdthe attribute, family:name
resultpass means the attribute is proven
valuethe attribute's value, for attributes that carry one; absent otherwise
objectalways absent here: it is the other end of a relation, on a relation proof
referenceBlockthe block the evidence was read at
referenceBlockHashthat block's hash — it pins the evidence to one chain state, so the claim can be re-checked against a node
snapshotIdthe chain snapshot the evaluation ran on
selectedFamilyIdwhich of the attribute's alternative lines of evidence satisfied it
factResults[]the facts checked, each with its operator, the expected value or threshold and the observed value. JSON as the evaluator produced it — its keys are snake_case
negativeControlResults[]conditions that had to be false for the attribute to hold, each with what was observed
dependencyProofRefs[]other proofs this one depends on
failureReasonCodes[]reason codes when result is not pass; empty on a passing attribute
sourceEvidenceRefs[]the evidence sources the evaluation read — see below. Absent, not empty, when the record cannot be read
bindingVersionsthe version of each data binding the evaluation read, keyed by an evidence-source id; each value is a version or another ev: id. Absent, not empty, when the record cannot be read
definitionVersionversion of the attribute's definition
graphRevisionrevision of the knowledge graph's rule set — an opaque id, rev: and 12 hex digits. One revision has one id in every proof; compare ids for equality only, they have no order
evaluatorVersionversion of the evaluator, for example 1.0.0
evaluatedAtwhen the evaluation ran, Unix seconds
proofHashdigest of the whole record, sha256: + hex — a stable id for this exact proof

An evidence source

FieldMeaning
sourceIdan opaque, stable identifier: ev: + 12 hex characters. The same source carries the same id in every proof, so sources can be told apart and matched across proofs. It is the only field of an evidence source

Read the contents of factResults and negativeControlResults as the evaluator's record, not a contract: parse them to show or archive a proof, do not branch on them. Evidence-source ids are opaque but stable — compare them, do not decode them. The stable parts are result, referenceBlock, referenceBlockHash, proofHash and the ev: ids.

Errors

StatuscodeWhendetails
400bad_requestattribute_id is not a short identifier of letters, digits and :_.-reason: attribute_id_invalid
404not_foundno proof is recorded for this attribute of this address—

A 404 does not mean the attribute is false. It means there is no recorded proof to show. Ask the attributes method which ids hold.

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