Security Best Practices
Protect your organization using roles, policies, the address book, and asset verification. IBM Digital Asset Haven provides multiple layers of security to help safeguard wallets, transactions, and administrative access.
Getting started safely
- Roles: Define who can perform specific actions
- Policies: Enforce approval workflows and transaction controls
- Address book: Reduce the risk of address poisoning attacks
- Verified assets: Filter spam tokens and suspicious transactions
Before creating wallets or processing transactions, configure the following foundational security controls.
- Initial policies
-
Tip: The following three policies are the minimum recommended configuration for any organization. They reduce the risk of user error and prevent a compromised administrator from escalating privileges or locking out other administrators.
Policy Purpose Permission assignment Requires approval before granting permissions to any user. Prevents a compromised admin from creating users with elevated access. Permission modification Requires approval before modifying permission sets. Prevents privilege escalation of existing roles. Policy modification Requires approval before changing policies, ensuring security controls remain enforced. - To create these policies, go to Org > Policies and click New Policy.
- Select the relevant activity type and configure approval groups to require at least a 1-of-2 approval quorum.
- Initial role setup
- Follow the principle of least privilege; that is, grant users only the permissions required to perform their responsibilities.
Warning: Do not assignSee role templates for recommended configurations.
ManagedFullAdminAccessbroadly. Create custom roles instead and assign administrative access sparingly.
Policy templates by use case
- Treasury management
- For internal teams managing company wallets with multi-signature approval workflows:
Policy Purpose Large transaction approval TransactionAmountLimitof USD 100,000 with a 2-of-3 approver quorumRecipient whitelisting TransactionRecipientWhitelistfor treasury, exchange, and vendor addressesDaily spending cap TransactionAmountVelocityset to USD 500,000 per 24 hoursTransaction frequency limit TransactionCountVelocityset to 50 transactions per 24 hoursNote: Use wallet tags to scope policies to specific wallets. For example, tag treasury wallets with treasury and apply policies selectively.
- Exchange and trading operations
- For high-volume workflows that integrate with exchanges:
Policy Configuration Withdrawal velocity TransactionAmountVelocitytuned to expected daily volumeExchange whitelisting TransactionRecipientWhitelistconfigured with exchange deposit addressesHigh-value approvals TransactionAmountLimitapplied above operational thresholdsNote: When using exchange integrations, withdrawals to IBM Digital Asset Haven wallets may need to be whitelisted in the exchange’s address book (for example, Kraken and Coinbase Prime).
- B2B payments
- For vendor payments and business disbursements:
Policy Configuration Vendor whitelisting TransactionRecipientWhitelistwith approved vendor addressesTiered approvals Multiple TransactionAmountLimitpolicies: USD 10,000 (1 approver), USD 50,000 (2 approvers), USD 100,000+ (3 approvers)AML screening ChainalysisTransactionPrescreeningfor outbound payments
Role templates
Create these roles in Settings > Permissions and assign them based on user responsibilities.
- Admin
-
This role provides full organizational control. It should be assigned sparingly.
You may use
ManagedFullAdminAccessfor this role. The list of permitted actions is maintained by IBM Digital Asset Haven and includes all available permissions. - Approver
- This role reviews and approves transactions but cannot initiate them.
Policy Purpose Policies:Approvals:ApproveApprove or reject pending transactions Policies:Approvals:ReadView pending approval requests Wallets:ReadView wallet details and balances Wallets:Transfers:Read,Wallets:Transactions:ReadView transaction details - Operator
- This role handles day-to-day transaction execution.
Policy Purpose Wallets:ReadView wallets Wallets:Transfers:Create,Wallets:Transfers:ReadCreate and view transfers Wallets:Transactions:Create,Wallets:Transactions:ReadCreate and view transactions - Read-only auditor
- This role provides view-only access for compliance and audit purposes.
Policy Purpose Wallets:ReadView all wallets Wallets:Transfers:Read,Wallets:Transactions:ReadView all transfers Policies:Read,Policies:Approvals:ReadView policies and approval history Auth:Logs:ReadView audit logs - Service account (automation)
- This role is used for server-to-server API integrations. For more information, See service accounts guide.
Policy Purpose Wallets:ReadQuery wallet balances Wallets:Transfers:Create,Wallets:Transactions:ReadInitiate automated transfers Wallets:Transactions:CreateView policies and approval history Auth:Logs:ReadExecute smart contract calls Note: Create separate service accounts for different automation tasks, and grant only the minimum required permissions to each.
Using the address book
The address book allows you to manage blockchain addresses using human-readable aliases. In addition to improving usability, it provides important protection against address poisoning attacks.
- Address poisoning protection
- In transaction history views, the dashboard displays warnings when interacting with addresses that are not in your address book. This helps protect against address poisoning attacks, in which attackers:
- Send small transactions from addresses that closely resemble legitimate ones (for example, 0x1234…5678 versus 0x1234…5679)
- Rely on users copying the incorrect address from transaction history during future transfers
Warning: Always verify recipient addresses carefully. Attackers exploit the tendency to copy addresses without checking every character.As best practice, add any address you expect to reuse to the address book immediately after its first legitimate transaction.
- Address book management best practices
- Follow these recommendations to keep your address book accurate and effective:
- Use clear naming conventions: Include the vendor or partner name, business purpose, and network (for example, acmecorp-payroll-eth).
- Add descriptions: Document the business relationship or account purpose for each address.
- Review regularly: Remove entries that are no longer in use.
- Update promptly: Add new addresses as soon as new business relationships are established.
- Address book versus policy-based whitelisting
- The address book and recipient whitelist policies serve different but complementary purposes:
- Address book: Provides visual identification and warnings within the user interface. It does not block transactions.
- TransactionRecipientWhitelist policy: Enforces controls by blocking transactions to non-whitelisted addresses or requiring approval.
Note: Use both features together: the address book for visibility and ease of recognition, and policies for enforcement.
Handling spam and scam tokens
Blockchain wallets may receive unsolicited tokens through airdrops or spam campaigns. These tokens can clutter wallet views and, in some cases, attempt to deceive users. IBM Digital Asset Haven provides verification and filtering tools to help reduce exposure to these risks.
- Verified assets and transactions
- Each wallet page includes filtering options to display only verified assets and transactions.
- Assets section
- Enable Only show verified assets.
- The Verified column indicates whether a token is verified by IBM Digital Asset Haven.
- Transaction history
- Enable Only show verified assets.
- The Verified column indicates the transaction’s verification status.
- Assets section
- Meaning of Verified
-
- IBM Digital Asset Haven maintains a curated list of verified tokens and smart contracts across supported networks
- Verified indicates the token is a known, legitimate asset.
- Not verified indicates the asset is not included in IBM Digital Asset Haven’s verified list
Note: Not verified does not imply that an asset is malicious. It indicates that the asset should be handled with caution.Testnet tokens are typically not verified. This behavior is expected.
- Transaction screening with Chainalysis
- For additional protection, you can integrate Chainalysis to automatically screen blockchain transactions:
ChainalysisTransactionPrescreening: Screens outbound transactions before signing.ChainalysisTransactionScreening: Flags incoming transactions associated with high-risk or sanctioned addresses.
Day-to-day security operations
- Reviewing pending approvals
- When a policy requires approval, follow these steps:
- Navigate to Activity in the dashboard to view pending approvals.
- Review transaction details, including the recipient address and amount.
- Confirm that the recipient address is expected and, when possible, present in the address book.
- Approve or reject the request.
Note: A user who initiates a transaction cannot approve that transaction unless theinitiatorCanApproveoption is explicitly enabled in the policy.
- Monitoring transactions
- Use the following tools to maintain operational visibility:
- Review the Verified column in transaction history.
- Enable webhooks for real-time notifications.
- Export transaction records for compliance and audit purposes using Wallet > Export.
- Ongoing security hygiene
- Regular security reviews help reduce risk and identify configuration drift.
Task Recommended frequency Review user roles and permissions Quarterly Audit address book entries Monthly Review policy configurations Quarterly Test new policies on testnets Before production deployment Review audit logs As needed Note: Always test new or modified policies on a testnet before deploying them to production environments.