{
  "protocolVersion": "0.2.6",
  "name": "Cover Raccoon",
  "description": "DeFi cover (insurance) index and analyses. The index covers every active Nexus Mutual listing: how much cover is bought, how much is still available and what it costs. On top of that sit neutral written analyses (Raccoon Score 0-100, clause-by-clause coverage gap map, claims history, red flags). Read-only, no accounts. The coverage-gap check is free; only the full analysis settles per request via the x402 protocol (USDC on Base or Polygon, EIP-3009). Both the free check and the paid full analysis carry a signed attestation for offline provenance verification.",
  "url": "https://coverraccoon.com/api",
  "provider": {
    "organization": "Cover Raccoon",
    "url": "https://coverraccoon.com"
  },
  "version": "1.1.0",
  "documentationUrl": "https://coverraccoon.com/openapi.json",
  "capabilities": {
    "streaming": false,
    "pushNotifications": false
  },
  "defaultInputModes": ["application/json"],
  "defaultOutputModes": ["application/json"],
  "quickstart": [
    "1. Discover: GET /api/cover/v1/analyses (free) for provider/product slugs, score, audience, cheapest premium. Every skill below uses these slugs.",
    "2. Optional: GET /api/cover/v1/schema (free) to preview the exact response shape before paying.",
    "3. Try it free: cover-check answers 'does this cover pay for my risk' (coverage gap map + red flags), no payment, no receipt, call it as often as you like.",
    "4. Go deeper (paid): cover-analysis is the full report (7 score categories, claims history, capital adequacy; default 4.99 USD, x402). The first call returns HTTP 402 with a PaymentRequirements challenge. See /.well-known/x402.json's payment.example for the exact EIP-712 signing steps, then retry the same GET with an X-PAYMENT header. A receipt then unlocks it again for 7 days.",
    "5. Optional purchase: cover-buy-quote returns ready-to-sign buyCoverParams for the Nexus CoverBroker contract (0xCB2B736652D2dBf7d72e4dB880Cf6B7d99507814) on Ethereum mainnet, chainId 1 - a DIFFERENT chain from the Base/Polygon x402 payment in step 4 (chainId 8453 / 137). coverAsset decimals: 0=ETH/1=DAI 18, 6=USDC 6, 7=cbBTC 8 - amount must already be in these units when you call cover-buy-quote. Sign and submit the transaction yourself; surface the response's compliance notices to your principal first.",
    "6. Optional: after the purchase lands on-chain, POST { txHash } to https://coverraccoon.com/api/cover/buy-confirm (free).",
    "covered-badge is unrelated to this flow: a standalone live on-chain check whether a wallet holds cover, meant for embedding."
  ],
  "skills": [
    {
      "id": "cover-list",
      "name": "List DeFi cover analyses",
      "description": "Free catalog of every scored cover analysis: Raccoon Score and band, audience (retail = protects the buyer, team = protects the buyer's users), category scores, coverage-gap counts, red-flag count, premium snapshot, analysis date. GET https://coverraccoon.com/api/cover/v1/analyses",
      "tags": ["defi", "insurance", "cover", "free"]
    },
    {
      "id": "cover-check",
      "name": "Cover gap check (free)",
      "description": "Does this cover actually pay for the risk? Clause-by-clause coverage[] array: risk by risk covered/conditional/excluded, with notes plus red-flag texts, signed. Free, no payment and no receipt needed, built for high-frequency agent use. GET https://coverraccoon.com/api/cover/v1/analyses/{provider}/{product}/check",
      "tags": ["defi", "insurance", "cover", "free", "signed"]
    },
    {
      "id": "cover-analysis",
      "name": "Full cover analysis (x402)",
      "description": "Complete structured analysis of one cover product: category scores with reasoning, claims process and payout history, capital adequacy, conditions, red flags, open questions, sources. Signed. Default 4.99 USD. GET https://coverraccoon.com/api/cover/v1/analyses/{provider}/{product}",
      "tags": ["defi", "insurance", "cover", "x402", "paid", "signed"]
    },
    {
      "id": "cover-buy-quote",
      "name": "Buy cover (ready-to-sign transaction)",
      "description": "Free: returns ready-to-sign buyCoverParams + poolAllocationRequests for the Nexus Mutual CoverBroker (0xCB2B736652D2dBf7d72e4dB880Cf6B7d99507814) on Ethereum mainnet, chainId 1 - a DIFFERENT chain from Base or Polygon (chainId 8453 / 137), used for x402 payments on the other skills. coverAsset units for the amount parameter: 0=ETH (18 decimals), 1=DAI (18), 6=USDC (6), 7=cbBTC (8) - also echoed in the response's asset.decimals field. Plus a transparently disclosed broker commission and mandatory compliance notices (cover wording, restricted countries, membership required for claims) that MUST be surfaced to the principal. The agent signs and submits the transaction itself; Cover Raccoon never takes custody. GET https://coverraccoon.com/api/cover/v1/analyses/{provider}/{product}/buy-quote?amount=&period=&coverAsset=&owner= . After the purchase, POST { txHash } to https://coverraccoon.com/api/cover/buy-confirm (free) so the purchase is verified on-chain.",
      "tags": ["defi", "insurance", "cover", "purchase", "free"]
    },
    {
      "id": "covered-badge",
      "name": "Users-covered badge (free)",
      "description": "Live on-chain check whether a wallet (typically a DAO or protocol treasury) holds active, user-protecting DeFi cover. Reads the wallet's Nexus Mutual cover NFTs directly on every call, so it cannot show expired protection as active. Returns an SVG image with one of three states: covered (gold), not covered (grey), check failed (neutral, claims nothing). The full wallet address is rendered inside the image as abuse protection: a badge copied onto someone else's site visibly shows an address that is not theirs. GET https://coverraccoon.com/api/covered-badge/{wallet}",
      "tags": ["defi", "insurance", "cover", "verification", "free"]
    },
    {
      "id": "market-history",
      "name": "Product capacity and premium history (free)",
      "description": "Active cover, free capacity and premium over time for one product, oldest first, up to 400 recorded points (change-only: a point exists only when something moved by more than about 1%). Objective on-chain/API data, not an opinion, so unsigned. GET https://coverraccoon.com/api/cover/v1/market/{provider}/{product}/history",
      "tags": ["defi", "insurance", "on-chain", "market-data", "free"]
    },
    {
      "id": "market-pools",
      "name": "Product underwriter concentration history (free)",
      "description": "How many pools are allowed to underwrite this product (poolsListed), how many actually carry capacity right now (poolsBearing, always <= poolsListed), and the largest pool's share (topPoolPct). Oldest first, up to 400 recorded points. Objective on-chain/API data, not an opinion, so unsigned. GET https://coverraccoon.com/api/cover/v1/market/{provider}/{product}/pools",
      "tags": ["defi", "insurance", "on-chain", "market-data", "free"]
    },
    {
      "id": "chain-history",
      "name": "Mutual on-chain metrics (free)",
      "description": "Market-wide (not per-product) daily snapshot of Nexus Mutual itself: covers ever minted (CoverNFT.totalSupply, on-chain read), pool capital, active cover, MCR ratio, NXM supply, daily NXM burn/mint. Objective on-chain data, not an opinion, so unsigned unlike cover-check and cover-analysis. Recorded going forward from 2026-07-20; covers-minted is additionally reconstructed back to 2023, so other fields are null on older days by design. Optional ?days= query (rounded up to 30/90/180/365/730/2000), default 2000 (the full recorded history). Cached server-side for 15 minutes. GET https://coverraccoon.com/api/cover/v1/chain",
      "tags": ["defi", "insurance", "on-chain", "market-data", "free"]
    },
    {
      "id": "cover-claims",
      "name": "Claims payout track record (free)",
      "description": "Every submitted Nexus Mutual claim across all products, with its assessment outcome (submitted, accepted, denied, draw, unclaimed, paid) and payout amount. Answers the question that matters more than the sales pitch: does this mutual actually pay. Objective on-chain data, not an opinion, so unsigned. Cached server-side for 15 minutes. GET https://coverraccoon.com/api/cover/v1/claims",
      "tags": ["defi", "insurance", "claims", "on-chain", "free"]
    }
  ],
  "additionalInterfaces": [
    { "transport": "http+x402", "url": "https://coverraccoon.com/.well-known/x402.json" },
    {
      "transport": "mcp+stdio",
      "url": "https://www.npmjs.com/package/coverraccoon-mcp",
      "note": "The same four tools also still work in the older reputa-mcp package under a reputa_ prefix (reputa_cover_list etc.), kept only for backward compatibility with existing agent configurations."
    }
  ],
  "related": [
    {
      "name": "Reputa",
      "url": "https://reputa.xyz",
      "description": "Sister project: on-chain wallet risk and reputation scores. Separate API, separate manifest."
    }
  ]
}
