Account Demolisher

Send the funds to an exchange

Close an account straight into an exchange deposit address, with the memo the exchange needs to credit you.

You can send a closed account's balance directly to an exchange deposit address. The app handles the part that makes a plain close to an exchange go uncredited.

Why this needs special handling

Closing an account on Stellar ends with an account merge. Exchanges share one deposit address across their customers and credit deposits by the memo on a payment. A merge is not a payment, so a merge straight into an exchange lands in the exchange's wallet with nothing that ties it to you.

When the destination needs a memo, the app routes the close through a temporary forwarding account created for this one close. Your account merges into it, and the forwarding account then pays the exchange in XLM with your memo and merges itself into the same address. From the exchange's side the payment is an ordinary memo-bearing deposit.

The payment carries everything except the forwarding account's own minimum balance and the network fee. That remainder, about 1 XLM (two base reserves of 0.5 XLM, plus any part of the fee the network did not charge), reaches the exchange in the merge. An exchange credits the payment, not the merge, so expect it to credit about 1 XLM less than the account held, after fees.

The app takes this route when the destination is one of the exchange addresses it knows, or when the destination account declares that it requires a memo (the config.memo_required data entry from SEP-29).

Do this

Get your deposit address and memo from the exchange

Copy both from the exchange's XLM deposit page. The memo is the part that tells the exchange the deposit is yours.

Paste the address into the destination field

When the app knows the address, a notice names the exchange and the memo types it takes.

Set the memo type and value

Pick the type the exchange asked for and paste the value. Continue stays disabled while the memo is missing, of a type the exchange does not take, or malformed for its type.

Continue as normal

The rest is the standard flow in Close an account. The plan gains a last step, Deliver to destination: the forwarding account paying the exchange. That step needs no signature from you.

What arrives at the exchange

The close funds the forwarding account with 2 XLM in the same transaction that merges your account into it. The forward then pays the exchange everything above the forwarding account's own minimum balance and the forward's fee, with your memo, and merges the forwarding account into the exchange address. The merge carries the rest, about 1 XLM. A merge is not a payment, so count on the exchange crediting the payment only.

Only XLM reaches an exchange. Every other balance is sold for XLM first, or, where it has no market, returned to its issuer. Sending a token as-is is not offered, because it would reach the exchange without your memo.

Exchanges the app knows

Thirteen deposit addresses are built in, and all of them require a memo.

ExchangeMemo type
KrakenText
BinanceID
Binance DepositsID
BitfinexText
BitstampID
KuCoinText
UpbitText
Upbit DepositsID or Text
CEX.IOText
Crypto.comText
RobinhoodText
Coinbase DepositsText
Blockchain.comText

Kraken publishes a 1 XLM minimum deposit and Binance a 0.1 XLM minimum. Check your exchange's own deposit page for its current terms before you close.

Upbit shows its deposit address only to logged-in customers. The two Upbit entries come from the public stellar.expert directory, which tags both as exchange accounts that require a memo. Seven other Upbit accounts in that directory are cold storage and withdrawal wallets, not deposit addresses, so the app refuses them as a destination.

An exchange that is not listed

When the destination account declares a memo requirement under SEP-29, the app takes the forwarding route for it too and accepts any well-formed memo.

When it declares nothing, the close is a direct merge, and a memo you enter rides on the merge transaction. An exchange that credits only payments does not credit that. Withdraw to a wallet you control instead and send the funds to the exchange from there as a normal payment.

If you run an exchange and want closes to reach your deposit addresses, see Exchange integration.

Things worth knowing

Standalone tokens cannot go to an exchange. An exchange deposit address cannot receive a Soroban token. The app tells you to move any you want to keep to a personal wallet first; otherwise they stay on the closed account.

DeFi payouts have to be sellable. An exchange close forwards XLM only, so the plan refuses a DeFi exit whose payout cannot become a classic balance the close sells, such as the LP token a Blend backstop withdrawal pays. Close to your own address in that case.

A shared account cannot close to an exchange. The exchange route runs as several transactions, and a multisig signing request collects signatures on exactly one. See Close a shared account.

A Blend backstop still locked. When a backstop withdrawal stays locked after the run, the run only prepares the close: it creates no forwarding account and sends nothing to the exchange. The close that finishes it after the unlock date cannot go to the exchange, because the withdrawal pays out the BLND-USDC LP token, which an exchange close cannot sell or forward. Review and the confirmation say so on the preparing run. Finish the close to your own Stellar address.

Self-hosted deployments. A deployment built in self-hosted mode does not run the forwarding service, so it refuses a close that needs it. Withdraw to an address you control instead.

If the forward is interrupted. The failure screen and, on later visits with that account connected, a banner reading An exchange forward was interrupted offer Resume the forward, which delivers the balance with your memo. See When a step fails.

How it works underneath

The mediator forward protocol covers the forwarding account, how its key is derived for each close, and the exact transaction the server co-signs.

On this page