Send from the platform wallet

View as MarkdownOpen in Claude
Signs and broadcasts a transfer from **your platform's own wallet** — the twin of [`/send`](/api-reference/transfers/send-transfer), with two differences: there is no `userId`, and there is **no `password`** — the platform wallet's key is held and unlocked by the service, so the body is just `assetId`, `recipient` and `amount`. Everything else is identical to `/send` and its description applies verbatim: native transfers deliver `amount` − fee while token transfers deliver the full `amount`, a `txHash` is not a confirmation, and **`X-Request-Id` is required** — it is the idempotency key, scoped to the platform wallet. Reuse the same id to retry a transfer safely; a duplicate never broadcasts twice. Use this to pay out from the wallet you fund at [`/platform/addresses`](/api-reference/platform-wallet/get-platform-addresses) — for example to settle a completed trade with a user. Do not send an `X-USER-ID` header here — a platform endpoint always acts as the platform wallet, and sending one is a `400`.

Authentication

AuthorizationBearer

A 15-minute token from /auth. Required on every endpoint except /auth.

Headers

X-Request-IdstringRequiredformat: "^[A-Za-z0-9._-]{1,64}$"<=64 characters
**Required on `/send`, and client-supplied** — it is the idempotency key for the transfer. One id per logical transfer; **the same id on every retry of it**; a fresh id for a new transfer. 1–64 characters of `A-Za-z0-9._-`. Omitting it is a `400`.

Request

This endpoint expects an object.
assetIdenumRequired
Primary asset selector. An all-digit string (`"21"`) is accepted and normalised to an integer. - `1` — BITCOIN BTC (native, 8 decimals) - `2` — ETHEREUM ETH (native, 18 decimals) - `21` — ETHEREUM USDT (ERC20, 6 decimals) - `22` — ETHEREUM USDC (ERC20, 6 decimals) - `3` — BSC BNB (native, 18 decimals) - `31` — BSC USDT (BEP20, 18 decimals) - `32` — BSC USDC (BEP20, 18 decimals) - `4` — TRON TRX (native, 6 decimals) - `41` — TRON USDT (TRC20, 6 decimals) - `42` — TRON USDC (TRC20, 6 decimals) — not on every endpoint - `5` — POLYGON POL (native, 18 decimals) - `51` — POLYGON USDT (ERC20, 6 decimals) — not on every endpoint - `52` — POLYGON USDC (ERC20, 6 decimals) - `6` — SOLANA SOL (native, 9 decimals) - `61` — SOLANA USDT (SPL, 6 decimals) — not on every endpoint - `62` — SOLANA USDC (SPL, 6 decimals)
recipientstringRequired
Destination address on the asset's chain. Must differ from the platform wallet's own address.
amountstringRequiredformat: "^\d+(\.\d+)?$"

Human-decimal amount string. Same rules and minimums as /send.

Response

OK
resultobject
requestIdstring

Echo of the inbound X-Request-Id, or a generated one.

Errors

400
Bad Request Error
401
Unauthorized Error
402
Payment Required Error
403
Forbidden Error
404
Not Found Error
409
Conflict Error
422
Unprocessable Entity Error
503
Service Unavailable Error