Skip to main content
POST
/
api
/
v1
/
wallets
/
{wallet_uuid}
/
transfer
Transfer tokens
import requests

url = "https://api.example.com/api/v1/wallets/{wallet_uuid}/transfer"

payload = {
    "dst_addr": "<string>",
    "amount": "<string>",
    "token_id": "SETH",
    "chain_id": "<string>",
    "request_id": "<string>",
    "fee": {
        "max_fee_per_gas": "<string>",
        "max_priority_fee_per_gas": "<string>",
        "gas_limit": "<string>",
        "token_id": "<string>",
        "fee_type": "EVM_EIP_1559"
    },
    "src_addr": "<string>",
    "sponsor": True,
    "gas_provider": "<string>",
    "description": "<string>"
}
headers = {"Content-Type": "application/json"}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
{
  "result": {
    "status": 123,
    "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "idempotent": false,
    "request_id": "<string>",
    "pending_operation_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "approval_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "transaction_hash": "<string>",
    "status_display": ""
  },
  "success": true,
  "suggestion": "",
  "message": "",
  "meta": {
    "total": 123,
    "offset": 123,
    "limit": 123,
    "has_more": true,
    "after": "<string>",
    "before": "<string>"
  }
}

Headers

X-API-Key
string | null

Path Parameters

wallet_uuid
string<uuid>
required

The UUID of the wallet to transfer tokens from. Retrieve this value from the id field returned when the wallet was created.

Body

application/json

Request payload for token transfer.

dst_addr
string
required

The destination on-chain address.

Required string length: 1 - 255
amount
string
required

The transfer amount as a decimal string (for example, 1.5).

Required string length: 1 - 100
token_id
string
default:SETH

The Cobo token ID to transfer (for example, SETH, SETH_USDC, SOLDEV_SOL_USDC). Use the List supported assets operation to retrieve all supported token IDs. Defaults to SETH.

Required string length: 1 - 100
chain_id
string | null

The chain ID. Automatically resolved from token_id if omitted.

Maximum string length: 100
request_id
string | null

A client-supplied identifier for idempotency. If a transfer with the same request_id already exists for the same principal, the existing record is returned.

Maximum string length: 255
fee
EIP1559FeeRequest · object

Optional custom fee parameters. If omitted, the network default is used.

src_addr
string | null

The source address to transfer from. If omitted, the server auto-selects the wallet address on this chain with the highest available token_id balance (explicit src_addr always takes precedence).

Maximum string length: 255
sponsor
boolean | null

Whether to use Cobo Gasless (Fee Station) to cover gas fees. true: gas fees are sponsored. false: gas fees are paid from the wallet. Defaults to true for human-owned wallets, false for agent-owned wallets.

gas_provider
string | null

The gas provider to use for sponsored transactions. If omitted, the server default is used.

Maximum string length: 50
description
string | null

Optional note stored locally and sent to WaaS as the transaction description (transfer).

Maximum string length: 512

Response

Successful Response

result
TransferSubmitResult · object
required

Transfer submission response payload.

success
boolean
default:true
suggestion
string
default:""
message
string
default:""
meta
PaginationMeta · object

Pagination metadata for list responses.

Supports both legacy offset-based and cursor-based pagination. Cursor fields (has_more, after, before) are populated for cursor-paginated endpoints. Legacy fields (offset, limit) are populated when the caller uses the deprecated offset parameter.