const PoliciesScreen = () => { const policy = { id: "policy_payments_v3", rules: [ { k: "daily_cap", op: "<=", v: "250 ETH", scope: "project" }, { k: "recipient", op: "in", v: "allowlist_payees", scope: "env:prod" }, { k: "value", op: "<=", v: "1 ETH", scope: "no-approval" }, { k: "value", op: ">", v: "1 ETH", scope: "requires 1 approver" }, { k: "chain", op: "in", v: "ETH, BASE, ARB", scope: "project" }, ], }; return ( <>

Signing policies

Policies are evaluated before every signature. Failing requests are logged and can trigger approval workflows or webhook alerts.

}>Simulate }>New policy
{[ { n: "payments_v3", s: "active", c: "3 wallets · 18 rules" }, { n: "treasury_ops", s: "active", c: "2 wallets · 6 rules" }, { n: "test_sandbox", s: "active", c: "dev only · 2 rules" }, { n: "legacy_v1", s: "revoked", c: "archived Apr 2" }, ].map((p, i) => (
{p.n}
{p.c}
))}
}>Export}>
payments_v3.yamlYAML
               1 ETH
  - chains: [ETH, BASE, ARB]
  - on_violation:
      log: audit
      webhook: alerts.policy
      action: block`}/>
            
Validate }>Dry-run
Save draft
); }; Object.assign(window, { PoliciesScreen });