Developers
Verification API
Public, unauthenticated endpoints for relying parties. You don’t need them to verify a signature, because any eddsa-jcs-2022 library can do that. They add what only the register knows: whether a key is enrolled, and whether a record is held and current.
Resolve an identity
GET https://trustedanchor.io/org/{id}/did.json
GET https://trustedanchor.io/.well-known/did.json
Standard did:web resolution. The response is a DID document whose verificationMethod lists the organisation’s active keys as Multikey (publicKeyMultibase, base58btc, Ed25519 multicodec 0xed01). A 404 means no active keys are published.
Verify an inspection credential
POST https://trustedanchor.io/inspect/verify
Content-Type: application/json
{ "credentialJson": "<the credential, as a JSON string>" }
Response:
{
"valid": true, // proof verifies against the issuer key
"reason": null,
"issuerDid": "did:key:z6Mk…",
"issuerEnrolled": true, // key is ACTIVE on the register
"anchored": true, // a record with this seal is held
"anchorStatus": "SEALED", // or "VOID"
"anchorSealedAt": "2026-09-01T17:56:18.162Z",
"anchorCredentialStatus": "VERIFIED"
}
Prove one pallet
POST https://trustedanchor.io/inspect/verify/pallet
Content-Type: application/json
{
"sscc": "<18-digit SSCC>",
"verdict": "passed",
"credentialJson": "<parent inspection credential>",
"inclusionProof": [ { "hash": "…", "side": "left" }, … ]
}
Checks the parent credential’s proof and the Merkle path from the pallet’s leaf, sha256(JCS({sscc, verdict})), to the credential’s palletsRoot. Returns attested, the authority and the stamp time.
Verify without us
The site’s verifier is a single dependency-free ES module, verify.js, which exports verify(text, { useRegister: false }). Use it, read it, or check its output against your own implementation. A specimen credential is published as a test vector.