MMashDiv

Convert & Send, and convert-and-withdraw

The two ways a convert ends at an external address - the house paying on-chain from its own address, or a convert followed by an ordinary withdrawal - with the withdrawal controls they share, the second factor they ask for, and what the user sees until the coins arrive.

9 min readUpdated 1 October 2026convert, send, withdraw, payout, 2fa, address, network-fee

Under the To field the user chooses where the converted coins go: My balance, or An address. An address is offered when one of two routes can deliver there. From the user's side they look the same: pick a network, paste an address, read what arrives. Underneath they are different machines.

Convert & Send Convert and withdraw
Pays from the house's own address on the chosen chain the ordinary withdrawal queue, from the pool
The user's balance of the target never credited credited by the convert, then withdrawn
Input wallet Spot or Ecosystem Ecosystem only
Targets native EVM coins, SOL, SPL tokens, EVM tokens, TRC-20 tokens, and any token enabled on several chains single-chain pooled coins: UTXO coins, single-chain EVM or TRC-20 tokens, TRX
Switched on by convertSendEnabled plus a Send chains row per currency and chain nothing beyond the Ecosystem convert itself
Followed by the Convert payout jobs, then Admin → Convert → Sends the ecosystem withdrawal queue, like any withdrawal

The user's steps

  1. To → An address. With one network the network is simply named. With several, none is preselected, because an address belongs to one chain and a payout on the wrong one cannot be undone. Each network shows the fee estimated for it, in the coin that arrives: Fee ≈ 0.0004 ETH, or Fee shown in the preview when no estimate could be made. (On a convert-and-withdraw the network reads Paid as a standard withdrawal.)

  2. Paste the address. The field opens once a network is chosen, with a Paste button where the browser allows it. It is checked for form on every keystroke, so a paste from another network is caught before a quote is spent on it: This looks like a TRON address, not an address on ETH. The server's withdrawal policy is the judge of everything else. The line under the field first says what an address on that network looks like (TRON addresses start with T and are 34 characters long.), then, once one passes, shows its start and end to check (Check the start and the end:). Below it: Check the address and the network: a payout on the chain cannot be undone.

  3. Preview. The quote shows You pay, Fee with its rate (the Convert fee), Network fee, Arrives at the address, To with the address and its network, and the rate; the To field above it, relabelled Arrives at the address once An address is chosen, shows the same arriving amount. A convert-and-withdraw shows You receive and Withdrawal fee in place of the network fee. The user can size it either way: what they pay, or what should arrive.

  4. Confirm. The button reads Convert and send (Convert and withdraw for a convert-and-withdraw). A payout is a withdrawal, so this may ask for the withdrawal second factor instead of the Convert one, in a dialog titled Confirm this payout (see Two-factor).

  5. Follow it. For a Convert & Send the page shows the payout's progress: Awaiting approval (only when it needs one), Sending, Sent with the transaction ID and an explorer link, then Confirmed. For a convert and withdraw it shows Withdrawal requested: 25 USDT on TRON, and the withdrawal is followed on the transactions page like any other.

A Send is a withdrawal

Everything a withdrawal is checked for, a Send is checked for, by the same code: the ecosystem addon's withdrawal policy is called by the ecosystem withdrawal route and by Convert alike, so a control added to withdrawals applies to both.

  • Identity. The KYC feature your withdrawals require (withdraw_wallet), on top of the Trade feature every convert requires.
  • Geography. The user's country must be allowed to withdraw as well as to trade.
  • Second factor. The withdrawal two-factor policy (withdrawTwoFactorChallenge and its method switches), consumed at execute.
  • The token. Its status on that chain, its precision, and its ecosystem withdrawal fee, charged exactly as a withdrawal would charge it and shown in the quote as part of the network fee.
  • The destination. A Send refuses:
    • any address held on this platform, the user's own included: This address belongs to an account here. Convert to your balance and transfer instead.;
    • the chain's master wallet, the custodial contracts and system accounts: This address belongs to the platform and cannot be paid to.;
    • the token's own contract: This is the token's contract address, not a wallet.;
    • on native EVM chains, any address with code, EIP-7702 delegation included: This address is a smart contract. A Send pays only to ordinary wallet addresses. A contract could otherwise make a payout revert whenever the price moved against its owner. It is checked at quote and again immediately before signing;
    • your exchange account's own deposit address for that coin on any network: This is the platform exchange's own deposit address. Convert to your Spot balance instead.

A Send paid from a Spot balance also runs the Spot withdrawal switches (Spot withdrawals enabled, the currency enabled), and the Spot approval rule: when withdrawAutoApprove is off (the platform's default is manual approval), the payout waits in Admin → Convert → Sends → Approval queue until someone approves it. The house holds the price while it waits. Ecosystem withdrawals have no approval setting, so a Send paid from an Ecosystem balance is not held.

What a Send costs the user

The quote prices the gross amount the house gives up, and shows what arrives:

  • gross = what arrives + the network fee;
  • the network fee = the chain's fee for this kind of transfer + the ecosystem token's withdrawal fee for that chain;
  • what arrives is rounded down to a unit the token and the ledger can both carry, and the dust joins the network fee.
Kind The network fee quoted
Native EVM 21,000 gas at the current gas price
SOL the transaction fee
SPL token the transaction fee, plus the rent for the recipient's token account when it does not exist yet
TRC-20 token the energy and bandwidth the transfer needs, plus a 20% margin; the energy costs more when the recipient holds none of that token
EVM token the gas of the house's transfer and any master top-up it needs

The difference between the network fee charged and the gas the payout actually burns is the house's, and it enters the P&L.

When a payout fails

The user is never credited the target currency and no withdrawal row exists, so none of the platform's generic refund tools can reach a Send. Only the Convert payout engine settles it, in one of three ways:

  • It failed on the platform's side (nothing was broadcast, or a validation refused it): the whole convert is reversed. The user gets back everything they gave, the fee included; the house pays the fee refund, never the Super Admin.
  • The destination refused it (an address that turned out to have code, an account below rent): the convert is reversed at whichever of the quoted and the current rate is worse for the user, and the Convert fee and any gas spent are kept. Otherwise a failed payout would be a free option on the price.
  • Nobody can tell yet (a timeout after broadcast): nothing is guessed. The Send goes to review, the user's value stays held, and an operator settles it with the chain's own evidence. See Sends.

A transient refusal before anything reached the chain (a provider rate limit, a chain node briefly down, a signer busy) is retried with backoff for convertSendRetryMinutes (default 10), then failed and reversed in full.

The user follows a reversal in the payout's timeline, in the convert's detail on the History tab: the step it stopped at (Not sent or Not delivered), then Reversing the convert, then Refunded with how much came back to which balance and one sentence saying which of the first two cases applied. Once a failure on the platform's side is refunded, the receipt marks the fee Refunded and the network fee Not charged.

Convert and withdraw

On an Ecosystem convert into a single-chain pooled coin, An address gives convert-and-withdraw. Before the convert, every precondition of the standard withdrawal is dry-run: the policy, the address, the token's precision and fee, UTXO economics, the TRON key check. A refusal therefore comes before any money moves. Sized from "what should arrive", the quote covers that amount plus the withdrawal's own fees; sized from "what I pay", it withdraws what the convert yields less those fees.

Then the convert executes, and the withdrawal is requested through the Ecosystem addon's standard withdrawal flow, with the same ledger debit and queue as an ordinary withdrawal. If that request is refused after the convert (a rule changed in the seconds between), the result stays in the user's Ecosystem balance and the page says The convert is done, but the withdrawal was not requested. Your USDT is in your Ecosystem balance. From there it is an ordinary balance.