Policies
Policies enable businesses to enforce rules and request approvals on top of actions taken using the IBM Digital Asset Haven API.
If no policies are configured, all actions are allowed. Policies add restrictions on top of this default allow‑all behavior. They do not act as an allowlist.
Policies apply only to organization-managed wallets. Delegated wallets bypass the policy engine entirely because the end user holds full signing authority. The organization cannot enforce policy controls on delegated wallet transactions.
When an activity occurs, every matching policy is evaluated. Policies do not override one another. If any policy issues a Block action, the activity is blocked. If multiple policies issue Request approval, approvals from all triggered policies are required before the activity proceeds.
Policy configuration example
- Transactions over USD 100,000 require approval from a Vice President.
- Transactions over USD 250,000 require approval from both a Vice President and a Managing Director.
- Rule:
TransactionAmountLimitwith a threshold of USD 100,000 - Action: Request approval from the Vice Presidents approval group
- Rule:
TransactionAmountLimitwith a threshold of USD 250,000 - Action: Request approval from the Managing Directors approval group
Available rules
| Rule | Trigger condition |
AlwaysTrigger |
Every signing request requires approval or is blocked |
TransactionAmountLimit |
Transaction amount exceeds a defined USD threshold |
TransactionAmountVelocity |
Total transferred value exceeds a limit within a time window |
TransactionCountVelocity |
Number of transactions exceeds a limit within a time window |
TransactionRecipientWhitelist |
Recipient address is not on the approved list |
ChainalysisTransactionPrescreening |
Outbound transaction flagged by Chainalysis KYT |
ChainalysisTransactionScreening |
Incoming transaction flagged by Chainalysis KYT |
GlobalLedgerTransactionPrescreening |
Outbound transaction flagged by Global Ledger KYT |
TravelRuleTransactionPrescreening |
Transfer requires travel rule compliance through Notabene |
Approval process
- Approval group: A set of users authorized to approve an action. You can specify individual users or allow any user in the organization.
- Quorum: The minimum number of approvals required from an approval group, for example, two out of five approvers.
initiatorCanApprove to true if self-approval is required. Service account approvers
serviceAccountsCanApprove set to true. This enables automated approval workflows in which service accounts participate alongside human approvers.
- Service accounts must be explicitly listed in the approval group. Wildcards are not supported.
- Service account approvals count toward the quorum.
- A service account rejection denies the request.
- Approval groups can include both human and service account approvers.
Automating with service accounts
For automated workflows such as scheduled payouts, certain wallets might need to bypass approval requirements.
- Using wallet tags
-
You can scope policies by using wallet tags:
- Tag wallets that require approval, for example,
requires-approval. - Configure policies to apply only to wallets with that tag.
{ "name": "Large Payment Approval", "activityKind": "Wallets:Sign", "rule": { "kind": "TransactionAmountLimit", "configuration": { "limit": "100000", "currency": "USD" } }, "action": { "kind": "RequestApproval", "approvalGroups": [...] }, "filters": { "walletTags": { "hasAny": ["requires-approval"] } } }This policy enforces approval only for wallets tagged withrequires-approval. Automated wallets that are not tagged bypass the policy.Tip: You can also target individual wallets using the walletId filter, but wallet tags provide greater flexibility when managing groups of wallets. - Tag wallets that require approval, for example,