Transfer Tokens
Transfer tokens from your BLOX wallet to an external wallet address.
POST /v1/wallet/token/transfer
Authentication
This endpoint requires API Key + RFC 9421 Signature.
| Header | Required | Description |
|---|---|---|
blox-api-key | Yes | Your API key |
Content-Type | Yes | application/json |
Content-Digest | Yes | SHA-256 hash of request body |
Signature-Input | Yes | RFC 9421 signature parameters |
Signature | Yes | RFC 9421 cryptographic signature |
Request Body
{
"tokenId": "550e8400-e29b-41d4-a716-446655440000",
"addressTo": "0x742d35Cc6634C0532925a3b844Bc9e7595f8bD21",
"amount": 10000,
"reference": "PAYOUT-2026-001",
"note": "Monthly payout"
}Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
tokenId | string (UUID) | Yes | Token ID to transfer (e.g., MYRC token ID) |
addressTo | string | Yes | Recipient wallet address (Ethereum or Solana format) |
amount | integer | Yes | Amount in cents (min 1000 = 10.00, max 100000000 = 1,000,000.00) |
reference | string | No | Your reference ID (max 32 chars) |
note | string | No | Internal note for this transfer |
Address Formats
| Network | Format | Example |
|---|---|---|
| Ethereum/Arbitrum | 0x + 40 hex chars | 0x742d35Cc6634C0532925a3b844Bc9e7595f8bD21 |
| Solana | Base58 public key | DRpbCBMxVnDK7maPM5tGv6MvB3v1sRMC86PZ8okm21hy |
Response
Success Response (201 Created)
{
"id": "txf_clxyz1234567890abcdef",
"status": "PENDING",
"type": "TOKEN_WITHDRAWAL",
"amount": "10000",
"token": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"symbol": "MYRC",
"name": "MYRC"
},
"addressTo": "0x742d35Cc6634C0532925a3b844Bc9e7595f8bD21",
"reference": "PAYOUT-2026-001",
"createdAt": "2026-01-16T10:30:00.000Z"
}Response Fields
| Field | Type | Description |
|---|---|---|
id | string | Unique transfer ID |
status | string | Current transfer status |
type | string | Transaction type (TOKEN_WITHDRAWAL) |
amount | string | Amount transferred (in cents) |
token | object | Token details (id, symbol, name) |
addressTo | string | Recipient wallet address |
reference | string | Your reference ID |
createdAt | string | ISO 8601 creation timestamp |
Transfer Status Values
| Status | Description |
|---|---|
CREATED | Transfer request received |
PENDING | Transaction submitted to blockchain |
PROCESSING | Awaiting confirmations |
COMPLETED | Successfully delivered |
FAILED | Transfer failed |
Error Responses
Insufficient Balance (400)
{
"statusCode": 400,
"error": "Bad Request",
"message": "Insufficient balance",
"details": {
"available": "5000",
"requested": "10000"
}
}Invalid Address (400)
{
"statusCode": 400,
"error": "Bad Request",
"message": "Invalid destination address"
}Rate Limited (429)
{
"statusCode": 429,
"error": "Too Many Requests",
"message": "Rate limit exceeded",
"retryAfter": 60
}Example
Create Transfer
curl -X POST "https://api.blox.my/v1/wallet/token/transfer" \
-H "blox-api-key: $BLOX_API_KEY" \
-H "Content-Type: application/json" \
-H "Content-Digest: sha-256=:$CONTENT_DIGEST:" \
-H "Signature-Input: sig1=(@method @path content-digest content-type);created=$TIMESTAMP;keyid=\"$KEY_ID\";alg=\"ed25519\"" \
-H "Signature: sig1=:$SIGNATURE:" \
-d '{
"tokenId": "550e8400-e29b-41d4-a716-446655440000",
"addressTo": "0x742d35Cc6634C0532925a3b844Bc9e7595f8bD21",
"amount": 10000,
"reference": "PAYOUT-2026-001"
}'Check Transfer Status
Use the wallet transactions endpoint to check transfer status:
curl "https://api.blox.my/v1/wallet/transactions" \
-H "blox-api-key: $BLOX_API_KEY"Best Practices
- Verify addresses — Validate destination addresses before sending
- Use references — Add reference IDs for reconciliation
- Monitor status — Use the transactions endpoint to track completion
- Handle failures — Implement retry logic for transient errors
Last updated