How Attestations Work
Non-normative overview. The canonical formats and requirements are defined in Envelope, Claims, and Verification.
An OSAP attestation is a JSON envelope containing an issuer, claims, timestamps, and usually a subject with one or more content fingerprints. The common envelope format and the five attestation types are defined in Envelope and Claims.
Important fields include:
issuer: the signer, identified in v0.1 by adid:webidentifier.subject: the asset being described and itsasset_hashes.claims: issuer statements such aspublished_byororiginal_source_claim.issued_at: the time at which the issuer says it issued the attestation.proof: the signature metadata and signature value.
In v0.1, the proof is a DataIntegrityProof using the eddsa-jcs-2026 cryptosuite. The envelope is canonicalized with JCS, excluding proof.proofValue, and signed with Ed25519. A verifier checks the document format, exact-byte fingerprint, issuer key, signature, and available revocation information. It reports checks that could not be performed as unknown rather than failed.
This example follows examples/source-attestation.json. Its proofValue is a placeholder that reference tooling can replace.
{
"osap": "0.1",
"id": "osap:attestation:sha256:4a44dc15364204a80fe80e9039455cc1608281820fe2b24f1e5233ade6af1dd5",
"type": "SourceAttestation",
"issuer": {
"id": "did:web:publisher.example",
"name": "Publisher Example",
"key_id": "did:web:publisher.example#key-2026"
},
"subject": {
"type": "image/jpeg",
"canonical_url": "https://publisher.example/images/photo.jpg",
"asset_hashes": [
{
"alg": "sha256",
"scope": "exact-bytes",
"value": "4a44dc15364204a80fe80e9039455cc1608281820fe2b24f1e5233ade6af1dd5"
}
]
},
"claims": [
{
"type": "published_by",
"value": true
},
{
"type": "original_source_claim",
"value": true
}
],
"issued_at": "2026-07-09T12:00:00Z",
"valid_from": "2026-07-09T12:00:00Z",
"derived_from": [],
"evidence": [],
"revocation": {
"status_url": "https://publisher.example/.well-known/osap/revocations.json"
},
"proof": {
"type": "DataIntegrityProof",
"cryptosuite": "eddsa-jcs-2026",
"created": "2026-07-09T12:00:05Z",
"verificationMethod": "did:web:publisher.example#key-2026",
"proofPurpose": "assertionMethod",
"proofValue": "base64url-signature-placeholder"
}
}Attestations may be distributed with an asset or discovered later:
- a
.osap.jsonsidecar file; - a
/.well-known/osap.jsonindex; - an HTTP
Linkheader; - an HTML
<link rel="osap-attestation">; or - an exact-hash lookup service.
The discovery rules are specified in Discovery. Remote hash lookup is privacy-sensitive because a request can reveal interest in a particular fingerprint; verifiers warn users before using it.