Prop AMM Teardown Engine
Crowdfunded USDC bounties to rebuild the DEX programs that price swaps on Solana, judged by replay against mainnet.
A large share of swaps on Solana is priced by programs whose source is not published. Their bytecode is public, as every program on Solana is: anyone can read the sBPF, but not the code it was built from. Prop AMM Teardown Engine puts those programs on a public wall and gives each one a pot in USDC that anyone can add to. The pot pays the first hunter whose rebuilt Rust source behaves exactly like the deployed binary, and that source is then published on the target page the same day.
The product is built for audit, interoperability and security research: code that prices swaps should be readable by the people swapping.
How it works
- The wall. Upgradeable DEX programs from Jupiter's program label list that have no verified build on OtterSec, ranked by transactions over the last 24 hours. See The wall and how targets are chosen.
- Chip in. Anyone sends USDC from Phantom or Solflare to the target's escrow, from 5 USDC. A backer can take their share back at any time before a PASS. See Chipping in and withdrawing.
- Hunt. A hunter uploads a Rust crate, encrypted in the browser to the judge's key. See Hunting and the judge.
- Replay. The judge builds the crate itself, loads the original and the candidate in two identical local SVMs and feeds both the same real mainnet instructions and fuzzed variants. Every case must match.
- Pay and publish. On a PASS, 90% of the pot goes to the hunter, 10% is bought into $TEARDOWN on Jupiter and burned, and the source is published on the target page.
Where to start
- Browse the wall and open a target page: snapshot, first look at the ELF, pot, attempts.
- Read Verifying a verdict to re-run any verdict yourself.
- Build on the data with the API and the MCP server.
- The money rules are in $TEARDOWN and the vault, and who holds which key is in Trust model.
Words used here
| Target | A program on the wall, named by its Jupiter label and its address. |
| Snapshot | The program's ELF as deployed at one slot, with its sha256. Frozen once taken. |
| Corpus | The cases the judge replays: real mainnet instructions to the program, then fuzzed variants of them. |
| Match | The share of corpus cases where the candidate behaves exactly like the original. |
| Verdict | PASS or FAIL, as a JSON report with its sha256, recorded on Solana as a Memo. |
| Hunter | Whoever submits a source. A person or an agent. |