on record
← the radar
UNKNOWNpinocchiopump.fun sniperclosed · 13m

Unidentified program

G67K1wsWstaXHjDHBkM2JVDrJmp1Q1T1nz8LaNRZGBvWopen in Orb
NEW: exact copy of known bytecode ACTIVE: 3,000 transactions in the last 24h OPEN: 0/6 disclosures: name, repo, site, IDL, security.txt, verified build COST: 0.228 SOL locked as rent by the deploy CTRL: single hot-wallet authorityNEWACTIVEOPENCOSTCTRL
sniper bot

This program's bytecode is byte-identical to other deploys on record — the same program under a fresh id. It was closed within 13m. The signature of a throwaway bot: deploy a disposable id, run it hot sniping Pump.fun launches, then close it to reclaim the rent — and repeat.

What's a throwaway bot?

A disposable on-chain program a trader deploys to run one strategy — almost always sniping new Pump.fun token launches — then closes minutes later to reclaim its rent, redeploying under a fresh id for the next run.

Why a program at all?

Sniping means "buy the instant the pool exists, atomically, or abort" — you can't do that reliably from a wallet. A tiny custom program bundles the whole attempt (and often multi-venue routing) into a single instruction that either lands complete or reverts.

Why thousands of failed transactions?

That's the race. The bot fires on every launch; most attempts lose the block or the token rugs, so they revert. The failures are the strategy — spray for the few that land.

Why redeploy and close?

The ~0.2 SOL of rent is refundable on close, and a fresh program id sidesteps any blocklist or reputation built against a known address. Cheaper and stealthier to burn identities than to keep one — so one operator can wear dozens of "new program" identities in a day.

How On Record catches it

Exact-bytecode dedup (same sha256 = same bot) collapses the redeploys into one cluster; lifecycle tracking sees the deploy → close; the failed-tx count confirms the intent. No explorer distinguishes "new protocol" from "same bot, 30th identity today" — that's a novelty-definition problem, which is exactly what this radar solves.

Lineagei

Nearest known programAYGX…eGnu · 100% code match

Frameworki

Pinocchioinferredperformance · hot-path · advanced
What's Pinocchio?

Zero-dependency, no-std entrypoint. No codegen, no IDL — the developer hand-writes account parsing against the raw C ABI (sol_invoke_signed_c).

Tiny binary and low compute-unit cost, at the price of manual safety and no self-description. The choice for a hot path — routing, MEV, high-frequency — where every CU and lamport of rent is optimized.

Built by Anza (the Agave client team).

What it is

A drop-in replacement for the solana-program crate — not an Anchor-style framework. Its core innovation is zero-copy AccountInfo: instead of deserializing account data into an owned struct, it returns a pointer directly into the input buffer, eliminating a major class of memory copies and cutting CU usage on hot instructions. It has zero external dependencies and is no_std. It's completely unopinionated — no IDL, no account-validation helpers, no standard layout — so you bring Shank + Codama to generate IDLs and clients yourself. Still unaudited and not at full feature parity with solana-program.

When to pick it

Programs that process enormous volume where CU cost is the bottleneck — token programs, AMM hot paths, Ore-style mining. Not beginner-friendly.

How it looks on-chain

No enforced discriminator or account layout, and no on-chain IDL — so it can't be positively identified from account data. The tiny, dependency-free binary is the main tell, which is why we label it 'inferred'.

Others in the wild: Steel (Ore team — near-native performance on solana-program), Seahorse (Python → Anchor), and Poseidon & Quasar (TypeScript → Rust). Transpilers inherit their lowering target's fingerprint: a Quasar or Poseidon program that compiles down to Anchor will look like Anchor on-chain — discriminators and all.

Pinocchio docs

Footprinti

32 KBimage size · lean
0.228 SOLrent locked
1syscalls imported
instructions
Capabilitiescpi

Recovered architecturei

root/lib

Reachi

EmbeddedPump.fun