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
| Parameter | In | Type | Notes |
|---|---|---|---|
address | path | string | 0x-prefixed, 40 hex characters, any case |
attribute_id | path | string | the 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
| Field | Meaning |
|---|---|
chainId | 1, Ethereum mainnet |
subject | the address the attribute is about, lowercase |
attributeId | the attribute, family:name |
result | pass means the attribute is proven |
value | the attribute's value, for attributes that carry one; absent otherwise |
object | always absent here: it is the other end of a relation, on a relation proof |
referenceBlock | the block the evidence was read at |
referenceBlockHash | that block's hash — it pins the evidence to one chain state, so the claim can be re-checked against a node |
snapshotId | the chain snapshot the evaluation ran on |
selectedFamilyId | which 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 |
bindingVersions | the 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 |
definitionVersion | version of the attribute's definition |
graphRevision | revision 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 |
evaluatorVersion | version of the evaluator, for example 1.0.0 |
evaluatedAt | when the evaluation ran, Unix seconds |
proofHash | digest of the whole record, sha256: + hex — a stable id for this exact proof |
An evidence source
| Field | Meaning |
|---|---|
sourceId | an 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
| Status | code | When | details |
|---|---|---|---|
| 400 | bad_request | attribute_id is not a short identifier of letters, digits and :_.- | reason: attribute_id_invalid |
| 404 | not_found | no 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.
Related pages
- Address attribute dictionary — what each attribute id means
- Attribute history of an address — when each attribute held
- Proof of one relation — the same record for a relation between two addresses
- Labels & Entities — how verified facts relate to entities
Last updated 22 Oct 2026, 08:06 UTC · verified against TraceFast v1.0.261 · Markdown