All updates

Fresh launches are snipeable, and the rug guard

Two fixes from the maintainer's own trench session, off the same screenshot. A 39-second-old coin used to strand an armed buy forever, because no aggregator had heard of it yet. And a paper buy into a float held by ten wallets went through without comment — which is not what practice should teach.

Do not run the v2.8.0 build

These features are real and they work — but the v2.8.0 zip shipped with attestation-chain recording broken and has been superseded. Everything described here is in the current release. What happened, in full →

The armed buy that never fired (F-34)

Arming a buy on a brand-new launch is the whole game on pump.fun. PaperTrench has always supported it: click buy before the coin has a quote, and the order arms, then fills the instant the first trusted price lands.

Except on a coin 39 seconds old, the first trusted price never landed. Two independent reasons, stacked:

The order sat armed until it expired. Correct behaviour, useless outcome.

Fix one: read the bonding curve directly

The price was never actually unknowable. It was sitting on chain the whole time — in the coin's own bonding curve.

It looks like pump.fun · t+0s
The pair address on an Axiom page, or a mint ending in "pump" anywhere.
Find the bonding curve on chain
Derived from the mint via the program-address rules — verified against five live mainnet curves, not assumed.
Identify the real mint
Read back from the curve's own reserve account, so the coin being priced is provably the coin on screen.
Stream it as a live CHAIN ⚡ feed
Immediate first quote. The armed buy fires seconds after launch — and the fill is chain state, not a guess.

That last point is the one that matters for a trainer. This is not a faster estimate; it is the actual on-chain reserve ratio. A snipe practised here fills at a price that genuinely existed.

Fix two: MCap-mode charts can price pump coins

Pump supply is a protocol constant — one billion, always. So on a pump coin, an mcap-scale close is a price, once you divide.

The trap is knowing which scale you are looking at. An unlabelled number on a chart could be price or cap, in USD or SOL — four readings. PaperTrench judges all four against sane bands and uses the tick only when exactly one fits.

Ambiguity still refuses. Two plausible readings means no number at all.

That is the same discipline that governs every other unit decision in the product: a confidently wrong price teaches a lesson that costs real money later.

Rug guard

Requested with a LOL. Built with a straight face.

RUG WARNING — top 10 wallets hold 47% of supply
Paper buy refused. Exiting is always allowed.

Simulated toast. The percentage is always named — never just "risky".

When chain state says the float is concentrated in a handful of wallets, a paper BUY is refused with a toast that names the number. Not a vague risk badge, not a colour — the actual figure, so you can disagree with it.

How it reads the float

The 20 largest token accounts plus the mint supply. The pool or curve reserve is excluded, because a bonding curve holding most of the supply is normal and not a rug signal.

It admits what it guessed

Identifying which account is the reserve is not always unambiguous — and when the guard had to assume which account that was, it says so.

A concentration figure that silently depends on a guess is a number pretending to be a measurement. This one shows its working.

The rules it plays by

This is the one guardrail that ships ON — every other Guardrail is opt-in — because the maintainer asked for exactly that. Practising the reflex of checking concentration before you buy is worth more than the friction costs.

Patch notes v2.8.0 August 5, 2026 · superseded by v2.8.1

Fresh launches are snipeable — "ARMED … ON FIRST QUOTE" actually fires now (F-34)

A 39-second-old pump.fun coin used to strand the armed buy forever: no aggregator had indexed it, and with the chart in MCap mode every close was refused as "no implied supply". Two fixes, layered:

The bonding curve is read directly. The moment a pending coin looks like pump.fun — the pair address on an Axiom page, or a mint ending in "pump" anywhere — PaperTrench finds its bonding curve on chain (derived from the mint via the program-address rules, verified against five live mainnet curves), identifies the real mint from the curve's reserve account, and streams the curve as a live CHAIN ⚡ feed with an immediate first quote. The armed buy fires seconds after launch, and the fill is chain state, not a guess.

MCap-mode charts can price pump coins. Pump supply is a protocol constant (1e9), so an mcap-scale close IS a price. All four readings of an unlabelled chart value (price vs cap, USD vs SOL) are judged against sane bands and the tick is used only when exactly one fits — ambiguity still refuses, per the F-25 discipline.

Rug guard (on by default)

Requested with a LOL, built with a straight face: when chain state says the float is in a handful of wallets, a paper BUY is refused with a toast that names the number — "🚩 RUG WARNING — top 10 wallets hold 47% of supply". The check reads the 20 largest token accounts plus the mint supply, excludes the pool/curve reserve (and SAYS when it had to assume which account that was), flags the panel footer the moment the verdict lands, and never blocks a SELL — exiting a rug is the right move. A failed chain read blocks nothing: a guard that cannot see is not allowed to invent. Threshold and off-switch live in Settings → Guardrails; this is the one guardrail that ships ON, because the maintainer asked for exactly that.

Also aboard, unmentioned at the time

The Turbo receipts card, and half of an in-flight attestation-chain migration that broke chain recording on this build. Both are covered here →

← Newer We shipped a build that broke the chain