Index — every file, and what question it answers

A map of the repository. Two layers:

Every document is written in English (*.md).


Part 1 — By file

Root

File What it is
README.md Start here. TL;DR, official sources, 4-layer proof, FAQ table, scope, runnable code
PROOF.md Step-by-step proof that an app owner cannot tell where π came from
SCOPE.md Precise scope: what is proven vs not claimed (+ independent verification)
AUDIT-REQUEST.md Audit status: not independently audited — what that means, and how to do one
PRIOR-ART.md Prior art: what already existed, what was searched, what appears new — and what is explicitly not claimed
FALSIFICATION.md Falsification criterion: the four things that would kill the claim, how to try each, and what does not count
VERIFICATION.md Verification status: last verified date, what ran where (local vs CI), live Mainnet vs offline layers, how to read a red build, and what is not verified
CONTRIBUTING.md How to contribute: report findings, zero-dep rules, add a FAQ
THREAT-MODEL.md Threat model: assets, actors, capabilities, trust assumptions, attacks, out-of-scope
SECURITY.md Read-only by design: no wallet/passphrase/keys/signing/deps; how to audit
DISCLAIMER.md Independent & unofficial; no financial advice; no custody; no warranty
SOURCES.md All official sources, with verbatim quotes (§0–§22); §0 pins each source's exact revision
index.html Website landing page (GitHub Pages)
llms.txt Machine-readable index for AI tools / LLM crawlers
DEPLOY-MIRRORS.md Mirrors: why GitHub Pages is canonical, how the mirror config keeps rel="canonical" on the canonical host, and the Netlify / Cloudflare Pages settings
CITATION.cff Citation metadata (GitHub “Cite this repository”)
LICENSE MIT

Docs — FAQ (one per objection)

File Question it answers
FAQ-TRANSACTION-VS-COIN.md “You can follow the transactions — so you can tell where the π came from?” → you can trace the transaction, never the coin (three levels + the honest account-level boundary)
FAQ-RECIPIENT-CANNOT-TELL.md “I mixed mined + bought π, then sent some — can the recipient tell?” (deterministic proof)
FAQ-CAN-CORE-TEAM-SET-PRICE.md “Can the Core Team set a different price by origin, or block sales?” (no — on-chain)
FAQ-EXCHANGE-DEPOSIT-VERIFY.md “Is an exchange’s balance really backed?” → three claims: A fungibility (proven), B a specific deposit (verifiable), C reserve backing (not claimed)
FAQ-MICRO-PI-ID.md “Every micro-π has its own ID”
FAQ-SDK-PLATFORM-API-FIELDS.md “Doesn’t the SDK / Platform API expose where the π came from?” (no — full field enumeration)
FAQ-SMART-CONTRACTS-AND-TOKENS.md “Pi now has Soroban smart contracts and ecosystem tokens — so you can tag a coin’s origin now?” (no — scalars only; tokens are a different asset)
FAQ-MUXED-M-VS-G.md “Exchanges use M addresses, not G”
FAQ-EXCHANGE-ADDRESSES-OBSERVED.md “These two exchange addresses — can you trace a coin’s origin?”
FAQ-TAX-SOURCING.md “Bought vs mined — what does the ledger see?” (nothing; off-chain records are a different evidence source)
FAQ-SOURCE-VS-PRIVILEGES.md “Same price, but different privileges?” — PiPower / Engagement Score (PiRC1, Pi Launchpad): account-bound, never a second price for π
MICA-WHITEPAPER.md “The MiCA whitepaper says Pi comes only from mining”
FAQ-DONT-BUY-PI.md “Pi once said don’t buy Pi” (Enclosed Mainnet; ended 2025-02-20)
FAQ-FUNGIBILITY-VS-PRICE.md “Same coin ≠ same price”
FAQ-UNOFFICIAL-REPO-SCAM.md “It’s an unofficial GitHub repo — must be a scam/phishing”
FAQ-TAINT-CONTAGION.md “If tainted π touches my wallet, doesn’t the taint spread through my whole balance?” → no taint field; the allocation problem; the transitive reductio; the honest account-level boundary
FAQ-ALL-OBJECTIONS.md Full catalog of every remaining objection (groups A–E)

Examples — runnable proofs (zero dependencies)

File What it does
provenance-check.mjs Reads a real tx on-chain; shows there is no origin field
memo-check.mjs Samples 200 real Mainnet txs; shows most carry no memo (memo_type: "none") — memo is optional sender text, not provenance
falsify-try.mjs Falsification attempt (F1/F3): enumerates every key on a real payment and scans for origin-like tokens; exits non-zero on a hit
coin-id-check.mjs Shows the balance is one scalar — no per-unit ID
mixing-check.mjs Live demo: commingling → scalar balance → origin-less payment
verify-deposit.mjs Verifies a specific transfer is a real native Pi payment on Mainnet (Claim B)
self-test.mjs Automated checks: offline unit tests (same-op rule, failed-tx gate) + offline transport-failure handling (HTTP 500/429, invalid JSON, connection failure, timeout) + online end-to-end
model-check.mjs Executable ledger model + property check (2000 seeds, offline): scalar state, non-injective history→state
exhaustive-check.mjs Exhaustive bounded check (offline): enumerates all 1452 histories; origin-invisibility for every one
run-all.mjs Runs every check and prints a summary (--offline to skip network)
lib.mjs Shared helpers: read-only API client (timeout + clear errors on HTTP/JSON/connection failures), strkey validation
regenerate-snapshots.mjs Maintenance tool: rewrites the *-output.txt snapshots as clean UTF-8/LF
app-payment-flow/frontend.html Official Pi.createPayment flow (U2A)
app-payment-flow/server.js Backend handling PaymentDTO; prints its keys
payment-dto-sample.json Sample PaymentDTO showing the missing origin field
*-output.txt Committed outputs of the scripts (expected results)

Part 2 — By question

The objection / question Where to look
Are mined π and exchange π the same? README.md TL;DR · PROOF.md
Can the recipient tell mined from bought (after mixing)? FAQ-RECIPIENT-CANNOT-TELL.md
Can’t you just follow the transactions and see which π came from where? FAQ-TRANSACTION-VS-COIN.md
Doesn’t the transaction graph reveal the origin? SCOPE.md §4 · FAQ-RECIPIENT-CANNOT-TELL.md §3
Every micro-π has an ID? FAQ-MICRO-PI-ID.md
Doesn’t the SDK / Platform API expose the origin? FAQ-SDK-PLATFORM-API-FIELDS.md
Do Soroban smart contracts / ecosystem tokens change fungibility? FAQ-SMART-CONTRACTS-AND-TOKENS.md
Exchanges use M, not G? FAQ-MUXED-M-VS-G.md
Two concrete exchange addresses (Bitget/OKX) — what do they show? FAQ-EXCHANGE-ADDRESSES-OBSERVED.md
Bought vs mined — what does the chain see vs off-chain records? FAQ-TAX-SOURCING.md
Same price, but different privileges (history-based)? FAQ-SOURCE-VS-PRIVILEGES.md
What is PiPower, and does a launchpad discount create “premium π”? FAQ-SOURCE-VS-PRIVILEGES.md §Official corroboration
Can the Core Team set a different price / block sales? FAQ-CAN-CORE-TEAM-SET-PRICE.md
Is an exchange’s on-chain balance really backed? FAQ-EXCHANGE-DEPOSIT-VERIFY.md
The MiCA whitepaper says “only through mining”? MICA-WHITEPAPER.md
“Pi said don’t buy Pi”? FAQ-DONT-BUY-PI.md
Same coin but different price? FAQ-FUNGIBILITY-VS-PRICE.md
Is this repo a scam / phishing? FAQ-UNOFFICIAL-REPO-SCAM.md · SECURITY.md · DISCLAIMER.md
What exactly is proven — and not? SCOPE.md
Has this been independently audited? AUDIT-REQUEST.md
Has anyone else already proven this — are you first? PRIOR-ART.md
How would someone disprove this? FALSIFICATION.md
Has anyone actually run this, when, and where? VERIFICATION.md
Who could attack this, and what do we assume? THREAT-MODEL.md
Does “taint” spread to the rest of my balance? FAQ-TAINT-CONTAGION.md
Any other objection (lockups, KYC, governance…)? FAQ-ALL-OBJECTIONS.md
Which official sources back all this? SOURCES.md

Part 3 — Run the proofs

node examples/run-all.mjs            # everything at once (+ summary); add --offline to skip 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
node examples/coin-id-check.mjs
node examples/falsify-try.mjs
node examples/verify-deposit.mjs <TXID> [TO_ADDRESS]
node examples/mixing-check.mjs
node examples/mixing-check.mjs <SENDER_ACCOUNT>

Node 18+ · zero dependencies · read-only (see SECURITY.md).


π = π. Proven: a payment carries no observable per-coin origin. Not claimed: price, identity-hiding, IOU equivalence, reserve backing, independent audit. See SCOPE.md · AUDIT-REQUEST.md.