{
  "schema_version": "donotact_agent_manifest_v2",
  "name": "Do Not Act",
  "canonical_url": "https://donotact.com/",
  "support_email": "support@donotact.com",
  "support_address": "support@donotact.com",
  "canonical_description": "Do Not Act is a fail-closed Risk Gateway for prediction-market agents before they spend.",
  "short_description": "Action-aware Risk Gateway checks, safe operating limits, dispute lifecycle, early-warning webhooks, resolution-risk, signed evidence, public proof cases and MCP surfaces for prediction-market agents.",
  "version": "1.2.0",
  "status": "mvp_live_soft_launch_ready",
  "supported_venues": [
    "polymarket"
  ],
  "contract_venues": [
    "polymarket",
    "kalshi"
  ],
  "planned_venues": [
    "kalshi"
  ],
  "endpoints": [
    {
      "method": "GET",
      "path": "/v1/preflight/{venue}/{market_id}",
      "auth": "X-API-Key",
      "purpose": "Action-aware Risk Gateway guardrail from public venue evidence, including component scores and conservative safe operating limits."
    },
    {
      "method": "GET",
      "path": "/v1/resolution-risk/{venue}/{market_id}",
      "auth": "X-API-Key",
      "purpose": "Resolution-rule ambiguity and dispute-risk diagnostics."
    },
    {
      "method": "GET",
      "path": "/v1/dispute/{venue}/{market_id}",
      "auth": "X-API-Key",
      "purpose": "UMA dispute lifecycle status history and ledger refresh state."
    },
    {
      "method": "POST",
      "path": "/v1/watchlist",
      "auth": "X-API-Key",
      "purpose": "Add or update a market watchlist item; optional webhook_url enables push early-warning."
    },
    {
      "method": "POST",
      "path": "/v1/webhooks/test",
      "auth": "X-API-Key",
      "purpose": "Send one synthetic webhook test event without creating a watchlist item or storing the URL."
    },
    {
      "method": "GET",
      "path": "/v1/watchlist",
      "auth": "X-API-Key",
      "purpose": "List active market watchlist items for the API key."
    },
    {
      "method": "DELETE",
      "path": "/v1/watchlist/{venue}/{market_id}",
      "auth": "X-API-Key",
      "purpose": "Deactivate one watched market."
    },
    {
      "method": "GET",
      "path": "/v1/alerts",
      "auth": "X-API-Key",
      "purpose": "Read early-warning alert feed and delivery status for webhooks/email."
    },
    {
      "method": "GET",
      "path": "/v1/dispute-history.csv",
      "auth": "X-API-Key",
      "purpose": "Paid rolling CSV export of dispute-ledger snapshots for research, monitoring, and post-run audit. No monetary-performance claims."
    },
    {
      "method": "WEBSOCKET",
      "path": "/v1/alerts/stream",
      "auth": "first JSON message {\"api_key\":\"...\"}; never query string",
      "purpose": "Authenticated alert snapshots over WebSocket for agents that prefer streaming over polling."
    },
    {
      "method": "WEBSOCKET",
      "path": "/v1/preflight/stream",
      "auth": "first JSON message {\"api_key\":\"...\",\"venue\":\"polymarket\",\"market_id\":\"...\"}; never query string",
      "purpose": "Authenticated live Risk Gateway snapshots for agents that need lower-latency verdict refresh than polling. Requires paid monitoring entitlement."
    },
    {
      "method": "POST",
      "path": "/v1/receipts/verify",
      "auth": "none",
      "purpose": "Verify a captured DoNotAct diagnostic response receipt against the public receipt key. Read-only; no account mutation."
    },
    {
      "method": "GET",
      "path": "/x402/v1/dispute/{venue}/{market_id}",
      "auth": "x402 PAYMENT-SIGNATURE, x-payment, or X-402-Tx-Hash",
      "purpose": "Canonical machine-payment route for one-off dispute diagnostics at 0.01 USDC on Polygon; standard CDP/x402 settlement is verified and indexed in CDP Bazaar, while tx hashes are verified on-chain and consumed once."
    },
    {
      "method": "GET",
      "path": "/x402/tx/v1/dispute/{venue}/{market_id}",
      "auth": "X-402-Tx-Hash",
      "purpose": "Polygon USDC transaction-hash compatibility route; each confirmed hash unlocks one diagnostic once."
    }
  ],
  "verdicts": [
    "READY",
    "CAUTION",
    "DO_NOT_ACT",
    "INSUFFICIENT_EVIDENCE"
  ],
  "risk_gateway_decisions": [
    "READY",
    "CAUTION",
    "DO_NOT_ACT",
    "INSUFFICIENT_EVIDENCE"
  ],
  "product_direction_v2": {
    "uma_dispute_lifecycle": "live_m1_m2",
    "dispute_early_warning": "live_watchlist_alerts_webhook_retry",
    "public_dispute_risk_feed": "live_m6",
    "public_dispute_event_log": "live_public_discovery",
    "public_proof_cases": "live_public_discovery",
    "public_proof_root": "live_tamper_evident_merkle_manifest",
    "launch_proof_pack": "live_public_launch_evidence",
    "public_pre_action_evidence": "live_public_discovery_unmatched",
    "resolved_uma_proof_cases": "live_public_discovery_signed_backtest_labelled",
    "individual_public_proof_case_pages": "live_public_discovery",
    "risk_gateway_preflight": "live_action_aware_guardrail",
    "safe_operating_limits": "live_conservative_public_orderbook_limits",
    "liquidity_confidence": "live_clob_depth_confidence_for_requested_action",
    "safe_size_source": "computed_from_live_clob_depth_not_gamma_only_flag",
    "webhook_test_delivery": "live_authenticated_synthetic_webhook_test",
    "preflight": "live_action_aware_guardrail",
    "source_backed_operational_diagnostics": "live_risk_gateway_v1_2",
    "x402_standard_cdp_payment": "live_verified_payment_signature_cdp_settlement",
    "x402_cdp_bazaar_indexing": "live_indexed_after_standard_cdp_settlement",
    "x402_external_wallet_payment": "live_verified_external_payer_polygon_usdc_tx_hash_fallback",
    "public_runtime_status": "live_process_local_health_signal"
  },
  "integration_paths": {
    "direct_http": "Use authenticated REST endpoints with X-API-Key and X-DONOTACT-Source.",
    "first_integration": "Start at /docs/first-integration for demo-key curl checks and a drop-in Python guard.",
    "pre_trade_review": "Use /docs/pre-trade-review when an agent needs a machine-readable /review contract immediately before trade(). Builders who want placement help can submit repo/flow context at /integration-review.",
    "python_sdk": "Use client.preflight(...) for action-aware Risk Gateway checks, and client.agent_guard(...) for composed dispute/watchlist/alerts workflows.",
    "javascript_sdk": "Use client.preflight(...) for action-aware Risk Gateway checks, and client.agentGuard(...) for composed dispute/watchlist/alerts workflows.",
    "mcp": "Use /mcp.json or /.well-known/mcp.json for MCP install metadata. The runtime exposes donotact_preflight as the default pre-action Risk Gateway tool, plus donotact_dispute, donotact_watchlist_add, donotact_alerts, and donotact_dispute_history_csv for lifecycle monitoring and paid ledger export.",
    "distribution": "Use /docs/distribution-kit and /examples/distribution-kit.json for copy-ready README, MCP, n8n, awesome-list and agent policy snippets. Prepared for controlled publication; not for spam.",
    "x402": "Use /x402/v1/dispute with a standard x402 v2 PAYMENT-SIGNATURE/x-payment. The standard CDP/x402 path has been verified end to end on the canonical route with a paid 200 diagnostic response and CDP Bazaar indexing. Current one-off price is 0.01 USDC on Polygon. X-402-Tx-Hash remains available after a confirmed exact Polygon USDC transfer, and /x402/tx remains a compatibility alias.",
    "mcp_registry": "Prepared MCP Registry server cards are available at /mcp-server.json, /.well-known/mcp-server.json, and /.well-known/mcp/server-card.json; official registry publication is pending PyPI package publication and authorized mcp-publisher publish.",
    "remote_mcp": "Connect to https://donotact.com/mcp using MCP Streamable HTTP. Send Authorization: Bearer <DONOTACT_API_KEY>; never put keys in URLs."
  },
  "mcp_tools": [
    "donotact_preflight",
    "donotact_resolution_risk",
    "donotact_dispute",
    "donotact_watchlist_add",
    "donotact_alerts",
    "donotact_dispute_history_csv"
  ],
  "hard_constraints": {
    "execution": false,
    "custody": false,
    "key_material": false,
    "order_authorization": false,
    "order_routing": false
  },
  "recommended_agent_summary": "Use Do Not Act as the stop/go diagnostics layer before a prediction-market agent spends. Preserve verdicts, Risk Gateway decisions, component scores, risk_factors, risk_factor_bitmap, evidence_set, safe operating limits, receipts, diagnostic schema, no_trade_reasons, what_would_change_this, and source evidence. Do not treat Do Not Act as a broker, custodian, signer, or execution venue.",
  "links": {
    "llms": "/llms.txt",
    "well_known_llms": "/.well-known/llms.txt",
    "full_agent_context": "/llms-full.txt",
    "mcp_manifest": "/mcp.json",
    "well_known_mcp_manifest": "/.well-known/mcp.json",
    "mcp_docs": "/docs/mcp",
    "mcp_source_archive": "/downloads/mcp-donotact-0.3.0.tar.gz",
    "public_dispute_risk": "/dispute-risk",
    "public_dispute_risk_json": "/dispute-risk.json",
    "public_dispute_events": "/dispute-events",
    "public_dispute_events_json": "/dispute-events.json",
    "public_dispute_events_atom": "/dispute-events.atom",
    "public_pre_action_evidence": "/pre-action-evidence",
    "public_pre_action_evidence_json": "/pre-action-evidence.json",
    "public_proof_cases": "/proof-cases",
    "public_proof_cases_json": "/proof-cases.json",
    "public_proof_cases_atom": "/proof-cases.atom",
    "public_proof_root": "/proof-root.json",
    "well_known_public_proof_root": "/.well-known/donotact-proof-root.json",
    "launch_proof_pack": "/docs/launch-proof",
    "launch_proof_json": "/examples/launch-proof.json",
    "public_proof_case_url_pattern": "/proof-cases/{case_id}",
    "public_proof_case_json_pattern": "/proof-cases/{case_id}.json",
    "example_public_proof_case": "/proof-cases/donotact-polymarket-580810-uma-dispute-detected",
    "example_public_proof_case_json": "/proof-cases/donotact-polymarket-580810-uma-dispute-detected.json",
    "resolved_proof_cases_json": "/resolved-proof-cases.json",
    "resolved_proof_case_url_pattern": "/resolved-proof-cases/{case_id}",
    "resolved_proof_case_json_pattern": "/resolved-proof-cases/{case_id}.json",
    "example_resolved_proof_case": "/resolved-proof-cases/donotact-polymarket-580810-resolved-uma-dispute",
    "example_resolved_proof_case_json": "/resolved-proof-cases/donotact-polymarket-580810-resolved-uma-dispute.json",
    "openapi": "/openapi.json",
    "public_runtime_status": "/status",
    "public_runtime_status_json": "/status.json",
    "agent_docs": "/docs/agents",
    "start": "/start",
    "pricing": "/pricing",
    "first_integration": "/docs/first-integration",
    "pre_trade_review": "/docs/pre-trade-review",
    "integration_review": "/integration-review",
    "why_paid_access": "/docs/why-pay",
    "default_safety_check": "/docs/default-safety-check",
    "pre_action_evidence": "/docs/pre-action-evidence",
    "distribution_kit": "/docs/distribution-kit",
    "distribution_kit_json": "/examples/distribution-kit.json",
    "n8n_dispute_guard_workflow": "/examples/n8n-dispute-guard-workflow.json",
    "product_truth": "/product-truth.md",
    "use_cases": "/use-cases.md",
    "preflight_example": "/examples/preflight-response-v1_1.json",
    "resolution_risk_example": "/examples/resolution-risk-response-v1_1.json",
    "sitemap": "/sitemap.xml",
    "robots": "/robots.txt",
    "rejection_classes": "/docs/rejection-classes",
    "rejection_classes_json": "/rejection-classes.json",
    "venue_error_references": "/errors",
    "receipt_docs": "/docs/receipts",
    "accuracy_scoreboard": "/accuracy.json",
    "sdk_integration": "/examples/sdk-integration.md",
    "integration_badge": "/badge",
    "preflight_gated_badge_svg": "/badge/preflight-gated.svg",
    "receipt_public_key": "/.well-known/donotact-receipt-key.json",
    "proof_root": "/proof-root.json",
    "monthly_incident_reports": "/docs/monthly-incident-reports",
    "access_and_rate_limits": "/docs/access",
    "integration_proof": "/docs/integration-proof",
    "agent_evaluation": "/docs/agent-evaluation",
    "agent_evaluation_golden_prompts": "/examples/agent-evaluation-golden-prompts.json",
    "watchlist_docs": "/docs/agents",
    "alert_feed_docs": "/docs/agents",
    "machine_payments": "/docs/x402",
    "x402_discovery": "/.well-known/x402",
    "x402_payment_proof": "/examples/x402-payment-proof.json",
    "x402_standard_dispute": "/x402/v1/dispute/{venue}/{market_id}",
    "x402_tx_hash_dispute": "/x402/tx/v1/dispute/{venue}/{market_id}",
    "mcp_server_json": "/mcp-server.json",
    "well_known_mcp_server_json": "/.well-known/mcp-server.json",
    "mcp_server_card": "/.well-known/mcp/server-card.json",
    "remote_mcp": "/mcp",
    "discovery_docs": "/docs/discovery",
    "receipt_verifier": "/v1/receipts/verify",
    "diagnostic_schema": "/diagnostic.schema.json",
    "dispute_history_csv": "/v1/dispute-history.csv",
    "alert_stream": "wss://donotact.com/v1/alerts/stream",
    "preflight_stream": "wss://donotact.com/v1/preflight/stream"
  },
  "agent_behavior": {
    "dispute_event_boundary": "The public event log distinguishes fresh new_dispute_detected rows from historical_dispute_backfill rows. voter_conflict_status=not_indexed_yet is not evidence of voter conflict.",
    "proof_case_boundary": "Public proof cases and resolved UMA proof cases prove diagnostic stop conditions and source evidence. Resolved cases are backtest-labelled unless a stored live verdict predates an explicit dispute timestamp. They do not claim avoided monetary loss, user position, ROI, fill, or trading performance.",
    "preserve_fields": [
      "alert_type",
      "no_trade_reasons",
      "not_advice",
      "receipt",
      "risk_gateway_context",
      "component_scores",
      "risk_factors",
      "risk_factor_bitmap",
      "risk_factor_bit_index",
      "liquidity_confidence_score",
      "liquidity_confidence_status",
      "liquidity_confidence_basis",
      "safe_operating_limits",
      "status_history",
      "transition_status",
      "verdict",
      "webhook_delivery_attempts",
      "webhook_delivery_status",
      "what_would_change_this"
    ],
    "fail_closed_verdicts": [
      "DO_NOT_ACT",
      "INSUFFICIENT_EVIDENCE"
    ],
    "instruction": "Use /v1/dispute for point-in-time state, /v1/watchlist plus /v1/alerts for recurring early-warning, or the SDK guard helpers agent_guard/agentGuard for a composed fail-closed decision. MCP-compatible agents can use donotact_dispute, donotact_watchlist_add, and donotact_alerts. Preserve receipts and delivery status. If verdict is DO_NOT_ACT or INSUFFICIENT_EVIDENCE, stop automated action and surface evidence to the operator. Use donotact_dispute_history_csv only for paid ledger exports; preserve not_measured monetary-claim status.",
    "machine_payment_instruction": "Use /x402/v1/dispute for machine payments. Send PAYMENT-SIGNATURE/x-payment when available; this standard CDP/x402 path is live-verified and indexed in CDP Bazaar. Use X-402-Tx-Hash only as a compatibility fallback after a confirmed exact Polygon USDC transfer to the challenge pay_to wallet. Transaction hashes are one-time use."
  },
  "venue_coverage": {
    "production_focus": "polymarket",
    "polymarket": "live for UMA dispute lifecycle, dispute history, watchlists and alerts",
    "kalshi": "accepted by contract but next/limited coverage; agents should expect fail-closed evidence gaps until coverage is promoted"
  },
  "discovery_version": "2026-06-20.2",
  "discovery": {
    "canonical_llms": "/llms.txt",
    "well_known_llms": "/.well-known/llms.txt",
    "full_context": "/llms-full.txt",
    "agent_manifest": "/agent.json",
    "openapi": "/openapi.json",
    "mcp_server_card": "/.well-known/mcp/server-card.json",
    "x402_discovery": "/.well-known/x402",
    "docs": "/docs/discovery",
    "sitemap": "/sitemap.xml",
    "robots": "/robots.txt",
    "http_headers": {
      "Link": "</llms.txt>; rel=\"service-desc\"; type=\"text/plain\"; title=\"DoNotAct llms.txt\", </.well-known/llms.txt>; rel=\"service-desc\"; type=\"text/plain\"; title=\"DoNotAct well-known llms.txt\", </agent.json>; rel=\"describedby\"; type=\"application/json\"; title=\"DoNotAct agent manifest\", </openapi.json>; rel=\"service-desc\"; type=\"application/vnd.oai.openapi+json\"; title=\"DoNotAct OpenAPI\"",
      "X-DoNotAct-Discovery": "/llms.txt",
      "X-DoNotAct-Agent-Manifest": "/agent.json",
      "X-DoNotAct-Discovery-Version": "2026-06-20.2"
    },
    "distribution_policy": "owned surfaces, opt-in directories, and relevant technical threads only; no unsolicited bulk outreach"
  },
  "demo_access": {
    "api_key_header": "X-API-Key",
    "api_key_value": "demo",
    "allowed_markets": [
      "580810",
      "557759",
      "541000",
      "540817"
    ],
    "allowed_endpoints": [
      "/v1/dispute/{venue}/{market_id}",
      "/v1/resolution-risk/{venue}/{market_id}",
      "/v1/preflight/{venue}/{market_id}"
    ],
    "purpose": "Immediate proof-set verification before account setup. Use /signup and /account for a real key on other markets."
  }
}
