Skip to content

MTrade — Trading Terminal

MTrade (Moono-Trade) is a free trading terminal Moono provides on top of pump.fun. Use it to buy, sell, or trigger the migration of any pump.fun-launched token. It is not tied to a loan — anyone with a wallet, session, and profile can trade.

The product idea is simple: one Address Lookup Table per token, generated once, reused for every trade. The same ALT works before and after the bonding curve graduates to PumpSwap, so you don’t need to re-derive anything when the curve completes.

  • Single UI for pre- and post-graduationmtrade_buy_0 / mtrade_sell_0 read the bonding curve’s complete flag on-chain and route to the correct backend automatically. You don’t have to track whether a token has graduated.
  • One ALT per token — generate the ALT once for any token you care about, then every subsequent buy/sell skips the derivation overhead.
  • Delegated trading — if you’d rather not sign every trade with your main wallet, your in-browser service wallet can sign instead. Useful for scripting or session-driven trade flows.
  • Migration crank — when a curve has graduated but no PumpSwap pool exists yet, anyone can trigger the migration from MTrade with one click.

To use MTrade you need:

  • A connected Solana wallet
  • A signed session (the deterministic in-browser service wallet derived from your wallet signature)
  • A registered Moono User Profile

All three together unlock the MTrade routes. New to Moono? Run the registration flow described in the Borrower Guide → Step 1 — it’s the same profile used by every Moono feature.

Open /trade. The app lists all available launch configurations on the current network — these are the platform / quote-asset pairs the protocol supports (mainnet today: pump.fun / WSOL). Click the one you want to trade in.

The next page (/trade/:platform/:quote) asks for the token address (base mint) you want to trade. Paste a pump.fun-launched mint and click Trade. A realtime token list is on the roadmap; for now, bring your own mint address.

On the token page (/trade/:platform/:quote/:token), click Generate ALT in the header. The app derives all addresses needed for both pump.fun and PumpSwap branches of the universal ix and writes them into an Address Lookup Table owned by your wallet.

After generation:

  • ALT badge in the header shows the short ALT address (hover for full)
  • Regenerate — rebuild from scratch (useful if accounts shifted, e.g. fee recipients rotated)
  • Clear — drop the ALT reference from the app (the on-chain ALT keeps existing; you can rebuild it later)

The ALT is a one-time cost and is the slowest step of MTrade — every subsequent trade on this token reuses it.

The token page has three tabs:

  • Buy Exact — specify exact base tokens to receive (mtrade_buy_0(base_amount_out, max_quote_amount_in)); the app wraps up to max_quote_amount_in SOL into WSOL automatically. Pre-grad and post-grad routes are handled by the same ix; the on-chain handler picks the active branch.
  • Buy Market — specify exact SOL to spend (mtrade_buy_exact_quote_in_0(spendable_sol_in, min_base_amount_out)); the most common flow. min_base_amount_out is computed from your slippage setting.
  • Sell — specify exact base tokens to sell (mtrade_sell_0(base_amount_in, min_quote_amount_out)). Proceeds land on your WSOL ATA (post-grad) or directly as native SOL (pre-grad — close the WSOL ATA after to consolidate).

The token-balance row shows your current base and quote (WSOL) balances. The slippage slider gates the min_*_out / max_*_in arguments — tighter slippage rejects more reverts but lower latency partial fills.

If the bonding curve has completed (the Migrate hint appears at the top of the page), but no PumpSwap pool exists yet, you can trigger the migration:

  1. Click Migrate
  2. Approve the transaction (~0.05 SOL in rent for the new pool / lp_mint / ATAs; compute-unit limit set to 1M)

After the migration lands, the same MTrade buys/sells route through PumpSwap automatically. See the Migration guide for the full picture.

If the curve has not yet completed and is close to the threshold, the page shows a Buy to graduate hint with the exact SOL amount needed. Clicking it fills the Buy Exact form for that amount — useful if you specifically want to be the trade that crosses the threshold.

MTrade does not yet have a real-time discovery list. You bring the token address. A future version will index pump.fun launches and surface them in the UI.

Every trade can be signed by either your main wallet or the in-browser service wallet that’s been proved on your profile. Useful for:

  • Automated trading scripts that hold the service wallet’s keypair in memory
  • Session-driven flows where you don’t want to confirm each trade with a hardware wallet

Tokens bought via the service wallet land in the service wallet’s ATAs. You can forward them off-chain later, or drain the service wallet’s SOL via the Drain to my wallet button on the Profile page.

The slippage slider sets your tolerance for execution price drift between when you sign and when the tx lands. Lower = stricter (more reverts on rapid price moves). Higher = looser (rare reverts but worse fills in fast markets). The default is a sensible starting point; adjust per-trade as needed.

GoalUse
Trade a token that may or may not be graduatedMTrade (it handles both)
Trade pre-grad only and you trust pump.fun’s own UIpump.fun directly
Trade post-grad with a complex limit-order strategyA dedicated DEX aggregator
Trade and want to integrate with your Moono loans / presetsMTrade (same wallet, same auth, same ALT pool)

For most users — especially if you’re already using Moono for borrowing or LP — MTrade is the lowest-overhead way to trade.

  • Compute units — set the limit to ~400k for buy/sell, 1M for migrate. The app does this automatically.
  • Account count — every ix uses ALT; without one, the buy/sell tx wouldn’t fit Solana’s account limit.
  • No protocol fee — only pump.fun’s or PumpSwap’s own fees apply.
  • Token list — bring your own address until the indexer ships.