You can freeze a wallet — blocking all outgoing transactions — by combining a policy with wallet tags. This allows you to immediately block transactions in case of a security incident, suspected compromise, or compliance hold, and unblock the wallet when the situation is resolved.
Only outgoing transactions can be blocked. Incoming transactions are on-chain and cannot be prevented by Dfns.
Policies only apply to organization-managed wallets. Delegated wallets bypass the policy engine entirely.
How it works
- Create a policy that blocks all transactions from wallets tagged
frozen
- To freeze a wallet, add the
frozen tag to it
- To unfreeze, remove the tag
The policy stays in place permanently — you control which wallets are frozen by managing tags, not by editing policies.
Set up the freeze policy
This policy must be created via the API — the dashboard does not currently support the AlwaysTrigger + Block combination.
Create a policy with the AlwaysTrigger rule and Block action, filtered to the frozen tag:
const policy = await dfns.policies.createPolicy({
body: {
name: 'Freeze Tagged Wallets',
activityKind: 'Wallets:Sign',
rule: {
kind: 'AlwaysTrigger',
configuration: {},
},
action: {
kind: 'Block',
},
filters: {
walletTags: {
hasAny: ['frozen'],
},
},
status: 'Active',
},
})
This policy only needs to be created once. Any wallet tagged frozen will have all outgoing transactions blocked.
Freeze a wallet
Add the frozen tag to the wallet you want to freeze.
From the dashboard
Open the wallet
Go to Wallets and click the wallet you want to freeze.
Edit the wallet
Click Edit to open the wallet settings.
Add the frozen tag
In the Tags field, type frozen and click Add. Then click Update to save.
With APIs
await dfns.wallets.tagWallet({
walletId: 'wa-xxx-xxx',
body: { tags: ['frozen'] },
})
All outgoing transactions from this wallet will now be blocked.
Unfreeze a wallet
Remove the frozen tag to allow the wallet to transact again.
From the dashboard
Open the wallet
Go to Wallets and click the frozen wallet.
Edit the wallet
Click Edit to open the wallet settings.
Remove the frozen tag
Click the x next to the frozen tag to remove it. Then click Update to save.
With APIs
await dfns.wallets.untagWallet({
walletId: 'wa-xxx-xxx',
body: { tags: ['frozen'] },
})
The wallet can transact again immediately.