A native Pi payment carries no observable per-unit mining origin on the Pi Mainnet ledger.
Thanks for wanting to improve this repo. The single most valuable contribution is finding a flaw — this project deliberately keeps itself falsifiable. If a claim is wrong, a proof step does not follow, a quote is mis-attributed, or a script misleads, that is a welcome finding.
Audit, don’t trust — including this repo. See
docs/AUDIT-REQUEST.md.
.github/ISSUE_TEMPLATE/audit-finding.md).docs/FAQ-EXCHANGE-DEPOSIT-VERIFY.md).*.md). Do not add translated copies.fetch, node:child_process, …). No npm install.https://api.mainnet.minepi.com). No wallet, no keys, no passphrase, no signing,
no writes. See SECURITY.md. (The single exception is the clearly-labelled
maintenance tool examples/regenerate-snapshots.mjs, which only rewrites the local *-output.txt snapshots.)docs/SOURCES.md.examples/*-output.txt snapshots with node examples/regenerate-snapshots.mjs (writes clean
UTF-8/LF — avoid a shell >, which produces UTF-16 on Windows).docs/FAQ-<TOPIC>.md.README.md FAQ tabledocs/INDEX.md Part 1 and Part 2.docs/FAQ-ALL-OBJECTIONS.md.Requires Node 18+ and network access (only the live examples need the network).
node examples/run-all.mjs # everything at once (+ summary); add --offline for no network
node examples/self-test.mjs # 34 offline checks + 3 online end-to-end (37 total)
node examples/model-check.mjs # offline ledger model + property check (2000 seeds)
node examples/exhaustive-check.mjs # offline EXHAUSTIVE bounded check (all 1452 histories)
node examples/provenance-check.mjs # live: no origin field on chain
node examples/coin-id-check.mjs # live: balance is one scalar
node examples/verify-deposit.mjs <TXID> [TO_ADDRESS]
node examples/mixing-check.mjs
CI runs the offline checks on Node 20 & 22 for every push/PR
(.github/workflows/self-test.yml). Keep them green.
LICENSE).Goal: a repo a skeptic can verify end-to-end and, where possible, break.