When an AI bot calls a consumer on behalf of a brand, Adjuro issues a signed receipt — proving who the agent is, what consent authorized the call, and on whose behalf. Verifiable by anyone in under 50 milliseconds.
From the Latin adjurō/ad·YOO·roh/— “I attest under oath.”
{ "agent_id": "adj:7k9n2p4f8m1q5w3r", "brand": "Acme Collections", "callee_hash": "sha256:7c4f…e2a1", "consent_id": "crm-12847-consent", "scope": ["debt_collection"], "jurisdiction": "US-CA", "issued_at": "2026-05-30T00:00:00Z", "kid": "adjuro-root-2026w20" }
Production cryptography, open from day one
Every Adjuro receipt is a JOSE-standard JWS signed with pure Ed25519 (RFC 8032) inside an AWS KMS HSM. Each field proves a specific claim — and the signature over them is unforgeable without HSM-backed key access. Any third party verifies it independently, no call to Adjuro required.
agent_id and brand bind the AI agent to the legal entity that placed the call.
consent_id and scope reference the capture record and constrain the legal purpose.
callee_hash is an HMAC of the E.164 — attests the consumer at call time without revealing the number.
{ "iss": "https://api.adjuro.ai", "jti": "adj_rcpt_x9k2tqp4f7a3w1n5b8c2d6e3", "iat": 1780099200, "exp": 2095459200, "agent_id": "adj:7k9n2p4f8m1q5w3r6t2y8u4i", "tenant_id": "acme-collections-mid-atlantic", "brand": "Acme Collections", "brand_verified": true, "trust_tier": "verified", "trust_root_id": "adjuro-root-sample", "event_type": "voice_call", "caller_number": "+18005551212", "callee_hash": "sha256-hmac:a8j1bzs9c5y2v7m6p4n3f8d2", "campaign_id": "acct-recovery-q2-2026", "consent_id": "crm-12847-consent-2026-03-14", "scope": ["debt_collection"], "jurisdiction": "US-CA", "issued_at": "2026-05-30T00:00:00.000Z", "expires_at": "2036-05-27T00:00:00.000Z" }
When discovery comes, export a self-contained evidence bundle for any call — signed receipt, historical keys at time of issuance, and an integrity manifest. Designed for FRE 901 chain-of-custody without an expert witness to explain a hash.
Pull a complete audit packet for any receipt id — no CRM archaeology.
Historical JWKS shows the receipt was valid when minted, years later.
A signed manifest.json seals the whole packet against alteration.
# GET /v1/calls/adj_rcpt_x9k2…/evidence audit-packet.zip ├── metadata.json # receipt + verifier log ├── receipts/ │ └── <id>.jws # signed receipt ├── jwks-at-issuance.json # historical keys ├── README.txt ├── manifest.json └── manifest.json.sig # packet integrity
Compliance teams shouldn’t reconstruct consent from CRM screenshots. They should hold a signature.
The case for cryptographic receipts
III The compliance bomb of 2025
Average TCPA class-action settlement in 2024–2025. Federal filings grew 60% year-over-year, and roughly 80% are class actions. The Lowery v. OpenAI / Twilio suit now exposes platforms to $500–$1,500 per call for downstream consent failures.
Sources Womble Bond Dickinson · CompliancePoint · ActiveProspect · Lowery v. OpenAI / Twilio
IV How it works
Drop Adjuro into an existing call flow in an afternoon. The verifier is open source, so anyone can confirm a receipt without an Adjuro account.
Before each outbound call, your app asks Adjuro to sign a receipt binding the agent, the consent reference, and the call metadata.
Any third party — a contact center, a law firm, opposing counsel — verifies the signature against the published JWKS. Offline once the JWKS is cached.
For discovery, audit, or a motion to dismiss: the receipt, the JWKS at time of issuance, and packet metadata, bundled into a signed ZIP.
Watch the roundtrip
2 MIN · VAPI OUTBOUND CALL → ADJURO RECEIPT → VERIFY ROUNDTRIP
V Why Adjuro
The hard part of trust infrastructure isn't issuing a token — it's proving it holds up in court, years later, to a party that doesn't trust you. Adjuro is engineered around that.
HSM-backed signatures plus the JWKS at time of issuance — chain of custody by construction, built for FRE 901.
Any third party verifies a receipt independently — no round-trip to Adjuro required.
Ships with three roots reserved. Voice platforms can run their own signing roots — the verifier accepts all.
The verifier is published to npm under Apache 2.0. No vendor lock-in, by design.
Receipts are designed to append to a tamper-evident log with Merkle inclusion proofs anyone can check.
Keys live in AWS KMS and are never exposed in plaintext. Receipts are unforgeable without HSM access.
VI Security & trust
Verification needs only the public keys and the open-source SDK. Your evidence doesn't depend on us staying online, and your work never trains a shared model.
Sixty-minute integration with an open SDK. Bring a real call flow — we'll mint and verify a receipt against it live.