Skip to main content

Overview

Internal wallets are platform-managed custodial wallets that hold user cryptocurrency across various blockchain networks. Each user can have multiple internal wallets for different networks and currencies, with the platform securely managing all private keys.

Creating Internal Wallets

Create one or more internal wallets for a user with a single API call:
Wallet creation is idempotent. If a wallet already exists for the specified network and currency combination, the API returns success without creating a duplicate.

Network and Currency Combinations

Always specify both network and currency as a matching pair. For example, specify xrp for both network and currency when creating an XRP wallet.

Retrieving Internal Wallets

Get all internal wallets for the authenticated user:

Response Fields

The addressId field is required when linking wallets to cards. Keep this identifier for card linking operations.

Understanding Wallet Addresses

Standard Addresses (Most Networks)

For most networks (Ethereum, Linea, Solana, Bitcoin), only the address field is needed:
Users can deposit funds by sending cryptocurrency to this address.

Memo-Required Networks (XRP, Stellar)

Some networks require a memo/destination tag to identify the recipient:
For memo-required networks, users MUST include both the address AND the memo when depositing. Missing the memo may result in lost funds or delayed processing.
Display to Users:

Checking Wallet Balances

Balances are returned when retrieving wallet list:

Receiving Deposits

Once a wallet is created, users can deposit funds by sending cryptocurrency to the wallet address.

Deposit Flow

1

Display Deposit Address

Show the wallet address (and memo if applicable) to the user in your application.
2

User Initiates Transfer

User sends cryptocurrency from their external wallet or exchange to the displayed address.
3

Blockchain Confirmation

Transaction is confirmed on the blockchain (timing varies by network).
4

Balance Update

Platform detects the deposit and updates the wallet balance automatically.
5

Notify User

Poll wallet balance or implement webhooks to notify user of confirmed deposits.

Network Confirmation Times

Confirmation times vary based on network congestion and gas prices. Display expected timing to users to set proper expectations.

Deposit Example UI

Wallet Transaction History

View transaction history for a specific internal wallet:

Query Parameters

Transaction history is paginated with 10 transactions per page, ordered by date descending (newest first).

Linking to Cards

Internal wallets can be linked to cards for payments. See the dedicated guide for details: Card Linking Guide → Quick Example:

Use Cases

Create wallets for different currencies to allow users to hold and spend various cryptocurrencies. For example, create USDC on Linea for low fees and USDT on Ethereum for broader compatibility.
Provide users with deposit addresses to fund their accounts from exchanges like Coinbase or Binance. Users send crypto from their exchange to their internal wallet address.
Support users on different blockchain networks. Create Solana wallets for users in the Solana ecosystem and Ethereum wallets for users in the EVM ecosystem.
For users new to cryptocurrency, internal wallets provide a familiar account-based experience without requiring wallet software or seed phrase management.
Link internal wallets to cards so users can spend their cryptocurrency holdings for everyday purchases without manual transfers.

Error Handling

Wallet Already Exists

Solution: This is expected behavior. The existing wallet is returned in GET requests. No action needed.

Unsupported Network

Solution: Verify the network name and ensure it’s supported in your environment configuration. Contact support for network availability.

Invalid Currency for Network

Solution: Ensure the currency is valid for the specified network. For example, you cannot create a BTC wallet on the Ethereum network.

Best Practices

Create Wallets Proactively

Create wallets during user onboarding rather than when needed for a transaction. This reduces friction and provides immediate deposit addresses.

Display Clear Instructions

For memo-required networks, prominently display both the address and memo with clear warnings about including both values.

Monitor Deposits

Poll wallet balances or implement webhook notifications to detect deposits quickly and update your UI in real-time.

Show Transaction History

Display transaction history to help users track their activity and verify deposits/withdrawals.

Handle Network Delays

Inform users about expected confirmation times and display pending transactions separately from confirmed balances.

Provide Copy Functionality

Always include a “copy to clipboard” button for addresses and memos to prevent user input errors.

US Environment

For US-based users, route requests to the US environment:

Next Steps

Card Linking

Link internal wallets to cards for seamless payments

Whitelist Management

Add addresses for secure withdrawals

Withdrawals

Withdraw funds to external addresses

API Reference

View complete API documentation