Skip to main content
POST
/
wallet
/
transfer
curl --request POST \
  --url https://api.onswitch.xyz/wallet/transfer \
  --header 'Content-Type: application/json' \
  --header 'x-service-key: <api-key>' \
  --data '
{
  "wallet_id": "68d4f2a91eb37c15b8e3a4f7",
  "amount": 10,
  "asset": "base:usdc",
  "recipient": "0xe316E8aFA91864f5720af31094f114761356b3E0"
}
'
{
  "success": true,
  "message": "Transfer initiated successfully",
  "timestamp": "2026-04-18T14:22:08.631Z",
  "data": {
    "reference": "f891a3c2-5e7d-4b91-8f62-0c4d1e9a7365",
    "transaction_hash": "0xd4c19f2e8a91b06357cef3049821ea47dc33a09ef12c8456f8ab2d9e0c7e51a3",
    "explorer_url": "https://basescan.org/tx/0xd4c19f2e8a91b06357cef3049821ea47dc33a09ef12c8456f8ab2d9e0c7e51a3",
    "type": "transfer",
    "date": "2026-04-18T14:19:41.208Z",
    "status": "processing",
    "sender": "0x8F3aC91d2B741E59f064E9053a4d2E8F1c0b6D93a",
    "receiver": "0x42c9E1aF8d736B2D094e6590315Dc7a1F947c4B0e",
    "fee": {
      "amount": 0.01,
      "assets": [
        {
          "id": "base:usdc",
          "amount": 0.01
        }
      ]
    },
    "input": {
      "amount": 10,
      "assets": [
        {
          "id": "base:usdc",
          "amount": 10
        }
      ]
    },
    "output": {
      "amount": 10,
      "assets": [
        {
          "id": "arbitrum:usdc",
          "amount": 10
        }
      ]
    }
  }
}

Documentation Index

Fetch the complete documentation index at: https://docs.onswitch.xyz/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

x-service-key
string
header
required

Service key for API authentication

Body

application/json
wallet_id
string
required

Unique identifier for the wallet

Pattern: ^[a-f0-9]{24}$
asset
enum<string>
required
Available options:
base:usdc,
solana:usdc,
solana:usdt,
ethereum:usdc,
ethereum:usdt,
polygon:usdc,
polygon:usdt,
bsc:usdc,
bsc:usdt,
arbitrum:usdc,
optimism:usdc,
gnosis:usdc,
gnosis:usdt,
arbitrum:usdt,
avalanche:usdc,
monad:usdc,
optimism:usdt,
monad:usdt,
plasma:usdt,
avalanche:usdt,
tron:usdt,
linea:usdt,
mantle:usdt,
hyperevm:usdt,
berachain:usdt,
linea:usdc,
berachain:usdc,
sonic:usdc,
base:cngn,
bsc:cngn
recipient
string
required

Recipient wallet address (EVM or Solana depending on asset)

full_balance
boolean
default:false

Withdraws the full balance of the given wallet to the specified recipient.

amount
number

Amount to send to the specified recipient. Required when full_balance is false.

Required range: x > 0

Response

Transfer initiated successfully

success
boolean
required
message
string
required
timestamp
string<date-time>
required
data
object
required