What are Custodial Wallets?
Custodial wallets are platform-managed blockchain wallets where private keys are securely held and managed by the service. Users interact with these wallets through simple API calls without needing wallet software, browser extensions, or blockchain knowledge.Key Benefits
Simplified UX
No wallet software required. Users interact through your application’s familiar interface.
Secure Key Management
Private keys are encrypted and managed using enterprise-grade security infrastructure.
Whitelist Security
Withdrawals restricted to pre-approved addresses, adding an extra security layer.
Multi-Network Support
Support for multiple blockchains from a single integration point.
Custodial Wallet Types
Internal Wallets
User-specific wallets holding cryptocurrency across various networks. Each user can have multiple internal wallets for different currencies and networks. Capabilities:- Create wallets on supported networks
- Receive crypto deposits
- Check balances
- Link to card for payments
- Withdraw to whitelisted addresses
Credit Wallets
Platform wallets holding user credits from refunds, transfers, or top-ups. Each user has one credit wallet per supported currency. Capabilities:- View balance
- Withdraw to whitelisted addresses (custodial environments)
- Use for card payments
Reward Wallets
Platform wallets accumulating cashback, promotions, and incentives. Each user has one reward wallet per supported currency. Capabilities:- View balance
- Withdraw to whitelisted addresses (custodial environments)
- Use for card payments
Security Model
Custodial wallets implement a whitelist-based security model:How Whitelisting Works
- Add Address: User submits external wallet address with beneficiary details
- Verification: Platform validates address format and network compatibility
- Approval: Address is added to user’s approved whitelist
- Withdrawal: User can only withdraw to addresses on their whitelist
- Tracking: All withdrawals are tracked with beneficiary information
Card Linking
Internal wallets can be linked to cards for seamless cryptocurrency payments:1
Create Internal Wallet
Set up an internal wallet for the desired network and currency.
2
Fund Wallet
Deposit cryptocurrency to the wallet address.
3
Link to Card
Connect the wallet to the user’s card using the card linking API.
4
Set Priority
Configure which wallet is charged first when multiple wallets are linked.
5
Make Payments
Card transactions automatically deduct from linked wallets based on priority.
Supported Networks
| Network | Currencies | Memo Required | Notes |
|---|---|---|---|
| Linea | USDC, USDT | No | Primary network, US routing available |
| Ethereum | USDC, USDT | No | Mainnet support |
| Solana | USDC, USDT, SOL | No | SPL token support |
| XRP Ledger | XRP | Yes | Destination tag required for all transactions |
| Bitcoin | BTC | No | Native Bitcoin support |
Networks requiring memos (like XRP Ledger) return both
address and addressMemo fields. Both are required for deposits and withdrawals.Common Workflows
Workflow 1: Simple Deposit and Card Payment
Workflow 2: Withdrawal to External Address
Priority Management
When multiple wallets are linked to a card, priority determines the charge order:- Card transaction initiated
- System attempts to charge wallet with priority 1
- If insufficient balance, moves to priority 2
- Process continues until transaction succeeds or all wallets exhausted
Transaction History
View transaction history for any custodial wallet:History returns up to 10 transactions per page. Use the
page parameter (zero-indexed) for pagination.Error Handling
Common error scenarios and how to handle them:Insufficient Balance
Address Not Whitelisted
POST /v1/wallet/whitelist.
Invalid Network
Maximum Linked Wallets
Best Practices
Always Verify Addresses
Always Verify Addresses
Before adding an address to the whitelist, verify it’s correct and on the intended network. Blockchain transactions are irreversible.
Use Descriptive Whitelist Names
Use Descriptive Whitelist Names
Give each whitelisted address a clear, descriptive name (e.g., “Coinbase Main Account” or “Hardware Wallet #1”) to help users identify addresses later.
Implement Balance Checks
Implement Balance Checks
Check wallet balance before initiating withdrawals to provide better user feedback and avoid failed transactions.
Handle Network-Specific Requirements
Handle Network-Specific Requirements
Some networks (like XRP) require memos/destination tags. Always include these fields when present.
Set Sensible Priority Orders
Set Sensible Priority Orders
Configure wallet priority based on user preferences or fee optimization. Update priority when users change their preferences.
Display Transaction History
Display Transaction History
Show transaction history to help users track their activity and verify transactions.
Implement Withdrawal Limits
Implement Withdrawal Limits
Consider implementing daily/monthly withdrawal limits for additional security, especially for high-value accounts.
US Environment Routing
For US-based users and compliance requirements, use the US environment:- Header Method
- Query Parameter Method
The US environment automatically routes Linea network operations to US-specific infrastructure while maintaining full API compatibility.
