Skip to content
Launch a coin

How fresh works.

Everything fresh does, in plain words: one ticker per narrative, one coin per tweet, and only the original stays fresh. The numbers on this page are read live from the same API the product runs on.

Keep it fresh.

For over a year the PvP across pump.fun has been rotten: every narrative gets copied, and the copies fight each other over it. Three no-mores built fresh.

  • No more useless coin pairings fighting over the same narrative.
  • No more creator fees sent to wallets that never claim them.
  • No more changing images, tickers and names just to launch the same coin again.

The fix is one coin for each narrative, with an aggressive buyback and burn, paired directly to our native token. Seven rules make it so:

Free
Anyone can launch a coin on fresh, completely free.
One ticker per narrative
Duplicate tickers and look-alikes are refused for 60 minutes.
One coin per tweet
The same tweet can never launch a second coin on fresh.
100% to buybacks and burns
Every creator fee goes to buying the coin back and burning it.
Paired to $FRESH
Every coin is paired to our native token, so activity across the launchpad feeds the same ecosystem.
One deployment wallet
Every coin is deployed through the same automated wallet, never by individual devs.
Automated buybacks
Every 3 minutes.

Anyone on pump.fun can still copy a successful launch, and nobody can stop them. What fresh does is give every coin launched here a structural advantage over its copies: while somebody else launches a copy and hopes people buy it, the original has a recurring source of buy pressure funded by its own trading.

Only fresh launches. Copies go stale.

Launching

Launching is free. You give a picture, a name and a ticker, and if you like the tweet (an X post) the coin is about, a description and links. The treasury behind fresh pays the cost of creating the coin (about 0.0115 SOL ) and deploys it through pump.fun. There is no payout wallet and nothing to sign.

One wallet deploys every coin. Because nobody but fresh touches the deploy, there are no dev bundles at block 0, and fresh never buys at creation.

Every coin is paired to $FRESH. pump.fun lets a coin trade against another pump coin instead of SOL, so buying a fresh coin means buying $FRESH first. Sniper bots trade SOL pairs, so block-0 snipes mostly can’t touch a $FRESH pair. Launches open when $FRESH is live.

The locks

The ticker lock. When a coin launched on fresh goes live on pump.fun, its ticker is locked for 60 minutes. The clock is fresh’s own, counted from the moment the coin is live; the countdown you see everywhere is that clock, not yours.

While the lock runs, nobody can launch that ticker on fresh: not the same letters, and not a look-alike (next section). The lock is a single row taken in one step, so if two people launch the same ticker at the same instant, exactly one of them gets it and the other is told it is locked. When the clock runs out the ticker is free again.

The tweet lock. A tweet (an X post link) is locked to its coin for good. The same tweet can never launch another coin on fresh, and the launch form checks it the moment you paste the link.

Same ticker, any disguise.

Three things count as a copy, strongest first. Exact: the same letters, whatever the case, the dollar sign or spaces. Look-alike: characters that read as the same letters. Same name: a different ticker on a coin with the same name, when the name is 4 or more characters.

To compare two tickers, fresh reads each one the same way: upper-case it and drop the $ and spaces; turn letters from other alphabets that look Latin (a Cyrillic М, О, А, Е, Р, С, Т, Х; Greek Α, Β, Ο, Ρ and so on) into the Latin letter; remove accents; turn the digits people swap in for letters back into letters (0 O, 1 I, 3 E, 4 A, 5 S, 7 T, 8 B); and drop everything else (dots, dashes, emoji, invisible marks). Two tickers that read the same are the same ticker.

Say $MOGGY (named “Moggy”) is locked. Here is how each ticker reads.
Someone typesRead asCounts asLaunching it on freshOn pump.fun
$moggyMOGGYExactRefused while it is lockedCounted as a copy
M0GGYa zero for the OMOGGYLook-alikeRefused while it is lockedCounted as a copy
МOGGYCyrillic М (U+041C)MOGGYLook-alikeRefused: not a ticker here (A to Z and 0 to 9 only)Counted as a copy
m.o.g.g.ydots between the lettersMOGGYLook-alikeRefused: not a ticker here (A to Z and 0 to 9 only)Counted as a copy
MÖGGYan accentMOGGYLook-alikeRefused: not a ticker here (A to Z and 0 to 9 only)Counted as a copy
MOGGY2MOGGY2DifferentAllowedNot a copy
MOG named “Moggy”a different ticker, the same nameMOGSame nameAllowedCounted as a copy

The launch form on fresh only takes 1 to 10 letters or digits, so a ticker with a Cyrillic letter, an accent or dots is refused as “not a ticker” there. pump.fun takes anything, so the watcher reads what it finds there with the same rules and counts the copy. A same-name copy is counted but cannot be refused, because the name is not part of the ticker.

Tickers launched somewhere else

On top of its own locks, fresh also refuses a ticker that someone else launched on pump.fun in the last 60 minutes (this check is on right now), so fresh never launches a copy itself. The launch form says “taken” and tells you when the ticker frees up.

This only covers what the watcher heard: a ticker launched there a moment ago may not be known yet.

Fees get squeezed.

Every fresh coin charges a creator fee, 3% of its volume. 100% of it goes to buybacks and burns. The wallet behind fresh collects the coin’s fees, buys the coin back on its own bonding curve and burns what it bought.

It is automated and runs every 3 minutes: nobody has to do anything. So far, across every fresh coin: 0 buybacks and 0 tokens burned (the last pass was not yet). Each coin’s page shows its own ledger: the fees in, what was bought, what was burned and the transactions.

More volume means more buybacks and less supply. That is arithmetic, not a promise about the price.

Fees

Launching is free. The treasury behind fresh pays the cost of creating the coin (about 0.0115 SOL ) and deploys it through pump.fun.

pump.fun pays a coin’s creator a fee on every buy and sell: 3% of volume at the rate fresh’s coins are charged today, collected in $FRESH because every coin is paired to it. 100% of it goes back into that coin as buybacks and burns (see the squeeze above). There is no fee share and no payout wallet: not for the launcher, and not for fresh.

The rate is pump.fun’s, not fresh’s, and pump.fun can change it. What a coin earns depends on its trading volume; most coins never trade much.

The watcher

The watcher listens to pump.fun’s stream of new tokens (through PumpPortal) in passes about once a minute, and keeps what it hears for a few hours. It is how fresh knows which tickers were launched in the last 60 minutes, and where the live numbers on the home page (launches and copies) come from.

Right now the watcher is …, last heard …, and in the last hour it saw … new tokens, … of which reused a ticker already launched that hour.

The watcher can only count what it hears, so a number can arrive a little after the launch. It never blocks anything: nobody can stop a deploy on pump.fun.

Limits

The ticker lock
60 minutes from the coin going live
The tweet lock
For good: one tweet, one coin
Buybacks
Every 3 minutes
Launches per wallet, per day
3
Launches per person, per day
3 (counted with a salted hash of the address that changes daily; the address itself is not kept)
Launches on fresh, per day
150
Between your launches
2 minutes
Ticker
1 to 10 letters or digits, A to Z and 0 to 9
Name
up to 32 characters
Picture
PNG, JPEG, GIF or WebP, up to 1.5 MB after the square crop. No picture: fresh draws the coin’s sticker for you.

A short list of banned words is refused in tickers, names and descriptions; the form tells you when one is hit.

The API

Public JSON, no key, no sign-up, cached for a few seconds at the edge. Terminals and bots can ask whether a ticker or a tweet is free before they launch. The routes are for servers and scripts.

GET /api/check?ticker=MOGGY&name=Moggy

What the launch form shows while you type: status is available, locked (with the fresh coin holding it and until when), taken (launched on pump.fun inside the lock window, with when it frees up), invalid or blocked.

Request
curl -s "https://your-host/api/check?ticker=M0GGY"
What comes back
{
  "ticker": "M0GGY", "key": "MOGGY", "lockMinutes": 60,
  "status": "locked",
  "reason": "$M0GGY reads as $MOGGY, which is locked on fresh.",
  "lock": { "mint": "<address>", "ticker": "MOGGY", "name": "Moggy", "from": 1792236749713, "until": 1792240349442 },
  "outside": null
}

GET /api/check-tweet?url=<x.com post link>

Is this tweet already a fresh coin? status is available, locked (with the coin that was launched from it, for good), invalid (not a post link) or empty.

Request
curl -s "https://your-host/api/check-tweet?url=https://x.com/<user>/status/<id>"

Also public

  • GET /api/coins?sort=new|locked|mcap coins launched on fresh
  • GET /api/coin/<mint> one coin, with its squeeze totals
  • GET /api/coin/<mint>/detail its supply and what is burned, its holders, its market and the ledger of every buyback
  • GET /api/feed the live pump.fun launches the watcher heard
  • GET /api/dupes tickers launched 2+ times on pump.fun in the last hour
  • GET /api/stats counts, limits, the buyback cadence and totals, the next pass, the watcher’s state and the server clock

What fresh does not do

  • It cannot stop anyone deploying a copy on pump.fun. It refuses copies here, and gives every coin launched here a structural advantage over the ones out there.
  • It does not vet, audit or endorse any coin. A lock or a burn says nothing about whether a coin is safe or will go up.
  • It does not pay fees out. 100% of a coin’s creator fees go to buybacks and burns.
  • It does not buy back on PumpSwap yet. A coin that graduates keeps having its fees collected; they are held for its pool buyback, which ships next.
  • It is not financial advice. Memecoins are volatile and most lose all of their value.