Wallet

GET /api/wallet

Get all wallets for the authenticated user.

Auth: Required

Response:

{
  "wallets": [
    {
      "id": "clx...",
      "userId": "clx...",
      "chain": "SOLANA",
      "address": "7B5NrSkUQP...",
      "walletType": "EOA",
      "isPrimary": true,
      "isActive": true,
      "createdAt": "2026-01-01T00:00:00.000Z"
    }
  ]
}

GET /api/wallet/balance

Get real-time balances for all user wallets with USD conversion. Includes native tokens (SOL/ETH) and all token holdings.

Auth: Required

Response:


GET /api/wallet/deposit

Get deposit addresses and network info for all user wallets.

Auth: Required

Response:


POST /api/wallet/create

Manually create a wallet (use if auto-creation failed during signup).

Auth: Required

Request Body:

Valid chains: SOLANA, BASE

Response:


POST /api/wallet/withdraw

Withdraw native tokens (SOL or ETH) to an external wallet address.

Auth: Required (+ passkey verification)

Request Body:

Field
Type
Required
Description

chain

string

Yes

SOLANA or BASE

toAddress

string

Yes

Destination wallet address

amount

number

Yes

Amount in native units (SOL or ETH)

Success Response (200):

Error Response (400):

Explorer Links:

  • Solana: https://solscan.io/tx/{txHash}

  • Base: https://basescan.org/tx/{txHash}


GET /api/wallet/tokens

Get all token holdings with live prices. Zero-balance tokens are automatically excluded.

Auth: Required

Response:

For real-time updates, subscribe to the prices:update WebSocket event instead of polling this endpoint.

Last updated

Was this helpful?