FlipTrainer
Blueprints Docs Install

documentation

How all of it works.

The manual for the whole product — what each screen does, what it costs, and what the server does and doesn't hold on your behalf.

What is FlipTrainer

A Chrome extension and web app for trading Solana memecoins — with a risk-free mode to learn in, a copy-trading lab to research wallets, a one-click token launcher, and a visual strategy engine that runs on our servers.

It works alongside the terminal you already use. Open a token on Axiom, GMGN or Padre and the side panel is already looking at it; a floating trade window can be injected straight into the page.

Where everything lives

WhereWhat it's for
TradeOpen and close positions on the token you're viewing, in training mode or on-chain. Trade history lives behind the same tab.
CopyWatch wallets, filter their activity, and decide what each event does — log it, open the token, or buy alongside it.
DeployLaunch tokens, vamp trending ones, keep an archive of drafts, and review the P&L of past launches.
RewardsClaim what your wallets have earned — pump.fun creator fees, cashback, and the rent locked in empty token accounts — with one button.
ShopBuy credits, top up your virtual trading balance, and send a tip or a message to the author.
BlueprintsOn the website: the node graph builder and the panel showing your running strategies.
Real market, simulated balance Token addresses, prices and liquidity are real throughout. In training mode the only fictional thing is your balance.

Installation

FlipTrainer is a Manifest V3 Chrome extension. Installing takes under a minute and you sign in with Google.

Available now FlipTrainer is live on the Chrome Web Store — open the listing.

Requirements

  • Google Chrome 88 or later, or any Chromium-based browser
  • A Google account for sign-in

Steps

Open the store listing

Use the Install button at the top of this page.

Add to Chrome

Confirm the permissions prompt when it appears.

Pin it

Click the puzzle icon in the toolbar and pin FlipTrainer so it stays visible.

Sign in with Google

Your account and wallet are created automatically. The same login works on this website and in the blueprint builder.

First steps

Signing in for the first time sets your account up completely — there is no onboarding wizard to sit through.

What happens on first login

  • A virtual trading balance is credited so you can trade immediately
  • A real Solana wallet (Ed25519) is generated for your account and encrypted at rest
  • A starting grant of credits is added, which pays for copy-trading actions

Making the first trade

Open a token somewhere

Any token page on Axiom, GMGN or Padre.

Open the side panel

The Trade tab reads your active tab and pulls the token's live price and metadata.

Check the mode

Training mode spends virtual SOL; on-chain mode spends real SOL from your wallet. The toggle sits at the top of the Trade tab.

Tip The buy and sell preset buttons are editable — click the wrench and set the four sizes you actually trade.

Glossary

The trench vocabulary — the words you'll meet in every memecoin chat, chart and Telegram group, and what they actually mean.

Basics

TermMeaning
TrenchesThe battleground of brand-new memecoins — hundreds launch every hour and most die within minutes. Being "in the trenches" means hunting fresh launches all day.
DegenA trader who apes into high-risk coins for the thrill and the upside, fully aware most of them go to zero.
CA (contract address, mint)The token's unique on-chain address. The only reliable way to find the real coin — names and tickers are easily faked.
TickerThe token's $SYMBOL. Not unique — anyone can launch a coin with the same ticker, so always verify the CA.
MC (market cap)Price × total supply. Trenchers quote market cap instead of price — "bought at 60k, sold at 2M".
Bonding curvePump.fun's built-in pricing formula: every buy pushes the price up along a preset curve, every sell pushes it down. No order book, no liquidity pool until migration.
Migration (graduation, bonding)When a coin completes its bonding curve (~$69k MC on pump.fun) and its liquidity moves to an AMM. Surviving to migration is the first big milestone.
LP (liquidity, liquidity pool)The pool of SOL + tokens that trades execute against. Thin liquidity means every buy or sell moves the price a lot.
ATH (all-time high)The highest price or market cap the coin has ever reached.
DevThe wallet that created the token. Everyone watches what the dev does: holding looks bullish, "dev sold" usually nukes the chart.

Dangers & scams

TermMeaning
Rug (rugpull, slow rug)The creator or insiders dump their supply or pull the liquidity, sending the price to zero. A "slow rug" is the same theft spread over hours or days of small sells.
Bundling (bundle, bundled supply)The dev buys a huge share of the supply at launch through many wallets in the same block (a "bundle") to hide it. Bundled supply eventually dumps on everyone else.
Snipe (sniper, sniping)Buying within the first blocks of a launch, usually with bots, to flip on everyone who comes in later.
HoneypotA token you can buy but never sell — the code blocks sells (freeze or transfer hooks). Money goes in and never comes out.
InsiderA wallet connected to the dev that buys before the public knows anything. A cluster of insiders holding big supply is a red flag.
Vamp (vampire attack)Launching a copy of a coin that is currently pumping (same name and ticker) to siphon off its buyers and hype.
FarmingTreating followers as a crop to harvest: a dev or influencer launches or shills coin after coin, extracting money from the same audience each time.
Exit liquidityThe late buyers whose money lets earlier holders cash out. "Don't be exit liquidity" means don't buy someone else's top.
CTO (community takeover)The community revives a coin the dev abandoned or rugged — taking over the socials and marketing. Sometimes a real second life, often just another narrative.

Trading

TermMeaning
Ape (ape in)To buy big and fast without research because the chart or the hype looks good.
JeetSomeone who sells instantly at the first small profit or dip. Used as an insult — "jeets nuked the chart".
Bag (bagholder)Your position in a coin. A bagholder is stuck holding a dead coin's bag hoping it comes back.
PvPPlayer-versus-player: no new money entering, traders just taking each other's SOL. Fast in-and-out knife fights on fresh launches.
FOMOFear of missing out — buying only because the price is already flying. A classic top signal.
Pump & dumpCoordinated buying to spike the price, followed by dumping on everyone who FOMO'd in.
Moon (mooning)A massive run-up. "Mooning" means going vertical right now.
Round tripRiding a coin all the way up and all the way back down without ever selling.
FumbleSelling way too early and watching the coin do a 100x without you.
SlippageThe gap between the price you see and the price you actually get filled at. The bigger your order versus the pool's liquidity, the worse the fill — FlipTrainer simulates this too.
WhaleA wallet big enough to move the price by itself. When a whale sells, everyone feels it.

Culture & slang

TermMeaning
LARPPretending to be someone you're not — a fake insider, fake dev, fake whale — to hype a coin. From "live-action role-play".
KOL (key opinion leader)A crypto influencer whose "calls" can pump a coin. Many are paid to shill and sell into their own followers.
ShillTo aggressively promote a coin you hold so others buy it and push your bag up.
AlphaEarly, actionable info that gives you an edge — a coin about to trend, a wallet worth tracking.
Diamond hands (paper hands)Diamond hands hold through anything; paper hands sell at the first red candle.
RektWiped out on a trade. See: buying the top, riding a rug.

How trading works

Training mode mirrors real trading mechanics closely enough that the results mean something. Prices are live, fills are simulated against real program logic, and the market's costs are deducted.

Price data

Prices stream from a Solana validator over gRPC (Yellowstone / Geyser). Pump.fun and Pump AMM activity is decoded on the backend and every token is priced from its on-chain bonding-curve or pool reserves — the same marginal price your terminal shows, with no polling delay.

How a fill is computed

Your trade is executed against the real pump.fun or Pump AMM program bytecode running inside an in-process Solana VM, with the pool's mainnet state cloned in. The fill price is read out of the trade event the program emits — not estimated from a formula.

A useful consequence: price impact is inherent, not bolted on — a large order walks the curve as it fills.

If the VM is unavailable the system falls back to constant-product math, where the average fill is derived from the pool's SOL reserve: a buy fills at spot × (1 + amount / R), a sell at spot / (1 + amount / R).

P&L

P&L = (exitPrice − entryPrice) × positionSize − commission

All money math uses high-precision decimals, so nothing drifts through rounding.

Live updates

While a position is open the panel receives price updates over a persistent event stream and your unrealized P&L updates on its own. Update frequency follows on-chain activity — a quiet token ticks less often than a busy one.

Migration

When a bonding curve completes and the token migrates to the AMM, open positions are re-keyed to the new pool automatically.

Opening positions

Find a token, pick a size, confirm. The entry price is captured at the moment you confirm.

Open the token

On Axiom, GMGN or Padre, then switch to the Trade tab. You can also trade from the floating window injected into the terminal page itself.

Choose a size

Use one of the four preset buttons or type an amount. You can't exceed your balance.

Confirm

The fill is simulated, the entry price and timestamp are recorded, and your balance drops immediately.

Commission A fee is deducted when you open — see Commission for the breakdown.

Closing positions

Close whenever you like. The exit is priced at the live on-chain price at that moment.

Three ways to close

  • One position — the Close button on that row.
  • Everything — the close-all control in the positions header.
  • Part of it — sell 10%, 50%, 90% or 100% to take profit or trim risk while keeping the rest open.

Afterwards

  • Proceeds land back in your balance
  • The trade moves to history with full entry and exit detail
  • The realized P&L and win-rate cards update
Note Commission applies on the way out as well. The realized P&L you see is already net of both sides.

Commission

Simulated trades are charged what a real trade would have cost. Without that, every strategy looks better on paper than it performs on-chain — which defeats the point of practising.

In training mode

Fill computed byChargedWhy
The Solana VM (default)0.9%The pump.fun protocol fee is already inside the fill the program returned, so only the terminal fee is added.
Constant-product fallback2.15%That math doesn't model the protocol fee, so both parts are charged: ~1.25% pump.fun + ~0.9% terminal.

Both are deducted on entry and on exit, exactly like the real thing.

Worked example

Open position:    10.000 SOL
Open commission:  -0.090 SOL   (0.9%)
Effective entry:   9.910 SOL

Token price +20%
Close value:      11.892 SOL
Close commission: -0.107 SOL   (0.9%)
Net received:     11.785 SOL

Net P&L:          +1.785 SOL   (+17.85%)

On-chain trades

RouteFee
Manual buy or sell0.75%
Copy trades, blueprint trades, launch snipes1%
The launch transaction itself1% of the dev buy, minimum 0.01 SOL

Rates are stored in the on-chain program's config account. The client sends only a route identifier — it cannot declare a rate. The fee base is your side of the trade: on a buy it is the SOL amount you submit (taken out of it before the swap — you spend exactly what you entered), on a sell it is the SOL you actually receive after the swap. The program transfers the fee straight to a platform wallet.

Why automated trades cost more An exit that happens outside the program can't be charged, so the entry rate compensates. Blueprint nodes cost no credits on top — you pay the on-chain fee and nothing else.

On-chain mode

The mode toggle at the top of the Trade tab switches the same interface from virtual SOL to real SOL. Orders are signed by your FlipTrainer wallet and executed on Solana.

What changes

  • Amounts are real SOL, taken from your primary wallet
  • Positions and history come from a separate on-chain ledger — the two are never mixed
  • Trades your wallet made outside the extension still show up, because positions are rebuilt from chain events rather than from what the app remembers doing
  • There is no simulation: fills are whatever the network gives you

Limits

  • Manual buy size is capped per transaction as a safety rail
  • Trading requests are rate-limited per account
  • USDC-quoted pools are supported for trading; some reporting features convert them via the live SOL/USD rate
Before you flip it Export and back up your private key first. See Security.

Watching wallets

Add any Solana address on the Copy tab, give it a tag, and every matching transaction it makes lands in your activity feed within a moment of hitting the chain.

Managing the list

  • Search across addresses and tags
  • Pause a single wallet with the eye toggle, or pause all of them at once
  • Import up to 200 wallets in one request — the format is Axiom's own tracked-wallet export, so an existing list transfers as-is
  • Export back out in the same format

Your terminal

One terminal is active for your whole account — Axiom, GMGN or Padre — chosen in the extension popup. Every link the app opens for you, from alerts to activity rows, points at that terminal.

Activity log Every matched event is recorded in a paginated feed with a colour-coded badge, the wallet's tag, the SOL amount and a link to the token. That log is free and always on.

Events & filters

Each watched wallet has its own configuration: which events to react to, how to filter them, and what should happen when one fires.

Event types

EventFires when the wallet…
Createlaunches a new token
Buybuys, on the curve or on the AMM
Sellsells any part of a position
Migratehas a token complete its curve and move to the AMM

All four are available on every account.

Filters

Filters are set per event type, and a trade has to pass all of them:

FilterEffect
Min SOLIgnore trades below this size — cuts out dust and test buys.
Min market capSkip anything below this cap.
Max market capSkip anything above it, to stay in early-stage plays.

Market caps are entered in thousands of dollars.

What an event can do

  • Log it — always on, free.
  • Open the token in your terminal the moment it fires.
  • Trade on it — one direct action per event, Buy or Sell; see Trading on events.
  • Run a blueprint — start your strategy graph on the caught token (on-chain mode only).
Notifications Alerts arrive over the live event stream and as browser push notifications, so they reach you with the panel closed.

Trading on events

Watching a wallet tells you what it did. A trade action lets the event act on its own: attach Buy or Sell to any event type, and the moment it fires the trade goes through on your side. One action per event — picking Buy clears Sell and the other way round.

Buy sizing

  • Specify amount — every buy uses the same size you set.
  • Mirror wallet amount — match the wallet one-to-one, copying the SOL size it traded.

Sell sizing

  • Specify percent — sell that share of your remaining position.
  • Mirror wallet amount — sell the same SOL value the wallet cashed out. Nothing to sell (no position yet) is a normal skip, not an error.

Buy times

On the token-purchase event you can wait for the wallet's N-th matching buy of a token before acting: from that buy onwards every further buy triggers the action (enable Trigger once to act a single time). The condition gates the whole event, so a blueprint bound to it waits for the same signal.

Which mode it runs in

The global TRAINING / ON-CHAIN switch is stamped into the wallet when you press SAVE: training trades are virtual and land in your normal trade history, on-chain trades are signed with your own wallet. Flipping the switch later does not change saved wallets — re-save to move one.

Credits Trades are charged in credits per action, and so are alerts that open your terminal. The activity log is free. See Credits.

Launching a token

The Deploy tab launches a pump.fun token from inside the extension, signed by the wallet you choose.

The form

FieldDetail
ImageClick, drag and drop, or paste with Ctrl+V. JPG, PNG, GIF or WebP up to 15 MB — it's compressed in the browser before upload.
NameUp to 32 bytes.
TickerUp to 10 bytes.
DescriptionUp to 500 characters.
SocialsWebsite, X and Telegram, all optional.
Initial buyHow much of your own token to buy in the same transaction that creates it. Zero means create only.
WalletWhich of your wallets deploys, with its live balance shown.
BlueprintOptional. A strategy graph that starts the instant the token mints. Only deploy-type blueprints are listed here.

Name and ticker limits are measured in bytes, so non-Latin characters and emoji are counted correctly.

Options

  • Mayhem mode — launch into the pump.fun Mayhem arena.
  • Cashback — enable trading cashback on the coin.
  • Pair with USDC — a USDC-quoted curve instead of SOL. This forces the dev buy to zero.
Preflight A mint is irreversible, so unlike trades the launch transaction is simulated by the node before it's accepted. You get a real error message instead of a transaction that silently disappears.

Vamp, archive & batch

Vamp

Vamping means launching a copy of a coin that's currently pumping — same name, same ticker — to siphon off its buyers and attention. FlipTrainer puts a pair of bat buttons on every card in the live feed of a supported terminal and on token headers:

  • Clone into Deploy — scrapes the name, ticker, image and socials and pre-fills a draft, so you can edit before you launch.
  • Instant deploy — one click, no confirmation, real SOL: metadata upload through to mint.

What that click does is set by the Vamp switch in the injected settings panel, Manual or Blueprint. Manual takes a buy size — zero means create only — and the wallet that mints; leave the wallet on Main (auto) to use your primary. Blueprint hands the launch to a strategy graph instead: its deploy node creates the token and decides the buy size and the minting wallet, so neither field applies. The selector lists deploy-type blueprints only. Pick a graph before you click — on Blueprint with none selected the button refuses rather than quietly minting a bare token.

Your browser never downloads the source image. The server fetches it from an allowlist of CDN hosts, validates the real file type from its bytes rather than its claimed type, and caches it — trending tokens get vamped repeatedly.

Archive

Draft pages survive panel closes and tab switches, but not a browser restart. The archive button stores a draft permanently instead, with the image, every field, both option sets, the dev buy, the wallet and the blueprint. Archived tokens are listed newest first with their age; deploy straight from the record or delete it.

The point is preparation: build a shelf of finished tokens while you're calm, and launch one the moment a narrative appears.

Batch

The tab bar holds up to eight draft pages, each a complete token. Click to open one; Ctrl+click to mark it active. Deploying with several active launches them in sequence, showing progress as it goes and finishing on a summary that lists each ticker with its result.

Mints & bundling

Vanity mint addresses

Launches draw from a pool of pre-generated keypairs whose address ends in pump, so your token carries the authentic suffix. Each key is claimed atomically and used once. If the pool is ever empty the launch falls back to a random address rather than failing.

Metadata

Images and the metadata JSON are hosted on our own storage and served from our own CDN, not through a third-party IPFS gateway. Keys are content-addressed, so re-uploading the same image doesn't create a second copy.

The image is written first and the metadata second — an orphaned image is harmless, metadata pointing at a missing image is not. Both are then verified over the public URL, because a successful write doesn't prove a successful public read. A background health check runs continuously; if storage is unhealthy the launch is refused rather than shipping a URI that will 404 forever.

Atomic create + snipe

Through a blueprint's deploy node, the launch and its snipes ship as a single bundle:

  • tx0 — the creator's transaction: create the token, plus the dev buy.
  • tx1…N — snipe buys from up to three more wallets, built against a curve that doesn't exist yet. Because the accounts are derived locally, these legs cost no network round-trips to construct.

The bundle executes in order, so the snipes see the curve tx0 just created, and the whole thing lands atomically or not at all. Four wallets total, every leg must buy something, and duplicate wallets are rejected. Retries use a fresh blockhash each attempt.

Head start The creator wallet is subscribed to the event stream before the mint goes out, so the pool attaches to your graph fractionally ahead of anyone watching for it.

Launch history

The history toggle on the Deploy page lists past strategy runs with the P&L of each launch: invested SOL, realized SOL, total and percentage.

How it's calculated

  • Attribution is structural — only the legs the graph actually executed are counted, using the real fills the trades reported.
  • Sells you made elsewhere count too. If you dumped from Phantom while the run was live, the launch's P&L still knows about it.
  • Only finished runs appear. The remaining position is valued at the last price seen when the run ended, and the number is frozen there.
  • Network and platform fees are excluded from the figure.

Honest gaps

Unknown values render as a dash rather than a fake zero, and two situations are flagged explicitly: contaminated when more tokens were sold than the graph bought, and missing fills when a leg's amounts never came back. USDC-quoted launches report no P&L at all, because the fill data for them doesn't carry a SOL figure to compute one from.

How a blueprint run works

A blueprint is a graph you draw in the builder. Saving it compiles the canvas into a strategy definition; running it hands that definition to a service that executes it against live chain data. Every trade a blueprint makes is a real on-chain trade.

Blueprint types

Every blueprint has a type, picked in the builder's top-right corner. Deploy graphs start from the Deploy page or a Vamp click and must contain a deploy node — it lives only in this type. Trade graphs run manually on a token from the floating window. Copy graphs start from wallet-event bindings on the Snipe page; to clone a launch, a copy graph fires a Spawn node that starts a separate deploy blueprint while the graph itself keeps trading the whale's token. Each picker lists only blueprints of its own type, and the server refuses a mismatched start.

It doesn't need your browser

The run's position in the graph and its working memory are written to the database at every pause, so closing the tab changes nothing and a service restart resumes exactly where it stopped. If the service went down in the middle of sending trades, the run stops and reports that — it will not blindly re-fire them.

Branches run side by side

A Parallel node splits the run into independent branches: each carries its own position and its own clock, so one can sit on a price or PnL watch while another keeps trading. The node continues once every branch has finished. Branches can reach into each other — a watcher wired into a loop's break input stops that loop from the outside.

Skipped is not failed

A leg with nothing to sell, or a share that rounds to zero, is skipped: no transaction is sent, the reason is recorded, and the graph continues. This makes a useful idiom safe — sell 100% → delay → sell 100% is a retry, because sell is a percentage of what's actually left. The second one either finishes the job or does nothing at all.

Failure handling

Trade nodes have two exec outputs, success and fail. Wire the fail output and the run follows it and stays alive. Leave it unwired inside a loop and the run moves to the next iteration. Leave it unwired outside a loop and the run ends as failed.

Triggers

  • Manual — run a saved trade blueprint on the current token from the floating window's Blueprints list.
  • On launch — attach a deploy blueprint on the Deploy page. The graph's own deploy node mints the token, binds to the pool the moment it exists, and trades from there.
  • On wallet events — bind a copy blueprint to a watched wallet's events on the Snipe page; the graph starts on the token the event was about.

Watching a run

The instances panel polls every few seconds and shows status, the legs executed with their signatures, the addresses of any throwaway wallets the run created, and a cancel button.

Limits

LimitValue
Nodes per graph24
Wires per graph32
Wallets in one atomic bundle2–4
Snipe wallets on a launch3, plus the deployer
Loop iterations1–1000, or unlimited with a break
Transitions per run10 000
Run lifetime24 hours
Runs at once, per account50
Running graphs per tokenunlimited

Wallets & pins

Wallet nodes aren't part of the execution flow. You wire them into a trade node's wallet pins, and the amount for each wallet lives on the edge you drew — so one Buy node can trade from several wallets at once, each with its own size.

One Wallet node can hold a whole list of wallets, managed in its Settings panel. Every edge you draw from it then acts for each wallet in the list: a node with two or more wallets plugged into the bundle pin is a valid bundle by itself, and on the deploy pin the first wallet of the list is the creator.

The two wallet pins on Buy and Sell

PinBehaviour
Plain
circle pin · LEGS
Each wallet trades in its own independent transaction, in parallel. Landing order is not guaranteed. No limit on how many wallets.
Bundle
diamond pin · BUNDLE
Two to four wallets land together in one block — all of them or none. The same wallet can't appear twice. Exactly one wallet is rejected: use the plain pin instead.

Both pins run concurrently; neither waits for the other.

The copy pin (copy graphs only)

PinBehaviour
Copy
ring pin · COPY
Takes exactly one Copy Wallet node and parks the trade node until the trigger wallet's next trade on this token: Buy waits for their buy, Sell waits for their sell. The edge value is an optional wake threshold — minimum SOL bought for Buy, minimum % of their own position sold for Sell; empty means any trade. With this pin wired the node needs no wallets of its own — it becomes a pure event. Buy waits ride the pre-execution stream for speed; Sell waits use confirmed events. A leg set to MIRROR (toggle while editing its edge value) copies the whale's size instead of the fixed number: the SOL they bought, or the % of their position they sold.

The two pins on Deploy

PinBehaviour
Deployer
diamond pin · DEPLOY
One to four wallets. The first is the required creator — its edge amount is the dev buy, and zero means create only. Up to three more snipe atomically in the same block as the create transaction; with snipers present, every wallet including the creator must buy something.
Plain
circle pin · BUYS
Ordinary buys placed after the mint and pool attach, as independent parallel transactions. No limit.

Exec outputs

  • 🟢 Success — taken when the node's legs executed. Skipped legs count as success.
  • 🔴 Fail — taken when a leg fails.
  • ▶ Path — one per branch on a Parallel node; every wired path starts its own branch.

Throwaway wallets

A Create Wallet node generates a fresh keypair every time the graph runs. It exists only inside that run, it doesn't consume one of your saved wallet slots, and there's no key export for it — so the graph itself has to sweep the funds back to a real wallet before it finishes. Fund it with a Send node, trade from it, sweep it home.

Node reference

Every node in the palette, and what it does. Select a node on the canvas and the same description appears in the builder's sidebar.

NodeWhat it doesOutputs
Start Where the run begins. Exactly one per graph, can't be deleted, takes no input. next
Deploy Mints the token from the deploy context, attaches the graph to the fresh pool and keeps trading it. Re-entering it after a successful mint reports the token as already deployed — there is never a second mint. 🟢 next
🔴 fail
Buy Buys the token. Per-wallet SOL amounts live on the wallet edges. In copy graphs the copy pin parks the node until the trigger wallet's next buy, and a leg can mirror the whale's buy size. 🟢 next
🔴 fail
Sell Sells a percent of each wallet's remaining position. Percents live on the wallet edges. In copy graphs the copy pin parks the node until the trigger wallet's next sell, and a leg can mirror the % of their position they just sold. 🟢 next
🔴 fail
Wallet Binds your real wallets, main or subs — one node can hold a whole list, and every edge then acts for each wallet in it. The bottom pin feeds trade nodes; the magenta top pin plugs into a Send's recipients.
Create Wallet A fresh throwaway wallet generated on every run. Fund it with Send and sweep back to main before the graph finishes.
Copy Wallet The whale to follow — copy graphs only. No address on the node: the run is spawned by a sniper event and this stands for that trigger wallet. Plug it into the copy pin of Buy or Sell to wait for their next trade (the edge value sets an optional wake threshold).
Price Waits for a price condition and the first hit wins, cancelling the rest. Percent is the change against the price when the node was entered; k$ is an absolute market cap, up meaning at or above and down meaning at or below. Each condition row is its own output pin. one per row
timeout
PnL Waits for your PnL on this token to cross a threshold and the first hit wins. Percent is total PnL against what you put in, SOL is the absolute profit — up means gain at or above the value, down means loss at or below it. The number is exactly the one the extension shows you: every trade on this token counts, whether the graph made it, you made it by hand, or it came from another wallet of yours. Wallets connected to its wallet pin narrow the count to their side of the position; none connected counts your whole position in the token. The no position pin fires once no wallet in scope holds the token any more — sold by the graph or by you, by hand. Conditions are still checked first, and if the pin is left unwired the branch simply ends there instead of waiting out the 24-hour limit. It also wins over the timeout: a closed position leaves through this pin even if the wait had already run out. one per row
timeout
no position
Delay Waits a fixed time, from 0.05 seconds up to 24 hours, then continues. The wait survives a service restart. next
Loop FOR runs the body a fixed number of times, 1 to 1000. LOOP runs until something breaks it. When the body chain reaches an unwired output it returns to the loop for the next iteration, so a failure inside the body doesn't kill the run. ▶ body
⏹ complete
🔴 break (input)
Parallel Runs its 2 to 8 paths at the same time, each as its own branch, and waits for all of them before the graph moves on. Inside a loop the next iteration starts only once every branch is done. one per path
Notify Sends a push message of up to 140 characters and can mirror it to Telegram — the bot has to be connected once, otherwise the toggle sends nothing. Free. next
Send Transfers between your own wallets: SOL as a percent of balance or a fixed amount, or the graph's token as a percent of holdings — toggled on the edge value. The top pin is sources, the bottom is recipients. next
Spawn Launches another blueprint. Trade blueprints start on this run's current token, deploy blueprints mint a clone of it; copy blueprints and self-launch are not allowed. next
Loop wiring The body output must be wired or the graph won't validate. There's no continue pin — an unwired output anywhere inside an active loop returns to it automatically, and those returns count toward the transition budget.
Watchdog pattern Loop on one Parallel path, a PnL or Price watcher on another, wired into the loop's break input: the watcher stops the loop from the outside. Use one break per loop — a second one replays the done chain. A branch whose fail pin is unwired ends the whole run, even inside a loop.

Where alerts arrive

FlipTrainer can reach you in three places. The activity log inside the side panel and browser push notifications work from the start; Telegram is opt-in and has to be connected once.

ChannelReaches you when…
Activity logthe side panel is open
Browser pushthe panel is closed, but Chrome is running
Telegramalways — the extension and the browser can be shut

Connecting Telegram

  1. Open the extension, go to your profile and press the Telegram icon in the LINKS row.
  2. Our bot opens in Telegram — press START.
  3. The icon in the profile turns blue: the chat is linked.

The blueprint builder has the same link: select a Notify node and press Connect Telegram in the description panel on the left.

The link is per account, and one Telegram chat belongs to one FlipTrainer account. To disconnect, send /unlink to the bot or press the icon in the profile again. Blocking the bot in Telegram disconnects it too.

What we can send to Telegram

SourceTelegram
Notify node in a blueprintYes — switch on send to telegram on the node
Copy-trading alertsNot yet — log and push only
Launches, purchases, subscriptionNot yet

A message from a Notify node carries the name of the graph, the text you typed into the node, and a link to the token in your terminal — whichever of Axiom, GMGN or Padre you picked in the profile.

Telegram doesn't replace push The channels are independent: a Notify node with the Telegram toggle on still raises the usual browser notification. Turning the toggle off leaves everything else untouched.

Your wallet

Every account gets a real Solana wallet, created silently the first time you sign in. It pays for on-chain trades, launches, credits and tips.

Multiple wallets

You can hold a main wallet plus up to ten more. Import an existing key or create new ones from the wallet page — nothing is ever replaced or deleted, so a new wallet is always an addition.

Mark any wallet as primary with the star. The primary wallet signs manual on-chain trades, shop payments and withdrawals, and its address is your deposit address. The activity toggle on each row controls whether its balance counts toward the total at the top — it's a display preference, stored locally.

What you can do per wallet

  • Rename it inline
  • Export its private key
  • Open it on Solscan
  • Withdraw from it to any address, including a MAX mode that drains it exactly, network fee accounted for

Rewards

The Rewards tab of the side panel collects everything your wallets have earned in one click: pump.fun creator fees from tokens you launched, cashback, and the rent still locked in empty token accounts left behind after selling. It sweeps every wallet on the account and returns the SOL to whichever wallet earned it; accounts that can't be safely closed are left alone.

Separate balances Your real SOL and your virtual trading balance are completely independent. Training trades never touch real funds.

Funding your wallet

You need real SOL to trade on-chain, launch tokens, buy credits or tip.

Copy your address

Click the FlipTrainer icon in the toolbar. Your primary wallet's address is at the top of the popup.

Send SOL to it

From Phantom, Solflare, Backpack or an exchange withdrawal — it's an ordinary Solana address.

It updates on its own

The balance refreshes once the transfer confirms, usually within seconds.

Keep some headroom Leave a little SOL beyond the trade itself for network and priority fees, and for the rent on token accounts — which you can reclaim later.

Security

FlipTrainer wallets are custodial. The server holds your private key encrypted and signs on your behalf — which is why trading, paying and launching never interrupt you with a wallet popup. This page explains exactly what that means, because it's the most important trade-off in the product.

Why custodial?

FlipTrainer started self-custodial — the key lived on your device and the client signed everything. We moved custody to the server because the features this product is actually about are impossible any other way:

  • Blueprints run without you. A graph keeps trading with your tab closed and your computer off. A key that only exists on your device can't sign a trade at 4am while you sleep.
  • Copy trading is a race. Reacting to a whale's trade is worth doing only within milliseconds. A round-trip to your device — let alone a wallet popup — loses that race every time.
  • Atomic bundles need every signature at once. A multi-wallet Jito bundle is built and signed as one unit, in one place, against one blockhash. That place has to be the server.
  • No popups, ever. Manual trades, payments and launches go through without a confirmation dialog interrupting the moment.

The honest cost of that speed is custody, and the rest of this page spells it out — including the export path below that keeps you free to leave at any moment.

How the key is protected

keyMaterial   = HMAC-SHA256(serverPepper, userID)
encryptionKey = HKDF(SHA-256, keyMaterial, randomSalt, "fliptrainer-wallet-v1")
              → 32-byte AES-256-GCM key

The encrypted key, its IV and its salt are stored in the database. The serverPepper is a secret held only in the server's environment and never written to the database.

What that buys you

ScenarioOutcome
Database is leakedKeys stay encrypted. The pepper isn't in it, and without the pepper the ciphertext is useless.
You lose your deviceNothing is lost. The key isn't on your device; sign in anywhere and your wallet is there.
Database and environment secret are both leakedFunds are at risk. This is the real risk of custody, and it's why the next section exists.

The trade-off, stated plainly

Because the server can decrypt your key, the operator is technically capable of signing with it. There is no cryptographic guarantee against that — only the fact that it isn't done. If that isn't acceptable to you, don't leave meaningful balances here.

You are never locked in Export any wallet's private key at any time from its row on the wallet page and import it into Phantom or any Solana wallet. Doing that gives you a self-custodial copy — back it up, and treat the FlipTrainer wallet as a hot wallet holding only what you're actively trading.

Account security

  • Sign-in is Google OAuth, verified server-side against Google before any session is issued
  • Sessions use short-lived access tokens plus a refresh token that rotates on every use — an old refresh token stops working the moment it's used once
  • Signing out revokes the session server-side, not just in your browser

Credits

Credits are the internal currency, and they exist for one part of the product: the copy-trading actions that cost us work to run for you. There are no subscription tiers, no auto-renewal and nothing to cancel — every purchase is one-time.

What costs credits

ActionCost
Activity log entryFree
Alert that opens your terminal50 credits
Trade on an event250 credits
Blueprint nodes and on-chain tradesNo credits — you pay the on-chain fee only
Notify nodeFree

New accounts start with a grant of credits, so there's nothing to buy before you can try everything.

Running out

If your balance hits zero, all watched wallets pause rather than silently dropping events. Top up and they come back within a minute.

Trading balance top-ups

The trading balance tile converts credits into virtual SOL, delivered instantly with no on-chain transaction involved.

Paying with SOL

Packs are priced in dollars and paid on-chain in SOL from your FlipTrainer wallet, at the rate quoted when you buy. No cards, no payment processor.

Fund the wallet

You need the pack's SOL equivalent plus a small network fee.

Pick a pack

Open the Shop tab. Current balance and available packs are shown with their live SOL price.

Buy

The server signs and broadcasts the transfer for you — no popups, no manual signing.

Verification

The backend confirms the transaction on-chain, checks the sender, recipient and amount, then credits your account.

Price movement

The SOL price is pinned when you're quoted. If the market moves more than a few percent before you confirm, you're re-quoted rather than charged the stale amount. Money that has already been sent is never rejected over a small wiggle.

If something is interrupted

The payment is recorded before it is broadcast, so a crash can never leave a sent transaction unaccounted for. Anything left unfinished is picked up by a background reconciler with a 24-hour window, and the extension resumes a pending purchase on its own after a restart. Retrying a purchase is safe — each one carries an idempotency key, so you can't be charged twice.

Tips & support

The Tip tile supports development with a SOL donation, and doubles as the contact form. Either way the message reaches the author by email with your address attached, so you get a reply.

Two ways to send

From your wallet

Enter an amount and send it straight from your FlipTrainer wallet. The transfer is verified on-chain and the exact amount received is included with your message.

Copy the address

Prefer to pay from elsewhere? Copy the project address and send manually. Your message still gets through, without an amount attached since that transfer can't be verified here.

Just want to get in touch?

You don't have to donate. Choose copy address, write your message and send — the author gets your note and your email with no payment involved. Messages are short by design, up to 32 characters, so keep it to a sentence and expect the conversation to continue over email.

Minimum On-chain tips have a small floor of 0.001 SOL to avoid dust transfers.