Every compliance determination is signed with an Ed25519 private key and published as a standalone, canonical-JSON packet. Auditors and counterparties can verify authenticity and detect tampering without ever connecting to TeleVerify’s infrastructure.
When TeleVerify evaluates whether a provider is authorized to see a patient in a given state, the result is written to a compliance packet: a self-describing JSON document containing the engine version, provider snapshot, patient location, determination, data-source snapshot dates, and the signing key id. The packet is serialized via RFC 8785 (JSON Canonicalization Scheme), hashed with SHA-512, and signed with Ed25519. The signature and signer’s public key are both published.
Any third party — an insurer, a state board, a plaintiff’s expert witness, an internal compliance officer — can fetch a packet and its signature, fetch the relevant public key, and verify both artefacts in under a second with standard cryptography tooling. No TeleVerify account, API key, or network trust is required.
GET /api/compliance/keysAll Ed25519 public keys TeleVerify has ever used to sign packets, including revocation timestamps. Fetchable without authentication.
POST /api/compliance/verify-packetOptional convenience endpoint: submit a packet + signature and we run the same verification logic server-side. Useful for sanity checks; not required for trust.
Each snippet below fetches a packet, fetches the signer’s public key, canonicalizes the packet with RFC 8785 (JCS), and verifies the Ed25519 signature. All examples use only standard libraries where possible.
Uses the built-in crypto.verify and the small canonicalize package (MIT, zero deps) for JCS.
Uses requests and cryptography. JCS is small enough to inline — the snippet below implements just the subset we need (sorted keys, no whitespace). For production auditing, prefer pypi.org/project/jcs.
Two-step: use jq (or python -c) for JCS canonicalization, then openssl pkeyutl -verify for the Ed25519 check. OpenSSL 3.0+ required.
Paste a packet JSON and the base64url signature below. The page will fetch our public keys and run the Ed25519 verification locally via the Web Crypto API — nothing is sent back to us.
NotSupportedError, use one of the Node.js / Python / curl examples above instead.