Developers · Protocol & integration

One JSON record. Independently verifiable data.

ExtraProof records are portable JSON files. The documented humanproof/1 format combines Ed25519 signatures, a SHA-256 event chain and an optional file binding. The browser verifier checks this data locally.

01

Exact bytes. Explicit rules.

The signature covers the stored payload bytes. Each event includes a sequence number, previous hash and its own hash. Verifiers check the original bytes rather than a reserialised JSON representation.

  • Explicitly validate the format version and algorithm.
  • Reject duplicate JSON keys and unsafe number encodings.
  • Check resource limits, ordering and the final chain hash.

02

Keep three results separate.

integrityValid describes the cryptographic check. signerTrusted reflects comparison with a separately known key fingerprint. fileStatus describes the file binding and any requested comparison. A valid self-signature does not establish an institutional identity.

03

localObservation defines the scope.

humanproof/1 accepts signed local observations. sealedObservation adds capture context without claiming an enforced restricted environment. Local time values are recorder claims. Revocation, external time evidence and organisational policies fall outside browser verification.

04

Connect the record to your process.

Use the record as separate evidence alongside the document, and keep the verification result and policy version together in the receiving system. For API, SDK and institutional integrations, we work through format transfer, error states, trust anchors and operational responsibilities for your use case.

05

PDF as a container for the record.

The native PDF evidence document contains humanproof-certificate.json. The browser accepts the designated, uniquely indexed attachment, checks its SHA-256, then applies the record contract. Do not describe that result as verification of visible PDF content or the PDF/CMS signature. Local text or JSON verification reports are unsigned outputs of a verification run.

Protocol v1

Exact bytes.
Separate findings.

The web verifier accepts only the localObservation profile. The versioned protocol defines which data a verifier accepts.

schemaVersion: humanproof/1
algorithm: Ed25519
assurance: localObservation
payload.assurance.achieved: null | 1..5
assuranceClaimValid: null | true | false

integrityValid: true | false
signerTrusted: true | false
fileStatus: matched | mismatched
            notChecked | notBound
Download the protocol specification
Download the synthetic test record
Download the associated test file
Download the format and verification packageREADME

Extraara is a member of the Content Authenticity Initiative.

C2PA interoperability in development

Standards and trust
Content Authenticity InitiativeExtraara