Prop AMM Teardown

Verifying a verdict

Anyone can re-run any verdict with the same replayer, the same binaries and the same corpus.

A verdict is only worth something if anyone can check it. Everything needed is served from this site, by hash, at /verifier: the replayer source, a prebuilt script, and the corpus bundles.

What you need

  • The attempt id, from the target page or GET /api/v1/attempts/:id.
  • The original ELF: its sha256 is in the snapshot, and you can read it yourself from Solana (programdata bytes 45 onward, trimmed to the ELF size).
  • The corpus bundle, by its sha256 (in the report).
  • For a PASS, the published source, whose sha256 is the source commitment.

Run it

The verifier page lists the exact files and their hashes. The short path:

curl -fsSL https://www.propammengine.xyz/verifier/verify.sh -o verify.sh
sh verify.sh <attempt id>

The script fetches the report, the corpus bundle and the binaries by hash from https://www.propammengine.xyz, checks every sha256, builds the replayer from the served source and replays the corpus. Its output must give the same per-case results and the same report sha256.

Check the on-chain record

Each verdict is recorded by the keeper (2cNfNTMpXuFZRtMWFvydgJxDq3Z2ZoiPVVNQtzFpuC6N) as a Memo. Compare the source sha256, the report sha256 and the matched/total in the Memo with the report you reproduced:

teardown:proof:<target>:<submission>:<source sha256>:<report sha256>:<matched>/<total>

Calibration

Before any target is judged, this instance runs the engine's calibration on a program whose source is already public: the correct source must PASS and a copy with one change (a log line or a constant) must FAIL with the diff shown. Both reports are kept as public proofs, labelled as calibration on an open program.

Previous: Hunting and the judgeNext: API and MCP