RAVEN. / skills

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