Sending Stablecoins
Bitnob allows you to programmatically send USDT or USDC to any on-chain address across supported blockchain networks. This is a key capability for use cases like payouts, merchant disbursements, and remittances.
Supported Chains
You can send funds on any of the following networks:
Tron (TRC20)
Binance Smart Chain (BEP20)
Ethereum (ERC20)
Polygon
Solana
Base
Arbitrum (ARB)
Avalanche (AVAX)
Optimism (OP)
Polygon (POL)
TON (coming soon for send)
To view dynamically supported networks per stablecoin, use the /stablecoins/supported-chains endpoint.
Endpoint
POST /wallets/transfers This endpoint triggers an on-chain transfer from your wallet to an external address.
Request Parameters
parameter | type | required | description |
|---|---|---|---|
to_address | string | Yes | Recipient's on-chain wallet address |
amount | string | Yes | Amount in the smallest unit of the currency (e.g., '2000000' for 2 USDT) |
currency | string | Yes | Stablecoin type (USDT, USDC) |
chain | string | Yes | Blockchain network (e.g., tron, ethereum, bsc, polygon, solana) |
reference | string | Yes | A unique identifier for the transfer |
description | string | No | Optional transfer description for your records |
Sample Request
Sample Response
Webhook Lifecycle
Once a transfer is created, Bitnob handles the on-chain broadcasting and confirmation tracking internally. Your app will receive:
transfer.success – after enough confirmations (based on chain)
transfer.failed – if the transfer is rejected, reverted, or times out on-chain
Best Practices
Idempotency: Always generate a unique reference per transfer to prevent double sending.
Fee Handling: Bitnob calculates and deducts gas/network fees from your balance. These are visible in the centFees field of the response.
Status Checking: Avoid polling — listen to transfer events via webhooks instead.
Address Validation: Use the addresses/validate endpoint to validate supported chains for the asset before sending.