Policy Engine
The Policy Engine is a core safety layer in The Vault. Every withdrawal is evaluated against the profile’s approval policies before reaching the MPC signing layer. If no policy allows the transfer, it is blocked — no signing session is opened and no mobile notification is sent.
Why Policy Matters
In a traditional custodial system, the custodian’s internal controls prevent bad transactions. In self-custody, those controls must be embedded in the platform. The Vault’s policy engine is that layer: it enforces rules defined by your risk and compliance team, automatically, on every transfer.
The Vault operates on a default-deny basis. If no policy matches and allows a transfer, it is rejected. You must define policies to permit withdrawals.
How Policies Work
A policy is an ordered Allow or Reject rule with a set of match conditions. When a transfer is submitted, the engine evaluates policies in priority order and the first matching policy decides the outcome — Allow (optionally requiring a number of approvals) or Reject. A transfer that matches no allowing policy is denied.
Each policy matches on any combination of:
| Condition | Options |
|---|---|
| Initiator | Any user, or a specific user |
| From | Any wallet, a specific wallet, or a wallet group |
| Blockchain | Any, or a specific network |
| Token | Any, or a specific asset |
| To | Any address, a whitelisted address, a specific address, or an address group |
| Amount less than | A threshold value in a chosen currency (USD/EUR or the native asset) |
The action is Allow or Reject. An Allow policy can also require a number of approvals — mobile signer confirmations — before signing proceeds.
Policies are created in the dashboard under Policies → Approval Policies. Because rules are evaluated in priority order with first-match-wins, order matters: put narrower/higher-priority rules above broader ones.
Amount Currency and Valuation
The Amount less than threshold can be set in a fiat currency (USD/EUR) or in the native asset. Fiat thresholds are compared using a price valuation from the wallet service (configurable provider — e.g. CoinGecko or a static price source); the valuation used for a given transfer is recorded with it.
Versioning and Audit
Policy changes are versioned and browsable in the dashboard, and every policy decision (allow/reject, with the matched rule and reason) is written to the audit log — giving compliance teams a full record of what rules were in effect and why any transfer was blocked.