Skip to main content

Create a wallet

Create a wallet for a customer:
curl -X POST https://api.ledger.so/v1/wallets \
  -H "Authorization: Bearer $LEDGER_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: create-wallet-1" \
  -d '{
    "customerId": "cus_..."
  }'
Response:
{
  "ok": true,
  "data": {
    "id": "wal_...",
    "customerId": "cus_...",
    "status": "active",
    "createdAt": 1710000000000,
    "updatedAt": 1710000000000
  }
}
Ledger provisions an onchain address and creates deposit addresses across multiple chains automatically.

Check wallet balance

curl https://api.ledger.so/v1/wallets/wal_.../balance \
  -H "Authorization: Bearer $LEDGER_API_KEY"
{
  "ok": true,
  "data": {
    "walletId": "wal_...",
    "balance": "4.40"
  }
}

Get crypto deposit addresses

Each wallet has dedicated deposit addresses across multiple chains. Send USDC or USDT to any of these addresses and funds are automatically routed to the wallet balance.
curl https://api.ledger.so/v1/wallets/wal_.../crypto-deposit-addresses \
  -H "Authorization: Bearer $LEDGER_API_KEY"
Supported chains: Solana, Ethereum, Arbitrum, Base, Optimism, Polygon, Avalanche, Tron.

What you can do with wallets

  • Receive deposits via crypto deposit addresses
  • Check balance via the balance endpoint
  • Send transfers to external addresses via POST /v1/transfers
  • Hold stablecoin balances (USDC)