{
  "name": "rollcage",
  "version": "0.2.0",
  "status": "planned: the MCP server is not published yet",
  "description": "Safety for AI agents that hold money on Solana. Live today over HTTP: the agent wallet check. Crash tests, co-signing and certificates are planned.",
  "homepage": "https://www.rollcage.tech",
  "use_today": {
    "note": "Use the HTTP API today (curl / fetch); the MCP server and skill package ship when the API leaves beta.",
    "http": "GET https://www.rollcage.tech/api/wallet-check?address=<wallet>",
    "curl": "curl \"https://www.rollcage.tech/api/wallet-check?address=<wallet>\"",
    "docs": "https://www.rollcage.tech/docs.html#wallet-check",
    "skill": "https://www.rollcage.tech/agents/SKILL.md",
    "openapi": "https://www.rollcage.tech/agents/openapi.yaml"
  },
  "payment": {
    "beta": "Beta: calls are free; the x402 flow is the planned paid tier and is not enforced.",
    "planned_protocol": "x402",
    "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
    "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
  },
  "tools": [
    {
      "name": "rollcage.wallet_check",
      "status": "live over HTTP; not yet an MCP tool",
      "http": "GET /api/wallet-check?address=<wallet>",
      "description": "Read a Solana wallet's last 100 mainnet transactions, token accounts and approvals. Returns score (0-100), verdict (looks disciplined, needs a cosigner, would be held), would_hold, deductions and the evidence.",
      "input": { "address": "string (Solana wallet address or explorer link)" },
      "price_usdc": 0
    },
    {
      "name": "rollcage.crash_test",
      "status": "planned, private beta",
      "http": "POST /api/crash-tests",
      "description": "Run an agent through adversarial scenarios in a mainnet-clone sandbox. Returns score, stars, per-family pass/fail and every failure with the layer that stops it.",
      "input": { "target": "string (https endpoint or repo URL)", "suite": "core | full" },
      "price_usdc": { "core": 0, "full": 25 }
    },
    {
      "name": "rollcage.cosign",
      "status": "planned, private beta",
      "http": "POST /api/cosign",
      "description": "Simulate, policy-check and mandate-check a transaction; returns allow (with the co-signed transaction), hold or block with a reason.",
      "input": { "transaction_b64": "string", "agent_id": "string" },
      "price_usdc": 0.001
    },
    {
      "name": "rollcage.certificate",
      "status": "planned, private beta",
      "http": "GET /api/certificates/{id}",
      "description": "Look up a public crash-test certificate (score, stars, suite version, scope, attestation id).",
      "input": { "id": "string" },
      "price_usdc": 0
    }
  ]
}
