Transfers

Transfers allow you to initiate fund movements from your wallet to external blockchain addresses. These endpoints enable secure, auditable on-chain transfers across multiple currencies and blockchain networks.

Key Features

Multi-chain support: Transfer across BSC, Ethereum, Polygon, Solana, Tron, and more.

Multi-currency: Send USDT, USDC, or BTC to any valid address.

Idempotent submissions: Use the reference field to prevent duplicate transfers.

Real-time tracking: Monitor transfer status via the Transactions API or webhooks.

Transfer API Endpoints

Create Transfer

Use Case

Initiate a transfer of cryptocurrency from your wallet to an external blockchain address. The transfer is processed asynchronously — you'll receive a pending status immediately and can track completion via webhooks or the Transactions API.

Headers
1
Content-TypestringRequired

Must be set to 'application/json'.

2
x-auth-clientstringRequired

Your API client ID.

3
x-auth-timestampstringRequired

Unix timestamp in milliseconds.

4
x-auth-noncestringRequired

A unique UUID for this request.

5
x-auth-signaturestringRequired

HMAC-SHA256 signature of the request (including body), Base64-encoded.

Create Transfer Request

Transfer Request Payload Schema
1
to_addressstringRequired

The recipient's blockchain address where funds will be sent. Must be a valid address for the specified chain.

2
amountstringRequired

Amount of the asset to transfer, expressed in smallest units (e.g., 1 USDC = 1,000,000 units for 6 decimal places).

3
currencystringRequired

Asset being transferred. Supported values: 'USDC', 'USDT', 'BTC'.

4
chainstringRequired

Blockchain network where the transfer will occur. Supported values: 'ethereum', 'bsc', 'polygon', 'solana', 'tron', 'bitcoin'.

5
referencestringNot Required

A unique external identifier for tracking and ensuring idempotent transaction submission. If a transfer with the same reference already exists, the API will return the existing transfer instead of creating a duplicate.

6
descriptionstringNot Required

An optional note or memo describing the purpose of the transfer.

Idempotency

Always include a unique reference value. If a network issue causes you to retry a request, the reference ensures the transfer is only processed once.

Request Body
Supported Chains by Currency
CurrencySupported Chains
USDTethereum, bsc, polygon, tron, solana
USDCethereum, bsc, polygon, solana
BTCbitcoin

Transfer Response
1
successboolean

Indicates whether the API request was processed successfully.

2
messagestring

A human-readable message describing the result of the transfer operation.

3
transaction_idstring (UUID)

A unique identifier generated to track and reference this blockchain transaction.

4
statusstring

Shows the current state of the transaction in its lifecycle. Possible values: 'pending', 'completed', 'failed'.

5
addressstring

The destination blockchain wallet address where the funds are being sent.

6
amountstring

The numeric value of the cryptocurrency being transferred in the smallest unit.

7
currencystring

The symbol of the digital asset being transferred (e.g., USDC, USDT, BTC).

8
chainstring

Specifies the blockchain used to process the transaction (e.g., bsc, ethereum, solana).

9
networkstring

Indicates whether the transaction is running on a live network ('mainnet') or a test environment ('testnet').

10
referencestring

A custom reference value provided by the client to help with internal tracking and reconciliation.

11
created_atstring (ISO 8601)

The exact date and time when the transaction was created.

12
descriptionstring

An optional note or memo describing the purpose of the transfer.

13
request_idstring

A unique identifier for this specific API request, useful for debugging and support.

14
timestampstring (ISO 8601)

The UTC timestamp when the response was generated.

Transfer Response

Transfer Status Lifecycle

After initiating a transfer, it moves through the following statuses:

1

pending: Transfer has been created and is awaiting processing. The funds have been deducted from your available balance.

2

completed: Transfer has been confirmed on the blockchain. The transaction hash is available.

3

failed: Transfer could not be completed. Funds are returned to your available balance. Check the error details for the reason.

Webhooks

Subscribe to transfer.completed and transfer.failed webhook events to receive real-time notifications instead of polling. See the Webhooks documentation for setup instructions.

Webhook Event Examples

Error Responses

Common errors when creating transfers.

1
400 Bad RequestError

Invalid request body. Missing required fields, unsupported currency/chain combination, or invalid address format.

2
401 UnauthorizedError

Invalid or missing authentication headers.

3
402 Insufficient FundsError

Your available balance is less than the transfer amount. Check your balance before retrying.

4
409 ConflictError

A transfer with the same reference already exists. The existing transfer is returned in the response.

5
422 Unprocessable EntityError

The address is not valid for the specified chain, or the amount is below the minimum transfer threshold.

6
429 Too Many RequestsError

Rate limit exceeded. Wait and retry.

Error Response Examples
Did you find this page useful?