{
  "tool_id": "art-15-agentic-mandate-sandbox",
  "tool_version": "1.0.0",
  "display_name": "Agentic Mandate Sandbox",
  "mcp_name": "simulate_agent_spend_policy",
  "mandate_type": "agent_guardrail_mandate",
  "wave": "A",
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-15-agentic-mandate-sandbox.html",
  "description": "Builds a deterministic Agent Guardrail Mandate skeleton from declared spend caps, MCC allowlist/blocklist, velocity rules, time windows, and approval thresholds. Stage 1 of the Agentic Policy Chain. The browser page additionally runs an interactive randomized synthetic-transaction simulator against the mandate for exploration; that non-deterministic step is a UI feature only and is not part of this server artifact's hashed output. Zero PII, client-side compute in the browser tool, deterministic server compute for MCP callers.",
  "input_schema_ref": "chaingraph/art-15-agentic-mandate-sandbox.html#manifest",
  "consumes": [
    "art-27-agentic-readiness-diagnostic"
  ],
  "feeds": [
    "art-16-google-ap2-mandate-builder"
  ],
  "status": "live",
  "conformance_fixtures": false,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:fff11007c653c4006222d02b7daca7257ea82f90448b282848433cefc5acad7c",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-31"
    }
  ],
  "compute_proof_ready": "ready",
  "export_capability": [
    "json"
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "EzLX6BsoEUNwHfnoO+8KCs98l/QzyKJ55RU2Qev17s0dkEstQOFJO5jHoWcI8k0PLW8fZ6a/0UmdbPodLrceKiqWDAJim4emS6bsMlt8HUKIZEv33ixdFxfiAaeQsY2OA8XTv7k4fDsB4yGPXFSCV9yiScHB1iImeoVmp0yuw1gptgHu+EYjDZ0I3AZtHn675Qge6TfTXCZy8mynqpQ7QimnuDjhAmgpYBVwCdLpFNUg010vk2hHsXsx8sC/W9OXLVByoHaA8c1m6WPQGyao+75wFMvYIw0FAzGThbfCf2QLviVt3shX82rGyzOW6NOn/r/iNZwRYpB6lBqzVGQymg==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:fff11007c653c4006222d02b7daca7257ea82f90448b282848433cefc5acad7c",
      "output": {
        "approval_thresholds": {
          "board_approval_gate": false,
          "dual_sig_required": true,
          "single_sig_auto": true,
          "timeout_minutes": 30
        },
        "compliance": {
          "kyc_check": true,
          "ofac_screen": true
        },
        "corridor": {
          "destination": "US",
          "origin": "BR"
        },
        "mandate_id": "MANDATE-art-15-agentic-mandate-sandbox-5000-15000-2000",
        "mcc_constraints": {
          "allowlist": [
            "5411",
            "5541",
            "5912",
            "5812",
            "5311",
            "7011",
            "4511",
            "7512",
            "4814",
            "7372",
            "8011",
            "4900",
            "6010",
            "5999"
          ],
          "blocklist": [
            "6051",
            "7995"
          ]
        },
        "note": "Deterministic Agent Guardrail Mandate skeleton built from declared spend caps, velocity rules, time windows and approval thresholds. The browser tool additionally runs an interactive randomized synthetic-transaction simulator against this mandate; that exploratory step is not part of this deterministic server artifact.",
        "rail": "PIX",
        "rejected_inputs": [],
        "schema": "AP2-Agentic-Mandate",
        "spend_caps": {
          "daily_aggregate": {
            "amount": 15000,
            "currency": "USD"
          },
          "flag_threshold": {
            "amount": 2000,
            "currency": "USD"
          },
          "monthly_aggregate": {
            "amount": 100000,
            "currency": "USD"
          },
          "single_transaction": {
            "amount": 5000,
            "currency": "USD"
          }
        },
        "time_windows": {
          "allow_weekends": true,
          "allowed_utc": "06:00–22:00",
          "block_holidays": false
        },
        "velocity_rules": {
          "cooldown_minutes": 5,
          "max_txns_per_day": 20,
          "max_txns_per_hour": 3
        }
      }
    }
  }
}
