Skip to main content

Transfer Endpoint

Execute a direct ERC20 or native token transfer.

Endpoint​

POST /wallet/transfer

Request Body​

{
"tokenAddress": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"recipientAddress": "0x1234567890abcdef1234567890abcdef12345678",
"amount": "100",
"isNativeToken": false,
"chain": "base"
}
FieldTypeDescription
tokenAddressstringERC20 contract address, or the zero address for native transfers
recipientAddressstringRecipient EVM address — resolve ENS names, X handles and Farcaster usernames first with GET /addresses/resolve
amountstringHuman-readable amount (e.g. "100" for 100 USDC)
isNativeTokenbooleantrue for the chain's native token (e.g. ETH), false for ERC20
chainstringOptional EVM chain: base (default), mainnet, polygon, arbitrum, unichain, worldchain, bnb, robinhood, or arc

Response​

Success (200 OK)​

{
"success": true,
"txHash": "0xabc123..."
}

Access Control​

  • Wallet API (walletApiEnabled) required; read-only keys are rejected with 403
  • Allowed recipients: If configured on the API key, the recipient must be in the EVM allowlist (403 otherwise)
  • Wallet security settings: a paused wallet answers 403; a transfer over the per-transaction or daily limit, or to an address outside the wallet's permitted recipients, answers 400 with the reason in error
  • Gas: a wallet without enough native token for gas gets 400 insufficient_funds_for_gas
note

Transfers are supported on all EVM chains. Omitting chain defaults to Base.

Examples​

curl — Transfer USDC​

curl -X POST https://api.bankr.bot/wallet/transfer \
-H "X-API-Key: your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"tokenAddress": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"recipientAddress": "0x1234567890abcdef1234567890abcdef12345678",
"amount": "10",
"isNativeToken": false
}'

curl — Transfer native ETH​

curl -X POST https://api.bankr.bot/wallet/transfer \
-H "X-API-Key: your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"tokenAddress": "0x0000000000000000000000000000000000000000",
"recipientAddress": "0x1234567890abcdef1234567890abcdef12345678",
"amount": "0.01",
"isNativeToken": true
}'