Overview
The whitelist is a security feature that restricts custodial wallet withdrawals to pre-approved external addresses. Before funds can be withdrawn from an internal wallet, the destination address must be added to the user’s whitelist with verified beneficiary information.Why Whitelisting?
Security Layer
Prevents unauthorized withdrawals to unknown addresses by requiring pre-approval.
Fraud Prevention
Adds friction to withdrawal attacks, giving users time to detect unauthorized activity.
Compliance Tracking
Maintains beneficiary records for all withdrawal destinations, supporting regulatory requirements.
User Protection
Reduces risk of user error by validating addresses before enabling withdrawals.
How Whitelisting Works
Adding Addresses to Whitelist
Add one or more external wallet addresses to the user’s whitelist:Request Parameters
| Field | Required | Description |
|---|---|---|
currency | Yes | Currency for this address (e.g., “usdc”, “xrp”, “btc”) |
name | Yes | Descriptive name to identify this address |
beneficiaryFirstName | Yes | First name of the address owner |
beneficiaryLastName | Yes | Last name of the address owner |
walletAddress | Yes | Blockchain address for withdrawals |
walletMemo | No | Memo/destination tag (required for XRP, Stellar, etc.) |
Whitelist entries are currency-specific. The same address can be whitelisted for multiple currencies if the blockchain supports multiple assets.
Viewing Whitelisted Addresses
Retrieve all whitelisted addresses for a specific currency:Response Fields
| Field | Description |
|---|---|
id | Whitelist entry identifier (used for deletion) |
name | User-provided name for this address |
beneficiaryFirstName | Beneficiary first name |
beneficiaryLastName | Beneficiary last name |
walletAddress | Blockchain address |
walletMemo | Memo/destination tag if applicable |
currency | Currency for this address |
lastUsedAt | Timestamp of most recent withdrawal (null if never used) |
createdAt | Timestamp when address was whitelisted |
The
lastUsedAt field helps users identify their frequently-used withdrawal addresses. This can be useful for displaying “favorites” or “recent” addresses in your UI.Removing Addresses from Whitelist
Delete one or more whitelisted addresses:Network-Specific Requirements
Different blockchain networks have different address formats and requirements:EVM Networks (Ethereum, Linea)
- Standard Address
Solana
- Standard Address
XRP Ledger
- Address with Destination Tag
Address Validation
The platform performs basic validation when addresses are added:Format Validation
Format Validation
Ensures address matches expected format for the currency:
- Ethereum/Linea: 42-character hex string starting with “0x”
- Solana: 32-44 character base58 string
- XRP: 25-35 characters starting with “r”
- Bitcoin: 26-35 characters starting with “1”, “3”, or “bc1”
Checksum Verification
Checksum Verification
For currencies with checksum validation (Ethereum, Bitcoin), verifies address checksum to prevent typos.
Network Compatibility
Network Compatibility
Ensures the address format matches the currency’s blockchain network. For example, prevents adding an Ethereum address for Bitcoin.
Duplicate Prevention
Duplicate Prevention
Checks if the exact address (including memo) is already whitelisted for the same currency.
While the platform validates address format, it cannot verify that you control the address or that it’s the correct destination. Always double-check addresses before whitelisting.
Implementation Examples
Complete Whitelist Flow
Whitelist Management UI
Use Cases
Exchange Withdrawals
Exchange Withdrawals
Whitelist your exchange deposit addresses (Coinbase, Binance, Kraken) to quickly move funds from your custodial wallet to exchange accounts.Example:
- Name: “Coinbase USDC Account”
- Address: Your Coinbase USDC deposit address
- Beneficiary: Your name (as registered with Coinbase)
Personal Cold Storage
Personal Cold Storage
Whitelist your hardware wallet or cold storage addresses for secure long-term holdings.Example:
- Name: “Ledger Nano X - Primary”
- Address: Your Ledger device address
- Beneficiary: Your name
Third-Party Services
Third-Party Services
Whitelist addresses for DeFi protocols, staking services, or other blockchain applications.Example:
- Name: “Aave Lending Pool”
- Address: Your Aave deposit address
- Beneficiary: Your name
Family Member Transfers
Family Member Transfers
Whitelist addresses of family members for easy recurring transfers.Example:
- Name: “Spouse - Emergency Fund”
- Address: Spouse’s wallet address
- Beneficiary: Spouse’s name
Error Handling
Invalid Address Format
Duplicate Address
Missing Memo
walletMemo field for networks like XRP that require destination tags.
Invalid Currency
Best Practices
Verify Before Adding
Always double-check addresses before whitelisting. Blockchain transactions are irreversible, and incorrect addresses can result in permanent loss of funds.
Use Descriptive Names
Give each address a clear, memorable name that helps identify its purpose (e.g., “Coinbase Main” not “Address 1”).
Store Beneficiary Info Accurately
Use the actual name of the address owner for compliance tracking and dispute resolution.
Include Memos When Required
For XRP and similar networks, always include the destination tag/memo if provided by the recipient. Missing memos can cause lost funds.
Test with Small Amounts
Before large withdrawals, test new addresses with small amounts to verify the address is correct and accessible.
Regular Audits
Periodically review whitelisted addresses and remove any that are no longer needed or controlled.
Display Last Used Date
Show
lastUsedAt in your UI to help users identify their active vs. unused addresses.Security Considerations
Two-Factor Authentication: Consider implementing additional verification (2FA, email confirmation) before allowing users to add or modify whitelist addresses.
