{"name":"Agentic Finance Graph — gate policies","note":"Named policies gate_check accepts by policy_name. Their measured cost on 500 real ranked agents (false blocks per agent-year, which rule pays for which attacker strategy) is in the private lab's sweep and will be published with the definition; log-only is the default and records what the others would have done.","policies":{"log-only":{"name":"log-only","description":"Shadow mode: nothing is blocked or warned; every fact and score is written to the log so an operator can see what the other policies would have done before turning them on.","refuse_conditions":{"fresh_destination_size":"log","relay_shape":"log","swap_unfreezable":"log","pay_on_proof_claim":"log","sweeper_7702":"log","poisoning_lookalike":"log","frozen":"log","unavailable":"log"},"signal":{"v1":{"notable":"log","major":"log"},"v2":{"notable":"log","major":"log"}}},"balanced":{"name":"balanced","description":"The default we would suggest to an operator with a normal x402 or service-paying agent: caps that fit the ledger's typical sizes, hard blocks only on the facts that are never right, warnings for a human on the rest.","amount_range":{"max":2500,"currency":"USD"},"budget":{"max":5000,"period":"daily","currency":"USD"},"refuse_conditions":{"fresh_destination_size":"warn","relay_shape":"warn","swap_unfreezable":"warn","pay_on_proof_claim":"warn","sweeper_7702":"block","poisoning_lookalike":"block","frozen":"block","unavailable":"log"},"signal":{"v1":{"notable":"warn","major":"block"},"v2":{"notable":"warn","major":"block"}}},"recommended":{"name":"recommended","description":"The balanced policy plus a cap on what a never-paid payee may receive in its first week ($250, cumulative over 168 hours) and at most three new payees a day. $250 is the cheapest flat cap in gate/POLICY-SWEEP.md that still blocked every scoreable harmful payment (the week and the three-a-day limit answer battery/ADAPTIVE.md strategies 7 and 8; their own cost is the sweep's 168 h rows). A first payment above the cap is a block the operator lifts by paying that payee once by hand. recommended-v3.json adds the rolling budget and the step-up rule.","amount_range":{"max":2500,"currency":"USD"},"budget":{"max":5000,"period":"daily","currency":"USD"},"new_payee":{"max":250,"currency":"USD","window_hours":168,"max_new_per_day":3},"refuse_conditions":{"fresh_destination_size":"warn","relay_shape":"warn","swap_unfreezable":"warn","pay_on_proof_claim":"warn","sweeper_7702":"block","poisoning_lookalike":"block","frozen":"block","unavailable":"log"},"signal":{"v1":{"notable":"warn","major":"block"},"v2":{"notable":"warn","major":"block"}}},"recommended-v3":{"name":"recommended-v3","description":"recommended plus the two rules battery/ADAPTIVE.md strategies 9 and 10 called for: the daily budget counted over a rolling 24 hours (a straddle of the UTC-day boundary no longer gets two budgets in twenty minutes) and a step-up rule on a payee first paid less than 30 days ago (one payment above 5× everything it received before, and above the cap, is refused: 'new' ends by history, not by the clock). The control cost of each is in gate/POLICY-SWEEP.md.","amount_range":{"max":2500,"currency":"USD"},"budget":{"max":5000,"period":"rolling_24h","currency":"USD"},"new_payee":{"max":250,"currency":"USD","window_hours":168,"max_new_per_day":3,"step_up_ratio":5,"step_up_days":30},"refuse_conditions":{"fresh_destination_size":"warn","relay_shape":"warn","swap_unfreezable":"warn","pay_on_proof_claim":"warn","sweeper_7702":"block","poisoning_lookalike":"block","frozen":"block","unavailable":"log"},"signal":{"v1":{"notable":"warn","major":"block"},"v2":{"notable":"warn","major":"block"}}},"strict":{"name":"strict","description":"For an agent that pays a short list of known services at small, regular sizes. Blocks anything new or large; the operator reviews blocks by hand.","amount_range":{"max":250,"currency":"USD"},"budget":{"max":1000,"period":"daily","currency":"USD"},"agent_recurrence":{"frequency":"daily","max_occurrences":40},"refuse_conditions":{"fresh_destination_size":"block","relay_shape":"block","swap_unfreezable":"block","pay_on_proof_claim":"block","sweeper_7702":"block","poisoning_lookalike":"block","frozen":"block","unavailable":"warn"},"signal":{"v1":{"notable":"block","major":"block"},"v2":{"notable":"block","major":"block"}}}},"vocabulary":{"ap2":["allowed_payees","amount_range","budget","agent_recurrence","execution_date"],"ours":["new_payee","refuse_conditions","signal"],"fail_closed":"an unknown constraint, an unknown field inside a constraint, an unknown period, frequency, refuse condition or action, or a missing cap blocks before any rule runs"},"license":"https://creativecommons.org/licenses/by/4.0/"}