How $JUSTICE works.
A plain-English explainer of the platform, the bot, and the blacklist.
What is $JUSTICE?
$JUSTICE is a launchpad on top of pump.fun. You use it the same way you'd use any pump.fun launcher — connect a wallet, fill in a name and ticker, sign one transaction, and your coin goes live with the standard bonding curve.
The thing that's different is what gets attached to your coin in the background. Every launch ships with a public blacklist of around 500 wallets that have a documented track record of getting private allocations, shilling the chart to their audience, then dumping ninety minutes later. A bot watches those wallets on a low-latency mempool feed. The instant one of them broadcasts a buy or a sell on your coin, the bot lands a counter-trade one slot ahead.
Their buy fills further up the curve than they expected. Their sell exits into a lower price than they expected. Either direction, the spread they were trying to take from your holders gets routed back to your launch's buyback-and-burn instead.
The 30-second version
You launch a coin
Standard pump.fun mint. One signature, your wallet pays, your coin.
The blacklist gets attached
Around 500 wallets from kolscan, plus anyone you add manually in the wizard.
The bot starts watching
Helius Yellowstone gRPC stream, sub-50ms TX notification on the pump.fun program.
They trade. We land first.
Jito bundle one slot ahead. Frontrun their buy, sandwich their sell.
Every hit is on-chain
Public dashboard, public TX signatures, paste them into Solscan yourself.
Spread routes to buyback
What we pull from them goes into your coin's buyback-and-burn, logged per-launch.
The problem we're solving
If you've been on Solana for more than a week you've watched this happen in real time, probably to a coin you bought. The mechanic is so consistent you can set a timer to it.
- A KOL gets pinged about a launch. They get a private allocation through a throwaway wallet — sometimes a few SOL, sometimes a percent of supply, always before the chart is public.
- The chart goes live. They post about it. Their followers buy.
- At some point in the next two hours, the throwaway wallet sells. The chart breaks. The followers are holding.
- The KOL deletes the tweet, or doesn't. Either way they're up. Their followers are down. Their followers don't make the connection because they're looking at the wrong wallet.
The wallets are knowable. kolscan.io already catalogs them — who's connected to whom, which throwaway wallets fund which "personality" addresses, which addresses have a P&L pattern that only makes sense if you got the buy 30 minutes before the chart went public. None of this is private information. The only thing missing is consequences.
What happens when you launch
Here is the entire pipeline, end to end, from the moment you click "launch" to the moment a flagged wallet eats slippage on your curve. No hand-waving.
What the bot actually does
The bot is one long-running process. It doesn't run per-launch — it runs once, watching every live launch's combined blacklist at the same time. When a flagged wallet trades on any of those mints, it spawns a counter-bundle for that specific launch.
The watch
Public RPC websockets are too slow for this — by the time a websocket tells you a tx happened, the tx has already landed and the price has moved. The bot uses a Helius Yellowstone gRPC stream, which is a paid mempool feed that gives you sub-50ms notification of transactions while they're still in banking-stage. The subscription filter is the union of every live launch's blacklist plus the pump.fun program ID. Anything matching gets streamed to the decoder.
The decode
pump.fun transactions have a known instruction layout. The bot parses the inner instruction, identifies whether it's a buy or a sell, pulls out the mint, the trader, and the SOL amount, and confirms the trader is on the blacklist for that specific mint. If the same wallet is on five live launches' blacklists, this fans out into five concurrent counter-trades (capped by BOT_MAX_CONCURRENT).
The counter
The counter-instruction depends on the trade's direction and the launch's punishment mode. The bot constructs a VersionedTransaction with a ComputeBudget instruction (so we can pay extra to compute), the actual pump.fun buy or sell, and a Jito tip instruction (paying validators to include us in the next slot). Then it signs and submits as a Jito bundle.
Frontrun vs. sandwich, plainly
These are the two things the bot does. They're not the same thing. If you already know the difference, skip ahead.
Frontrun (their buy)
A flagged wallet broadcasts a buy. The bot sees it before it lands and sends its own buy with a Jito tip high enough to land in the slot before theirs. The bot's buy fills first, which moves the bonding curve up. Their buy fills second, against the curve we just moved. They get worse fills than they expected. Their slippage is our spread.
Sandwich (their sell)
A flagged wallet broadcasts a sell. The bot sells first, dumping its position into the curve at the current price. Their sell fills second, into the curve we just dumped on, so they exit at a worse price than they expected. This only works if the bot is already holding tokens of that mint, which means either it accumulated from a prior frontrun-buy, or someone seeded its address on launch.
Where the blacklist comes from
There are two layers, and you choose how much of each goes onto your launch.
The global list
Around 500 wallets sourced from kolscan.io's leaderboard data — addresses with documented patterns of pre-launch accumulation, audience-shilling, and exit timing inconsistent with public information. The list is editorial. Addresses can be removed by the community via review. It's not a court ruling, it's a working hypothesis that gets refined as more data comes in.
Your launch's list
In the launch wizard you can opt in or out of the global list with a single toggle, and you can paste in additional wallet addresses (someone who burned you on a different launch, a wallet you've been tracking yourself, etc.) to add them just for your coin. Per-launch additions are isolated to that launch and don't affect anyone else.
useGlobalBlacklist in the wizard and the bot will only watch wallets you specifically add.Launching a coin, in order
The whole flow takes about ninety seconds. You'll need a Solana wallet (Phantom or Solflare) with enough SOL for the pump.fun mint fee and a little gas. That's it.
- Open the launcher. Go to
/app/newfrom the nav. If your wallet isn't connected the page will prompt you. - Fill in the basics. Name, ticker, description, image URL. These pass straight through to pump.fun's metadata — what you put here is what shows up on Solscan and on the pump.fun page.
- Configure the bot. Toggle
useGlobalBlackliston or off. Pick a punishment mode (see below). Optionally paste in any custom wallets you want watched. - Sign in. First time only — you'll sign a SIWS (Sign-In With Solana) message. No tx, no fee, just a signature so we know the launch belongs to you and you can manage its blacklist later.
- Sign the mint. Your wallet pops the standard pump.fun create transaction. You pay the mint fee, the coin goes live.
- Done. Within a few seconds the bot picks up your mint and starts watching. The dashboard shows up empty until something happens.
The launch dashboard
Each of your launches has a page at /app/launches/[id] with a live execution feed. The feed polls for new bot activity every four seconds and lists every counter-trade attempt the bot has made on your mint, in chronological order.
Each row tells you:
- Which wallet triggered it — the flagged address that broadcasted the underlying trade.
- What direction — was the bot frontrunning a buy or sandwiching a sell.
- Status — pending, submitted, landed, or failed. Most attempts land. Some lose the priority race; those show as failed and you can see what the tip was.
- Bundle signature — clickable link to the on-chain tx. You can paste this into Solscan and see exactly what happened, with no help from us.
- Profit (lamports) — realized SOL captured on that bundle, after the Jito tip.
Punishment modes
When you launch a coin, you pick how aggressive the bot is on it. There are three options. You can change this later from the launch settings.
The stack
We're showing you the components on purpose. None of this is custom middleware you have to trust. It's the same infrastructure every serious MEV operator on Solana is already using.
@triton-one/yellowstone-grpc against a paid Helius Yellowstone endpoint. Sub-50ms tx notification.global:<name>. We're encoding the same instructions pump.fun's own UI does.@solana/wallet-adapter — Phantom and Solflare. We never touch your private key.How to verify any of this
You don't need our dashboard to confirm the bot is real. Every claim on this site lands on-chain and you can check it yourself.
- Pick any execution row. Either on a public launch dashboard or on the marketing landing page's live feed.
- Copy the bundle signature. Every row has one. It's a real Solana tx hash.
- Paste it into Solscan (or your block explorer of choice). You'll see two transactions in the same slot — the bot's, and the flagged wallet's. The bot's lands first.
- Look at the program calls. Both touch the pump.fun program. The one that lands first moves the curve; the one behind it fills against the new curve.
- Look at the bot's wallet. Sum the realized SOL across executions. Compare to what we say on the dashboard. The numbers will match because they have to — they're the same data, just one source is signed by the chain and the other is rendered by us.
$JUSTICE tokenomics
$JUSTICE itself launches the same way every coin on the platform launches — fair, on pump.fun, no presale, no insider allocation, no team unlock cliffs. Whatever happens to it on the curve happens publicly, in front of everyone, and the same blacklist that protects every other launch on the platform protects $JUSTICE too.
FAQ
Is this legal?
Frontrunning public on-chain transactions on a permissionless DEX is not illegal in any jurisdiction we operate in. It's the same activity every Solana MEV operator engages in. The novel part is who we choose to target: wallets that themselves run a documented playbook of pre-launch accumulation and audience-shilling, which is itself in a legal gray zone in most places. We're not making a legal argument. We're making an economic one.
What if I'm on the blacklist by mistake?
The list is editorial and the criteria are public. If you can show that an address tagged to you doesn't fit the pattern — e.g., you can demonstrate the wallet's P&L is consistent with public information — it gets removed in the next review cycle. We'd rather have an under-broad list that's accurate than an over-broad one that catches honest people.
What stops a KOL from just using a fresh wallet?
Their entire operation is tied to one wallet. The copy-traders mirroring them in real time, the leaderboard rank that gets them into rooms, the Birdeye / Bullx audience that watches their address live, the screenshots they use to prove a call hit — all of it keys to that single pubkey. That wallet is the asset.
A fresh wallet has none of that flow. Nobody copy-trades an unknown address. A shill post about a coin doesn't move price unless the audience can see the poster's wallet behind it. They can't even publicly credit themselves for the trade without doxxing the new address — at which point it joins the list. Switching wallets isn't a workaround. It's abandoning the thing that made them a KOL in the first place.
Does the bot frontrun retail buyers?
No. The bot's filter is exclusively the blacklist. A wallet that isn't on the list — yours, a normal trader's, anybody's — is invisible to the bot. It will not see your tx, it cannot frontrun your tx, it doesn't run on you. The whole subscription filter is the blacklist plus the pump.fun program ID; if you're not in that set, you don't enter the pipeline at all.
What does the bot need to keep running?
A funded hot wallet (we keep it small — it's the bot's float, not a treasury), a paid Helius Yellowstone gRPC endpoint, a paid Solana RPC, and a Jito Block Engine connection. The bot wallet's address is public and so are its inflows and outflows. If it ever runs dry, the dashboard will say so, and bundles will start failing visibly until it's refilled.
What happens to the SOL the bot captures?
Per launch: SOL captured on bundles for that mint routes to that launch's buyback-and-burn address. Per platform: a fixed cut covers Helius Yellowstone and Jito infra (which is most of the cost of running this). The bot itself is a thin pipe — it doesn't accumulate. Numbers are on the dashboard, and the addresses are public so you can audit them yourself.
Can I run this myself, against my own coin only?
Yes — that's the simplest version of the whole product. Launch your coin, leave the global list off, paste in only the wallets you care about, pick your punishment mode, done. You don't need to interact with the rest of the platform. The bot watches your private list the same way it watches everyone else's.
What if I want my coin off the platform?
The mint is yours. Pump.fun doesn't care that we exist; your coin's bonding curve, supply, metadata, and ownership all live on pump.fun and are unaffected if you stop using us. You can mark your launch inactive in our dashboard, which makes the bot stop watching its blacklist. The coin keeps trading exactly as it would have.
Why pump.fun specifically?
Two reasons. One, pump.fun is where the KOL playbook actually runs right now — that's where the wallets live, that's where the volume is, that's where the deterrence has to happen. Two, pump.fun's bonding curve is mechanically simple enough that the bot's counter-trade math is tractable. On a more complex AMM the spread the bot can capture becomes harder to size, the latency budget gets tighter, and the tip economics stop working.
How do I know the dashboard isn't fake?
Every execution row links to a real bundle signature. Click one, paste it into Solscan, you'll see the two real transactions on the chain. We can't fake that. If we tried, anyone who clicked through would catch it within a second. The whole project's pitch only works if the receipts hold up, so the receipts are the entire UI.
Glossary, for normies
What this is, and isn't
$JUSTICE is a piece of software and a piece of performance art. The software is real — the bot runs, the bundles land, the executions are on-chain and verifiable. The performance is the framing: the wanted-poster aesthetic, the courtroom language, the sword on the landing page. Take the aesthetic with a grain of salt. Take the executions seriously.
The blacklist is editorial, not judicial. It's holder-nominated and reviewed weekly. We are not a regulator and we are not making criminal allegations against anyone listed. We are making an economic argument that certain patterns of trading hurt other traders, and providing infrastructure to make those patterns more expensive to run.
$JUSTICE is a memecoin. It is not a security. It is not an investment vehicle. It is a coordination token for a community of people who think the KOL playbook should cost more to run than it does. If you can't afford to lose the SOL you put into it, don't put SOL into it.
Everything here is permissionless and reversible. We don't custody your coin, your wallet, or your funds. If we disappear tomorrow your coin keeps trading and your wallet keeps working. The bot is an addition, not a dependency.
Ready to launch?
The whole flow takes less than two minutes. You sign one transaction in your own wallet. The bot does the rest.