Initiate transfer
Submits a token (or native) transfer from a derived wallet. Asynchronous by default: the request is validated, recorded, and answered 202 with the PENDING transaction while the on-chain execution continues. Poll Get transaction by id or pass webhookUrl to be notified of the outcome (see Transfer lifecycle). Pass waitForCompletion: true for the legacy synchronous mode, which holds the request open (typically 3–30s) and answers 201 (completed) or 422 (failed). On EVM testnets gas can be sponsored; on mainnet gas is debited from the business USD balance. Requires the wallet.transfer.create capability and an Idempotency-Key header. See Idempotency.
Authorizations
OAuth 2.0 access token from Auth-Edge.
Headers
Unique client-generated key (use a UUID) that makes this request safe to retry. A retry sent with the same key returns the original result instead of submitting again. See Idempotency.
Body
Sending wallet: either a complete wallet address (e.g. 0x71C7…976F) or its HD addressIndex (e.g. 12).
Recipient address.
Amount in the token's major unit, as a decimal string (e.g. "150.00" for 150 USDC).
EVM, SOLANA Target chain id. Use 84532 (Base Sepolia) for sponsored testnet transfers. Required for EVM.
ERC-20 token contract. Omit for a native transfer.
Optional. Set to true to transfer cNGN. Defaults to false.
Optional. true = legacy synchronous mode: hold the request open for the final outcome (201/422) instead of 202 + poll. Defaults to false.
Optional. POST the final transaction here once execution settles (wallet.transfer.completed / wallet.transfer.failed). HTTPS only in production; private/internal hosts rejected. Delivery is signed and retried. See Outcome webhook.
2048Optional (requires webhookUrl). Your own HMAC key for the webhook signature: verify deliveries with the value you sent. Held in memory only; never persisted or logged.
16 - 256Response
Created
The response is of type object.
