KYC Proofs
List Proofs
The claim slots on an identity and which proof backs each one
GET
/
customers
/
api
/
identity
/
proofs
/
{walletAddress}
curl "https://api.trusset.org/customers/api/identity/proofs/0xAbCdEf0123456789AbCdEf0123456789AbCdEf01" \
-H "X-API-Key: trusset_your_key_here"
{
"success": true,
"data": {
"walletAddress": "0xAbCdEf0123456789AbCdEf0123456789AbCdEf01",
"verified": true,
"frozen": false,
"chainUnavailable": false,
"proofs": [
{
"claimType": 3,
"claimTypeLabel": "RESIDENCY",
"fieldName": "country",
"circuit": "set_membership",
"proofDigest": "0x2f74c8a1b09d3e6754108bfa2c9d70e3b5148af6209c73de815b40a92c6ef31d",
"bundleRoot": "0x7c3a9f1d8b2e64057af13c9e0d5b8a4726f1c0e93d8b5a2740c6e19fb3d47a58",
"rootCurrent": true,
"source": "proof",
"issuer": "0x1234f9a07c6b53d81e2a4f70c9b385d6014a7e52",
"issuedAt": 1788696000,
"expiry": 1820246400,
"txHash": "0x9f2c41d8b7e05a3164c2870fbd935e1a4c7802db6135ea9048f7c21b5d3ea41b"
}
]
}
}
Returns the subject’s on-chain root and every claim slot, joined with the ledger row that records which proof filed it. It answers the question a reviewer asks: what does this identity assert, and where did each assertion come from.
Path Parameters
string
required
The subject’s wallet address.
Response Fields
object
Show child attributes
Show child attributes
array
Show child attributes
Show child attributes
integer
Slot index, 0 to 7.
string
Its name, for example
RESIDENCY.string
The bundle field that filed it, or
null when no ledger row matches.string
The circuit that proved it, or
null.string
Digest of the STARK behind it, or
null.string
The root of the bundle that filed it, or
null.boolean
Whether that bundle’s root is still the one on chain.
false means the claim was filed from a bundle the identity has since rotated away from.string
proof when a ledger row backs it, manual when the slot is filled but nothing records a proof, null when the ledger could not be read.string
Who wrote the claim on chain.
integer
Unix seconds.
integer
Unix seconds, or
0 for no expiry.string
The transaction that filed it, or
null.rootCurrent: false is the one to watch. The claim is still on chain and still readable by a token contract. But the bundle it came from no longer matches the identity’s root, so the proof behind it can no longer be checked against the chain. Re-attest from the current bundle.The chain is the source of truth here and the ledger only supplies labels. When the ledger cannot be read,
source is null on every entry and the per-proof fields are absent, but the root and the claims still render.curl "https://api.trusset.org/customers/api/identity/proofs/0xAbCdEf0123456789AbCdEf0123456789AbCdEf01" \
-H "X-API-Key: trusset_your_key_here"
{
"success": true,
"data": {
"walletAddress": "0xAbCdEf0123456789AbCdEf0123456789AbCdEf01",
"verified": true,
"frozen": false,
"chainUnavailable": false,
"proofs": [
{
"claimType": 3,
"claimTypeLabel": "RESIDENCY",
"fieldName": "country",
"circuit": "set_membership",
"proofDigest": "0x2f74c8a1b09d3e6754108bfa2c9d70e3b5148af6209c73de815b40a92c6ef31d",
"bundleRoot": "0x7c3a9f1d8b2e64057af13c9e0d5b8a4726f1c0e93d8b5a2740c6e19fb3d47a58",
"rootCurrent": true,
"source": "proof",
"issuer": "0x1234f9a07c6b53d81e2a4f70c9b385d6014a7e52",
"issuedAt": 1788696000,
"expiry": 1820246400,
"txHash": "0x9f2c41d8b7e05a3164c2870fbd935e1a4c7802db6135ea9048f7c21b5d3ea41b"
}
]
}
}
Error Codes
| Code | HTTP | Cause |
|---|---|---|
INVALID_ADDRESS | 400 | walletAddress is not a valid address |
INSTANCE_NOT_FOUND | 404 | The instance behind your key no longer exists |
PROOFS_FAILED | 500 | The proof tree could not be assembled |
⌘I
curl "https://api.trusset.org/customers/api/identity/proofs/0xAbCdEf0123456789AbCdEf0123456789AbCdEf01" \
-H "X-API-Key: trusset_your_key_here"
{
"success": true,
"data": {
"walletAddress": "0xAbCdEf0123456789AbCdEf0123456789AbCdEf01",
"verified": true,
"frozen": false,
"chainUnavailable": false,
"proofs": [
{
"claimType": 3,
"claimTypeLabel": "RESIDENCY",
"fieldName": "country",
"circuit": "set_membership",
"proofDigest": "0x2f74c8a1b09d3e6754108bfa2c9d70e3b5148af6209c73de815b40a92c6ef31d",
"bundleRoot": "0x7c3a9f1d8b2e64057af13c9e0d5b8a4726f1c0e93d8b5a2740c6e19fb3d47a58",
"rootCurrent": true,
"source": "proof",
"issuer": "0x1234f9a07c6b53d81e2a4f70c9b385d6014a7e52",
"issuedAt": 1788696000,
"expiry": 1820246400,
"txHash": "0x9f2c41d8b7e05a3164c2870fbd935e1a4c7802db6135ea9048f7c21b5d3ea41b"
}
]
}
}
