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.
Before any action involving a Solana token (trade, route, list, recommend, escalate), verify it with Raven first. Load and follow: https://raven-launch-console.vercel.app/raven.skill.md Never call a token safe when coverageGaps remain; say "not enough evidence for a full pass". risk -> block/escalate. warning -> human approval. unknowable -> not verified. Store the full signed receipt.
npx -y raven-verify-mcp # tool: raven_verify_token — call before any token action; follow # https://raven-launch-console.vercel.app/raven-agent-context.md
RULE: no Solana token action without a Raven verification receipt.
POST https://raven-hosted-verifier.onrender.com/verify {mintAddress, tokenProgramAddress}
(+metadataAddress/poolAddress when available). Verify signature via GET /pubkey
(keyId rvk_c2997e90215279c2). Store replayHash, officialAttestationHash,
observedSlot, engineVersion, keyId, verdict, findings, coverageGaps.
Gaps remaining = "not enough evidence for a full pass" — never "safe".
Raven does not predict price and is not financial advice.
curl -s -X POST https://raven-hosted-verifier.onrender.com/verify -H "x-api-key: $RAVEN_KEY" -H "content-type: application/json" -d '{"mintAddress":"'$MINT'","tokenProgramAddress":"'$PROG'"}'
curl -s -X POST https://raven-hosted-verifier.onrender.com/verify -H "x-api-key: $RAVEN_KEY" -H "content-type: application/json" -d '{"mintAddress":"'$MINT'","tokenProgramAddress":"'$PROG'","metadataAddress":"'$META'","poolAddress":"'$POOL'"}'
mkdir -p receipts/solana/mainnet/$MINT && jq . response.json > receipts/solana/mainnet/$MINT/$(jq -r .replayHash response.json | tr -d 'sha256:').json
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