Install Raven as a reflex
Current signed customer path: POST /receipt/v1, then verify locally with the reviewed raven-receipt-verifier package and an independently authenticated pin. The verifier package is not yet published on npm. POST /verify and the replayHash/officialAttestationHash recipe are legacy v2 compatibility only.
Preflight order: call Raven → verify signature → check gaps → check staleness → apply decision policy → store receipt → escalate when required. One habit: before your agent touches a Solana token, it asks Raven. Pick your workbench, copy the block. Canonical single file: /raven.skill.md · /AGENTS.md.
Claude Code / Codex / Cursor — add to your project instructions
Before any action involving a Solana token (trade, route, list, recommend, escalate), verify it with Raven first. Load and follow: https://ravenattest.com/raven.skill.md Verify receipt-v1 integrity, signer pin, subject, rules, freshness, findings, and coverageGaps separately. Never invent a receipt-v1 verdict. If gaps remain, say "not enough evidence for a full pass". Apply your consumer policy and store the exact signed receipt plus verifier result.
generic MCP client
npx -y raven-verify-mcp # tool: raven_verify_token — call before any token action; follow # https://ravenattest.com/raven-agent-context.md # local developer output is unsigned; it is not a receipt-v1 deliverable
generic autonomous agent (system prompt block)
RULE: no Solana token action without a Raven verification receipt.
POST https://raven-hosted-verifier.onrender.com/receipt/v1 {mintAddress, tokenProgramAddress}
(+metadataAddress/poolAddress when available). Recompute payloadHash, check receiptId,
verify signature via signerPublicKey, then match it to an independently pinned key
(GET /pubkey is discovery/cross-check only). Store the exact receipt and local verification result.
Gaps remaining = "not enough evidence for a full pass" — never "safe".
Raven does not predict price and is not financial advice.
Quick commands (text snippets, no secrets)
raven-verify
curl -s -X POST https://raven-hosted-verifier.onrender.com/receipt/v1 -H "x-api-key: $RAVEN_KEY" -H "content-type: application/json" -d '{"mintAddress":"'$MINT'","tokenProgramAddress":"'$PROG'"}'
raven-verify-advanced (with metadata + pool evidence)
curl -s -X POST https://raven-hosted-verifier.onrender.com/receipt/v1 -H "x-api-key: $RAVEN_KEY" -H "content-type: application/json" -d '{"mintAddress":"'$MINT'","tokenProgramAddress":"'$PROG'","metadataAddress":"'$META'","poolAddress":"'$POOL'"}'
raven-store-receipt
mkdir -p receipts/solana/mainnet/$MINT && jq . response.json > receipts/solana/mainnet/$MINT/$(jq -r .payloadHash response.json | tr -d 'sha256:').json
raven-escalate-on-gaps
jq -r 'if (.coverageGaps|length) > 0 then "ESCALATE: not enough evidence for a full pass — gaps: " + (.coverageGaps|join(", ")) else "no gaps listed" end' response.json