Signing runs through MPC threshold signing — no share, no signature. A policy deny means no signature is produced, so a denied intent cannot be signed by anyone. See Agents and Authority for how an automated actor proposes a transaction and why it can never authorize its own.
How rules work
Allowlist rules are your own rules for what may be signed. They are opt-in and deny-by-default: with no active rule, any signing intent on a chain you’re entitled to is admitted; once at least one rule is active, an intent is allowed only if it matches an active rule, and denied otherwise. An intent on a chain you’re not entitled to is always denied. You write rules against typed operations (below), not raw transaction bytes.Rule Anatomy
A rule matches on the fields below. A field left unset matches any value for that field. All set fields must match for the rule to admit the operation.
Match fields are normalized to lowercase before storage so they line up with the operation typing.
amountCap is always base units. It is never a USD or decimal value.
Typed Operations
WalletSuite recognizes the following operations. Each rule targets exactly one.
An operation outside this set cannot be typed and is denied once your allowlist is armed.
A Rule
A rule that permits USDC transfers on Ethereum to a single payout address, capped per transaction, with a mandatory expiry:amountCap here is 5000000000 base units, which is 5000 USDC at 6 decimals. Any transfer to a different destination, above the cap, of a different token, or on a different chain does not match this rule. With this as the only active rule, everything else is denied.
For creating, listing, and deactivating rules through the admin API, see Managing Policy Rules.
Off, Shadow, Enforce
The engine has three modes. They are the adoption motion. You watch the engine decide beside your rules before you let it enforce them.
The path is
shadow first, then enforce. Arm your rules, run in shadow, read the would-deny records, confirm the engine denies exactly what you expect, then switch to enforce. Nothing you did not intend to deny gets denied by surprise.
What a Deny Does
When an intent is denied:- The intent is persisted as
deniedwith the deny reason. - No signature is produced — the cosigner never releases its share for a denied intent.
- The decision is recorded in the signing-intents ledger — see Policy Decisions for the record fields.
Decision Provenance
Every evaluation, allow or deny, produces a freshpolicyDecisionId and a stable reason — the seed of your execution evidence. See Policy Decisions → Decision reasons for the reason strings and the full decision record.