{
  "openapi": "3.1.0",
  "info": {
    "title": "WickWarden public evidence API",
    "version": "1.0.0",
    "description": "The Market Has Eyes. Free public evidence; no trading, private Journal or payment tools. Only Solana collection is live. Sponsored Boosts never influence scores or Ledger evidence."
  },
  "servers": [
    {
      "url": "https://www.wickwarden.xyz"
    }
  ],
  "paths": {
    "/api/ledger/status": {
      "get": {
        "summary": "Original Ledger counts and Pick outcome cohorts",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Dated public evidence. Preserve unknowns and source timestamps."
          },
          "400": {
            "description": "Invalid bounded input"
          },
          "404": {
            "description": "Matching evidence not found"
          },
          "429": {
            "description": "Shared free-agent allowance exhausted; Retry-After provided"
          },
          "503": {
            "description": "Evidence source/storage unavailable; do not infer a clean result"
          }
        }
      }
    },
    "/api/ledger/list": {
      "get": {
        "summary": "Paginated preserved observations",
        "parameters": [
          {
            "name": "kind",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": ""
          },
          {
            "name": "q",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": ""
          },
          {
            "name": "before",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": ""
          },
          {
            "name": "chainId",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": ""
          },
          {
            "name": "category",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": ""
          }
        ],
        "responses": {
          "200": {
            "description": "Dated public evidence. Preserve unknowns and source timestamps."
          },
          "400": {
            "description": "Invalid bounded input"
          },
          "404": {
            "description": "Matching evidence not found"
          },
          "429": {
            "description": "Shared free-agent allowance exhausted; Retry-After provided"
          },
          "503": {
            "description": "Evidence source/storage unavailable; do not infer a clean result"
          }
        }
      }
    },
    "/api/ledger/event": {
      "get": {
        "summary": "Original observation and outcomes",
        "parameters": [
          {
            "name": "event",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "Use an ID returned by ledger/list"
          }
        ],
        "responses": {
          "200": {
            "description": "Dated public evidence. Preserve unknowns and source timestamps."
          },
          "400": {
            "description": "Invalid bounded input"
          },
          "404": {
            "description": "Matching evidence not found"
          },
          "429": {
            "description": "Shared free-agent allowance exhausted; Retry-After provided"
          },
          "503": {
            "description": "Evidence source/storage unavailable; do not infer a clean result"
          }
        }
      }
    },
    "/api/ledger/export": {
      "get": {
        "summary": "Raw immutable hash material",
        "parameters": [
          {
            "name": "after",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": ""
          }
        ],
        "responses": {
          "200": {
            "description": "Dated public evidence. Preserve unknowns and source timestamps."
          },
          "400": {
            "description": "Invalid bounded input"
          },
          "404": {
            "description": "Matching evidence not found"
          },
          "429": {
            "description": "Shared free-agent allowance exhausted; Retry-After provided"
          },
          "503": {
            "description": "Evidence source/storage unavailable; do not infer a clean result"
          }
        }
      }
    },
    "/api/ledger/graveyard": {
      "get": {
        "summary": "Observed collapses; not verified rugs",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Dated public evidence. Preserve unknowns and source timestamps."
          },
          "400": {
            "description": "Invalid bounded input"
          },
          "404": {
            "description": "Matching evidence not found"
          },
          "429": {
            "description": "Shared free-agent allowance exhausted; Retry-After provided"
          },
          "503": {
            "description": "Evidence source/storage unavailable; do not infer a clean result"
          }
        }
      }
    },
    "/api/warden/health": {
      "get": {
        "summary": "Live collector, discovery and outcome continuity",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Dated public evidence. Preserve unknowns and source timestamps."
          },
          "400": {
            "description": "Invalid bounded input"
          },
          "404": {
            "description": "Matching evidence not found"
          },
          "429": {
            "description": "Shared free-agent allowance exhausted; Retry-After provided"
          },
          "503": {
            "description": "Evidence source/storage unavailable; do not infer a clean result"
          }
        }
      }
    },
    "/api/warden/report": {
      "get": {
        "summary": "Weekly cohort and honestly scoped metrics",
        "parameters": [
          {
            "name": "week",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "Monday YYYY-MM-DD, UTC"
          },
          {
            "name": "snapshot",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "Optional immutable published snapshot ID"
          }
        ],
        "responses": {
          "200": {
            "description": "Dated public evidence. Preserve unknowns and source timestamps."
          },
          "400": {
            "description": "Invalid bounded input"
          },
          "404": {
            "description": "Matching evidence not found"
          },
          "429": {
            "description": "Shared free-agent allowance exhausted; Retry-After provided"
          },
          "503": {
            "description": "Evidence source/storage unavailable; do not infer a clean result"
          }
        }
      }
    },
    "/api/warden/calls": {
      "get": {
        "summary": "Every matching weekly call through pagination",
        "parameters": [
          {
            "name": "week",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": ""
          },
          {
            "name": "horizon",
            "in": "query",
            "schema": {
              "type": "integer"
            },
            "description": ""
          },
          {
            "name": "kind",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": ""
          },
          {
            "name": "outcome",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": ""
          },
          {
            "name": "before",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": ""
          },
          {
            "name": "head",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": ""
          },
          {
            "name": "asOf",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": ""
          }
        ],
        "responses": {
          "200": {
            "description": "Dated public evidence. Preserve unknowns and source timestamps."
          },
          "400": {
            "description": "Invalid bounded input"
          },
          "404": {
            "description": "Matching evidence not found"
          },
          "429": {
            "description": "Shared free-agent allowance exhausted; Retry-After provided"
          },
          "503": {
            "description": "Evidence source/storage unavailable; do not infer a clean result"
          }
        }
      }
    },
    "/api/warden/incidents": {
      "get": {
        "summary": "Detected incidents and recoveries",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Dated public evidence. Preserve unknowns and source timestamps."
          },
          "400": {
            "description": "Invalid bounded input"
          },
          "404": {
            "description": "Matching evidence not found"
          },
          "429": {
            "description": "Shared free-agent allowance exhausted; Retry-After provided"
          },
          "503": {
            "description": "Evidence source/storage unavailable; do not infer a clean result"
          }
        }
      }
    },
    "/api/risk/{mint}": {
      "get": {
        "summary": "Free dated Solana risk evidence; one-hour shared cache",
        "parameters": [
          {
            "name": "event",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "Pin an exact historical risk observation"
          },
          {
            "name": "mint",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Solana mint; only Solana risk checks are active"
          }
        ],
        "responses": {
          "200": {
            "description": "Dated public evidence. Preserve unknowns and source timestamps."
          },
          "400": {
            "description": "Invalid bounded input"
          },
          "404": {
            "description": "Matching evidence not found"
          },
          "429": {
            "description": "Shared free-agent allowance exhausted; Retry-After provided"
          },
          "503": {
            "description": "Evidence source/storage unavailable; do not infer a clean result"
          }
        }
      }
    },
    "/mcp": {
      "post": {
        "summary": "Stateless Streamable HTTP MCP, official SDK v1",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "method"
                ],
                "properties": {
                  "jsonrpc": {
                    "const": "2.0"
                  },
                  "method": {
                    "type": "string"
                  },
                  "id": {},
                  "params": {
                    "type": "object"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "MCP JSON-RPC response; negotiate protocol through initialize"
          },
          "202": {
            "description": "Accepted notification"
          },
          "400": {
            "description": "Invalid or oversized single JSON-RPC message"
          },
          "403": {
            "description": "Disallowed browser Origin"
          },
          "405": {
            "description": "POST only; GET stream not offered"
          },
          "429": {
            "description": "Shared sample limit; Retry-After provided"
          },
          "503": {
            "description": "Public evidence temporarily unavailable"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "WardenSubject": {
        "$ref": "https://www.wickwarden.xyz/evidence-schema.json"
      }
    }
  },
  "x-warden-tier": {
    "mode": "free-sample",
    "priceUsdc": "0",
    "paidX402Active": false
  },
  "x-warden-agent-measurement": "MCP tool invocations and REST requests declaring X-Warden-Client: agent; no independent autonomous-AI identity claim."
}
