Every verification result is available as signed JSON (/verify/<code>.json) and as a
W3C Verifiable Credential (/verify/<code>.vc.json). Both are signed with this key, so a
copy can be checked without trusting whoever passed it on.
| Algorithm ? The signature scheme. Ed25519 is supported by every common crypto library. | Ed25519 (EdDSA) |
|---|---|
| Verification method ? The identifier signed results name as their key (kid / verificationMethod). | https://www.veripd.org/verify/keys.json#ed25519-1 |
| Public key (multibase) ? The key in the Multikey form used by Verifiable Credentials. | z6MkunKmqNJZurMM8zY5d6s3vW2UvFc4437CYwCzG8FYiqyR |
| Public key (JWK x) ? The same key, base64url-encoded, as the x value of an OKP JSON Web Key. | 48GODpxA8h2KpsrM06OmNrNP9g7IM3b7Xc8LXBCJd-A |
| Key document ? The machine-readable form of this page. | https://www.veripd.org/verify/keys.json |
Checking the signed JSON
- Take the
payloadobject and serialise it with the JSON Canonicalization Scheme (RFC 8785): keys sorted, no whitespace. Payloads hold only strings, integers, booleans and null. - Base64url-decode
signature.value. - Verify that Ed25519 signature over the canonical bytes with the public key above.
Checking the Verifiable Credential
The credential uses a Data Integrity proof with the eddsa-jcs-2022 cryptosuite: the signed
bytes are SHA-256 of the canonical proof options (the proof without proofValue, plus the
credential's @context) followed by SHA-256 of the canonical credential without its proof.
proofValue is the signature in base58btc multibase.
A result states the time it was evaluated. The chain is re-evaluated when a provider's or approver's recorded standing changes, so fetch a fresh copy rather than relying on an old one.
© 2026 VeriPD · Jotter Tech. All rights reserved. Proprietary & confidential.