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:
- No aggregator had indexed it. Dexscreener and Jupiter cannot quote a coin they have not seen. PaperTrench refuses to invent a price, so it correctly refused — and kept refusing, forever.
- The chart was in MCap mode. Every close was rejected as "no implied supply", because turning a market-cap value into a price needs a supply figure nobody had published yet.
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.
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.
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.
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
- It never blocks a SELL. Exiting a rug is the right move, and a guard that traps you in a position is worse than no guard.
- A failed chain read blocks nothing. If the guard cannot see, it steps aside — it is not allowed to invent a verdict from missing data.
- The panel footer is flagged the moment the verdict lands, so the signal is on screen even if you never tried to buy.
- Threshold and off-switch live in Settings → Guardrails.
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.
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 →