Skip to Content
DocumentationPlatformPolicy EngineOverview

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:

ConditionOptions
InitiatorAny user, or a specific user
FromAny wallet, a specific wallet, or a wallet group
BlockchainAny, or a specific network
TokenAny, or a specific asset
ToAny address, a whitelisted address, a specific address, or an address group
Amount less thanA 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.