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
$ curl -s https://raven-hosted-verifier.onrender.com/pubkey$ 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"}'$ npx -y raven-verify-mcp # Claude Desktop config: { "mcpServers": { "raven": { "command": "npx", "args": ["-y", "raven-verify-mcp"] } } }
network: Virtuals Agent Commerce Protocol offering: solana_verify_token price: 0.1 USDC per job (escrow, signed deliverable, on-chain settlement)
Sample request & response
{
"mintAddress": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"tokenProgramAddress": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
}{
"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
1. Pin the signer key independently (today keyId rvk_c2997e90215279c2, ed25519 SPKI base64, domain "raven-official-attestation"); GET /pubkey is a same-host cross-check against that pin 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 pinned key 4. Re-run the same request: same slot evidence -> byte-identical findings
Ask & adjust (the working loop)
Agent handoff (recommended policy)
Using Raven from Codex / Claude / Cursor / Gemini
Action context
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 → evalsA 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.