{
  "policy_pack_id": "skill-pack-purchasing-v1",
  "schema": "lvl-veridex-policy-pack-v1",
  "seller": "lvl X, Inc.",
  "site": "https://lvlltd.com",
  "evaluate_after": "HTTP 402 from GET /api/pay?skill={id}",
  "do_not_gate_before_402": true,
  "reason": "Amount, asset, payTo, skill_id, and outline are only known from the challenge.",
  "decisions": [
    "allow",
    "deny",
    "escalate"
  ],
  "sign_only_if": "allow",
  "settlement": {
    "asset": "USDC",
    "network": "eip155:8453",
    "decimals": 6,
    "formula": "atomic = round(usd * 10^6)",
    "canary": {
      "skill_id": "agent-x402-first-buy",
      "list_usd": 0.05,
      "live_challenge_usd": 0.005,
      "live_atomic": "5000",
      "not": "5000 atomic is $0.005 USDC, not $5.00. $5.00 = 5000000 atomic."
    },
    "payTo_prefix": "0x8E5130",
    "asset_contract": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
  },
  "session_precheck": {
    "when": "before_402",
    "checks": [
      "session_active",
      "not_expired",
      "purchase_authorized",
      "rate_limit"
    ],
    "not": [
      "budget",
      "skill_whitelist",
      "asset_approval",
      "human_approval"
    ]
  },
  "audit": [
    "agent_id",
    "session_id",
    "skill_id",
    "amount",
    "asset",
    "network",
    "payTo",
    "decision",
    "reasoning",
    "timestamp"
  ],
  "rules": [
    {
      "id": "budget-limit",
      "type": "spend_limit",
      "conditions": {
        "max_spend_usd": 100.0,
        "time_window": "24h"
      }
    },
    {
      "id": "skill-whitelist",
      "type": "allowlist",
      "conditions": {
        "allowed_skills": [
          "agent-x402-first-buy"
        ],
        "allowed_categories": [
          "agent-tools",
          "api-access",
          "Commerce"
        ],
        "blocked_tiers": [
          "experimental"
        ]
      }
    },
    {
      "id": "first-purchase-approval",
      "type": "approval_required",
      "conditions": {
        "trigger": "first_purchase_for_skill",
        "escalation_chain": [
          "treasury-lead@company.com"
        ]
      }
    },
    {
      "id": "asset-whitelist",
      "type": "asset_restriction",
      "conditions": {
        "allowed_assets": [
          "USDC"
        ],
        "allowed_networks": [
          "eip155:8453"
        ]
      }
    }
  ],
  "recover": {
    "endpoint": "https://lvlltd.com/api/recover",
    "human": "https://lvlltd.com/recover/",
    "when": "Transfer included but POST /api/pay failed or returned no sealed_pack.files. Retry the same txHash. Do not send a second transfer."
  },
  "flow": [
    "GET /api/pay?skill=agent-x402-first-buy",
    "Read 402 amount, asset, payTo, skill_id, outline, proposal, policy",
    "Policy evaluate. allow \u2192 sign Base USDC. deny/escalate \u2192 halt, do not sign.",
    "Wait for inclusion",
    "POST /api/pay with X-PAYMENT {txHash, skill}",
    "If stuck, POST /api/recover with the same txHash + skill"
  ]
}
