Receipts
A current receipt-v1 is machine-verifiable evidence: signed findings, signed scope, explicit gaps, rules version, timestamp and slot. The archived compact receipt views below are legacy v2 material derived from captured hosted-verifier responses. Their issued dates, observed slots, and current ages are visible; they are not a live status feed. USDC's archived response carries triggered issuer-authority findings because those authorities were active at issuance.
Archived receipt views could not be displayed. No freshness claim is being made.
Cryptographic posture
Current receipt-v1 signs under raven-receipt / v1 with ed25519. Verify payloadHash, receiptId, and the signature using signerPublicKey, then match that signer to the key supplied through your independently authenticated handoff. The reviewed raven-receipt-verifier package carries the production trust anchor but is not yet published on npm. /pubkey is discovery/cross-check material only, never the trust root. Raven does not claim quantum resistance today (/key-policy.json).
Long-term verification
Verify against an independently pinned signer key. Store the exact receipt-v1 response and the separate local verification result: integrity, signer trust, freshness, rules status and expected-subject match. A receipt remains tied to its signerPublicKey; do not replace historical trust material with the newest key.
Old receipts remain verifiable against the key that signed them. Legacy v2 archives retain their original keyId and v2 recipe. Preserve the original keyId; do not feed those bytes to a receipt-v1 verifier or present them as the current wire contract. Retired/revoked key semantics: /key-policy.json.
Receipt storage for agents
Store the full signed receipt-v1 response. Index by mintAddress, tokenProgramAddress, rulesVersion, slot, payloadHash, receiptId. Do not overwrite older receipts — a later receipt is new evidence, not replacement truth. Keep the exact receipt and verification metadata together; preserve coverage gaps exactly. Full guidance: /receipt-storage.html · current vector: /receipt-v1-test-vector.json · policy: /receipt-memory-policy.md.
Optional evidence caution: poolAddress and metadataAddress are optional inputs. When missing, the corresponding surfaces become coverage gaps — Raven does not infer liquidity quality without pool evidence, never converts liquidity evidence into price claims, and never treats a missing check as a pass. Re-verify stale receipts before material actions (decision policy).
Inspect the archive; verify current receipt-v1 separately
1. For current work, call POST /receipt/v1. The response body is the receipt object.
2. Use /receipt-v1-test-vector.json and the reviewed local verifier. Recompute payloadHash, check receiptId, verify with signerPublicKey, then require your independent pin. Treat GET /pubkey as a cross-check only.
3. The cards and linked JSON here are archived legacy v2 captured responses. Their replayHash, officialAttestationHash, keyId, and verdict fields are preserved historical bytes, not receipt-v1.
The historical captured responses do not contain every replay-preimage field, so the compact archive alone cannot prove the v2 replay binding.
4. The legacy /receipt-test-vector.json exists only for v2 compatibility verification. Full versioned security model →
Raven verifies on-chain evidence. It does not predict price or guarantee safety.