Raven's trust model is "don't trust us — check". Everything needed to verify a verdict independently is public.
Every successful verification is signed with an ed25519 key whose only job is attestation. The signature covers "raven-official-attestation" || officialAttestationHash — domain separation means a Raven signature can never be confused with any other protocol's.
GET https://raven-hosted-verifier.onrender.com/pubkey
{"keys":[{"keyId":"rvk_c2997e90215279c2",
"publicKeyBase64":"MCowBQYDK2VwAyEASGJt4Ilx2Z6g0BVC1VQIfaUcV0nr8WB1J45/8vfje6w=",
"alg":"ed25519"}],
"domain":"raven-official-attestation","version":"v2"}
The key id is also published in the repo README and this site's footer — cross-check sources if you're being careful.
The signed hash commits to the full claim: the request (mint, token program, metadata, pool, commitment), engine version, observed slot, the verdict surface (verdict, engineOutcome, reason, finding codes, findings) and the coverage gaps. Recompute it from the response fields via canonical JSON (recipe + exact preimage example in the public test vector), compare to replayHash, then verify the signature. Four steps, no trust required.
Every response carries coverageGaps — what was NOT checked. New engine versions are tracked explicitly: when coverage expands, history is segmented as coverage expansion, never silently rewritten as a verdict change.
Every hosted verification — success or failure — appends one sanitized entry to an append-only ledger (timestamp, mint, verdict, latency, error code; never keys, never signatures' private material). It's our own audit trail: verdict-to-outcome tracking across 2,000+ baselined launches and hourly revisits backs the published zero-flip record.
Raven receipts are currently signed with ed25519 key rvk_c2997e90215279c2; the public key is served at /pubkey. Key IDs are explicit so agents can detect rotation. Receipts include engine version, replayHash, and officialAttestationHash, so past outputs remain auditable. If Raven rotates keys, old receipts remain verifiable under their original keyId. Raven does not claim quantum resistance today; future signing schemes arrive through a new keyId and verification domain (/key-policy.json).
Unit-test your verifier against a real receipt: /receipt-test-vector.json. Full policy, key states, and rotation rules: /key-policy.json and RAVEN_CRYPTO_AGILITY.md. No post-quantum guarantee is claimed; algorithm agility is a design principle.
Raven verifies launch state from on-chain evidence. It does not predict price, does not guarantee safety, and is not financial advice. A pass means "no risk findings on the surfaces we checked, gaps listed" — your agent's policy decides what to do with that.