RAVEN. / workbench

Workbench

Everything a developer or agent needs to call Raven and verify what comes back. Copy, run, inspect. No live demo box by design — verdicts are signed and cost RPC; get a key and run your own.

Call it

pubkey — no auth
$ curl -s https://raven-hosted-verifier.onrender.com/pubkey
verify — x-api-key
$ curl -s -X POST https://raven-hosted-verifier.onrender.com/verify \
  -H "x-api-key: $RAVEN_KEY" -H "content-type: application/json" \
  -d '{"mintAddress":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
       "tokenProgramAddress":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"}'
mcp — local, free
$ npx -y raven-verify-mcp
# Claude Desktop config:
{ "mcpServers": { "raven": { "command": "npx", "args": ["-y", "raven-verify-mcp"] } } }
acp — agent-to-agent, 0.1 USDC
network:  Virtuals Agent Commerce Protocol
offering: solana_verify_token
price:    0.1 USDC per job (escrow, signed deliverable, on-chain settlement)

Sample request & response

request.json
{
  "mintAddress": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
  "tokenProgramAddress": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
}
response.json (abridged real receipt — full versions on /receipts)
{
  "verdict": "risk",
  "engineOutcome": "risk",
  "reason": "issuer_control_finding_present",
  "findingCodes": ["issuer_control.mint_authority_active",
                   "issuer_control.freeze_authority_active",
                   "venue.infrastructure_tier_immutable"],
  "coverageGaps": ["liquidity", "top_holders", "deployer_outcomes"],
  "engineVersion": "raven-solana-live-scan@0.1.0",
  "rpc": { "observedSlot": 424327592 },
  "replayHash": "sha256:7138cae394a76527bacef4885...",
  "officialAttestationHash": "sha256:9c01d49a8c7887bb2136fc3...",
  "keyId": "rvk_c2997e90215279c2",
  "signature": "wXKUnCWSqW4Od6k/dGA2uPcDU...",
  "signatureAlg": "ed25519"
}

Verify the signature

verify-receipt — 4 steps
1. GET /pubkey -> keyId rvk_c2997e90215279c2, ed25519 SPKI base64,
   domain "raven-official-attestation"
2. Recompute replayHash from the response fields via canonical JSON
   (recipe + exact preimage: /receipt-test-vector.json)
3. Check replayHash matches, then verify signature over
   utf8(domain) || officialAttestationHash with the published key
4. Re-run the same request: same slot evidence -> byte-identical findings

Ask & adjust (the working loop)

Run Raven with mintAddress + tokenProgramAddress.
Inspect the verdict. risk ends the conversation; pass-grade continues.
Inspect coverageGaps. Anything listed was NOT evaluated — treat it as unverified, not as fine.
Rerun with more evidence when you have it: metadataAddress tightens metadata checks; poolAddress (Raydium CPMM) adds liquidity + vault-custody evidence.
Store the signed receipt. It proves later exactly what Raven said, about which mint, at which slot, under which engine version.

Agent handoff (recommended policy)

Agent verifies the token before any trade/listing/recommendation step.
Agent stores the receipt alongside the action it gates — auditable forever.
Escalate to a human ONLY on risk, warning, or unknowable — pass-grade verdicts with acceptable gaps proceed automatically under your policy. Raven never says "safe"; with gaps remaining the honest reading is not enough evidence for a full pass.

Using Raven from Codex / Claude / Cursor / Gemini

No human browsing required. Copy this into your agent workbench: the Agent Workbench Pack bundles context, skill, and prompt recipes — or grab the single-file skill: /raven-skill.md.
Load raven-agent-context.md as context; adopt raven-agent-skill.md as the operating skill.
Check stored receipts first (deterministic lookup per receipt-memory-policy.md), then call MCP or the hosted API; store the new raw receipt.
Escalate by policy — risk/warning/unknowable go to a human; storage failure never changes a verdict.

Action context

What happens after Raven? Pick the action; get the policy reminder.

Check staleness according to your integrator policy.

Agent-first, UI-second

Raven pages are for humans to inspect. Raven JSON, OpenAPI, MCP, ACP, receipts, and evals are for agents to use — agents should prefer structured endpoints over browsing. Copy points: skill snippets · receipt archive schema · key verification · agent preflight · payment policy.

Request a key Test Raven first → evals

A review console, not an execution console

The workbench exists so a human (or agent) can inspect the receipt — verdict, findings, coverage gaps, keyId, engine version, observed slot, staleness — request missing evidence, re-run verification, or escalate. It signs nothing and submits nothing. UI badges are summaries; the exact signed receipt is the artifact. Human review can approve business action under your policy; it cannot validate an invalid signature or unknown key.