Anyone can settle an abandoned Solana liquidity pool under fixed rules. Six on-chain checks decide eligibility, one atomic transaction does the work, and the split is set by formula.
When a memecoin dies, its pool keeps the valuable side: SOL, USDC or USDT. Holders rarely recover it. The frontend is gone and the position looks too small to chase.
Estimates of stranded candidate-pool liquidity from Ghost Pools, WP-2026-001r4, under a base-case valuation. They are not the value recoverable at displayed prices, and not protocol revenue. Lack of recent trading is a screening signal, not proof that a pool is abandoned. Read the methodology ↗
Evaluation and execution are separate programs, so no single path can both declare a pool derelict and move its funds.
GraveScanner checks six criteria, records an anchor, and issues a certificate only after two consecutive epochs. It never moves liquidity.
GraveVault withdraws from Raydium V4 and swaps through Jupiter in one atomic transaction. If any check fails, everything reverts.
Proceeds are split by formula. LP holders claim with a Merkle proof from an unsweepable vault, with no expiry.
C1 and C2 rest on signed oracle attestations verified in-transaction. The other criteria are read directly from on-chain state.
Every salvage divides its recovered SOL the same way.
Snapshot-verified claims, held in a vault that no admin key can sweep.
Paid on delivery of the salvage, in the same transaction.
A ceiling, not a target, enforced in program bytecode.
Four invariants are enforced in program bytecode. Changing one needs a program upgrade. The public-notice, timelock and multisig process is the committed governance posture for such changes — it is process policy, not functionality the current programs enforce.
A config update that tries to raise it is rejected with error 7005.
No sweep instruction exists in v1.0, for any admin key.
Holders can always claim from a completed salvage.
A second attempt fails at account initialization.
Process commitments — governance policy, not program-enforced functionality: the current devnet programs implement neither a timelock nor a functional authority-transfer mechanism (config changes are signed directly by the dedicated governance authority). For mainnet the plan is: no token at any layer, 72-hour timelocks on parameter changes, 7-day notice for standard upgrades, and Squads multisig custody (3-of-5 at launch). Read all ten invariants ↗
The NS-3 devnet redeployment is in preparation: program identities are assigned and the NS-3 preparation is complete on review branches across all five repositories (open pull requests, not yet merged) — the default branches synchronize when those PRs merge, and deployment and on-chain acceptance remain pending. The earlier devnet generations (NS-1, NS-2) remain on devnet as preserved, untouched historical records. Nothing here is on mainnet, and no salvage has run yet.