> For the complete documentation index, see [llms.txt](https://docs.mofo.gg/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.mofo.gg/withdrawals-and-account-security.md).

# Withdrawals & account security

The model in one paragraph: **your money can only ever leave to one place per chain — the withdrawal address you verified yourself.** Changing that address takes 24 hours by default (a cooldown you can switch off) and always tells you it happened. A PIN, if you set one, is a second lock on that change. Nothing about trading asks for either.

## Withdrawal address — `/address`

One verified address per chain: Solana, BSC, Robinhood Chain and Arc. `/address` asks which network first. Until you set an address on a chain, withdrawals on that chain stay blocked.

Setting or changing it:

1. Tap ✏️ Set address (or ✏️ Change address) and paste the address from your wallet app. Your own MoFo trading address is refused — it has to be somewhere you are paid out *to*.
2. The bot echoes it in full and asks you to **check every character** before a separate ✅ Confirm tap. A truncated or clipboard-swapped paste is visible before it becomes policy.
3. If you have a PIN, enter it.
4. **With the cooldown on, the new address is unusable for 24 hours.** The result message says exactly when it unlocks.

On BSC, Robinhood and Arc the bot also checks whether the address has contract code. If it does, you get a warning — a contract that cannot accept a plain transfer loses what is sent to it — but not a refusal.

**The 24h cooldown can be switched off.** It is one setting for all chains, and it lives on the Solana withdrawal-address screen (`/address` → Solana → ⏳ Turn cooldown off). Turning it *on* never asks for a PIN; turning it *off* does, if you have one — because "off" means an address set by someone who took over your Telegram works immediately. It is on by default and the screen marks it *recommended*.

## Withdrawing — `/withdraw`

Network → asset → amount → confirm → sent, with a receipt linking the transaction. `/withdraw` is also the 💸 Withdraw button on `/balance`.

| Chain           | Assets          |
| --------------- | --------------- |
| Solana          | SOL, USDC       |
| BSC             | BNB, USDC, USDT |
| Robinhood Chain | ETH, USDG       |
| Arc             | USDC            |

* Reply with an amount, or `MAX` to send everything. On SOL, `MAX` leaves a small reserve so the wallet stays funded for fees.
* **No PIN.** A withdrawal has exactly one possible destination — your verified address — so a PIN here would guard the one action an attacker has no use for. What you get instead is the confirmation tap: amount and destination shown back before anything is signed. `/cancel` or the Cancel button stops it.
* **Cooldown.** If you changed the withdrawal address in the last 24 hours (and the cooldown is on), withdrawals wait until it unlocks.
* **Daily limit: $10,000 per rolling 24 hours**, across everything you withdraw on every chain. The refusal shows what you have used, what is still available, and what this withdrawal would be; the oldest withdrawals drop out of the window as the day moves. If prices cannot be read to value the withdrawal, nothing is sent — try again in a minute.
* **Fees you owe are held back.** If the wallet owes platform fees, that amount stays in the wallet; the refusal tells you how much is owed and how much you can withdraw now.
* **One at a time.** While a withdrawal from the wallet is still processing, another one waits — check your balance before sending again.
* **Network fees.** Solana withdrawals need a little SOL in the wallet for the fee. BSC / Robinhood withdrawals need enough BNB / ETH to pay the transfer's own gas; on Arc the fee is paid in USDC. The amount prompt warns you when the wallet looks short, and nothing is sent if the fee can't be covered or live fees can't be read.
* **USDC to a Solana address that has never held it** fails until that address has a USDC token account. Receive USDC there once, then retry.

## Withdrawal PIN — `/pin`

Optional. 4–8 digits. What it gates, exactly:

* changing your withdrawal address on any chain, and turning its 24h cooldown off;
* the final confirmation of a `/bridge`;
* skipping the 24-hour wait on a key export.

What it never gates: withdrawing to your verified address, and anything to do with trading.

The `/pin` screen offers 🔒 Set a PIN, or — once set — ✏️ Change PIN, 🗑 Remove PIN (both need the current PIN) and ❓ Forgot it?.

**Three wrong guesses lock every PIN-guarded screen for an hour.** The lock is shared across those screens.

**Forgot it?** Start a reset from `/pin`. It takes 24 hours; after that you can set a new PIN — or remove it — without knowing the old one. Your current PIN keeps working until then. **Cancelling a reset (✋ Cancel reset) never needs the PIN**: if someone else started it, that is your way to stop it, and you are told when a reset starts.

## Exporting a key — `/export`

You can take your private keys out. Your wallet holds two separate keys, and `/export` asks which:

* **🟣 Solana** — loads into Phantom or any Solana wallet;
* **🔷 EVM (BNB, Robinhood & Arc)** — one key, and one address, on every EVM chain MoFo supports; loads into MetaMask, Rabby or any EVM wallet.

Exporting one does not hand over the other. You do not need a withdrawal address to export.

**How the key is released:**

* **With a PIN:** tap 🔒 Enter PIN and export, enter it, and the key is released now. (⏳ Wait 24h instead is also offered, for a forgotten PIN.)
* **Without one:** tap ⏳ Start the 24h wait. You are told the export is pending, and you can **cancel at any point without a PIN** — ✋ Cancel export is on every screen from the request onward. If you did not start this, cancel it. When the wait is over, come back to `/export` and tap 🔑 Reveal my key.

The key arrives as a **one-time link to a MoFo page (cards.mofo.gg) that opens once and expires after 10 minutes**, and the message names which chain's key it is. Anyone who opens the link gets the key — don't forward it. You can export again later.

The bot warns you if you have open positions (they keep running) and if you have exported this key before (a new link does not retire the old key). Some older wallets were created in a way that does not allow export — the bot says so, and `/withdraw` is how funds leave those.

What you are agreeing to, in the bot's own words:

* Anyone who has that key can move everything in this wallet — you, or anyone who gets hold of it later.
* **An exported key cannot be revoked.** There is no un-export. If it leaks, the only fix is moving the funds yourself.
* Your withdrawal address, its 24h cooldown and your PIN only apply to actions taken through this bot. They don't apply to anything you sign yourself.
* The bot keeps working. Copying, positions, selling and your exit rules all carry on.
* Trades the bot routes still pay the platform fee. Trades you make yourself don't — we don't see them and we don't charge for them.
* If you buy or sell outside the bot, your positions here can drift. We read the chain and follow it down.

## Closing your account — `/close`

`/close` stops the bot trading for you and sends your money back to you:

* Copying stops — every follow is switched off.
* **You decide what happens to open positions:** 💱 Sell them first (the bot places the exits; come back to `/close` when they are done) or 📦 Keep them and close (nothing is sold; the coins stay in your wallet).
* Your cash balances — SOL/USDC, BNB/USDC/USDT, ETH/USDG, USDC on Arc — are withdrawn to the withdrawal address you verified **on each chain**. That is the only place they can go, so every chain with a balance needs one, and the 24h cooldown applies if you changed one recently.
* A small amount of SOL is left behind, and a little gas on each other chain, so the wallet stays usable.
* Platform fees you still owe are left in the wallet to cover them. If the balance cannot cover both, you get paid and the fee waits — it is never taken out of what is yours.
* If a sale is still running on the wallet, `/close` waits — try again in a minute.

**This is not a deletion.** Your wallet still exists on chain and the address stays yours. Anything you chose to keep stays in it. Your history and referral earnings stay. `/start` reopens the account with the same wallet (copying stays off until you set it up again). Nothing here asks for a PIN.

A coin that cannot be sold right now — no route anywhere we can reach — does not stop you closing; it stays in your wallet and you can try again later from Positions after reopening.
