A native Pi payment carries no observable per-unit mining origin on the Pi Mainnet ledger.
On-chain: nothing. The Pi Mainnet ledger records native payments as asset_type: "native" with amount, from, to, memo_type, and (for pooled accounts) to_muxed_id. It does not record whether a unit was mined, purchased on an exchange, or received from an app.
Off-chain: everything that matters for accounting/tax. Invoices, trade history, deposit/withdrawal receipts, KYC, timestamps, and the venue’s internal ledgers are separate from the public ledger.
origin, source_type, mined, purchase_id, or equivalent.to_muxed_id identifies who receives inside a pooled account (e.g. an exchange user), never where the coin came from (mined/bought). See FAQ-MUXED-M-VS-G.md.memo_type: "none", with to_muxed_id only. See FAQ-EXCHANGE-ADDRESSES-OBSERVED.md.| Question | Where the answer lives |
|---|---|
| Can the chain tell if this π was mined vs bought? | No. (on-chain) — this repo proves that. |
| Can your records show how you acquired it? | Yes. (off-chain receipts/trade logs/wallet history). |
| Does that difference create two different assets? | No. They are the same native, fungible asset (π = π). |
Keep clean records by acquisition method (purchase receipts, withdrawal tx hashes, mining/migration timestamps). Do that for compliance — it doesn’t contradict fungibility. The chain’s inability to see origin is exactly why you must preserve your own off-chain documentation.
node examples/exchange-wallets.mjs # shows muxed id (who) vs no origin
node examples/provenance-check.mjs # shows no origin field on a real payment
docs/SCOPE.md — Claims A (fungibility), B (verifiable), C (not claimed)docs/FAQ-TRANSACTION-VS-COIN.md — transaction vs coindocs/FAQ-MUXED-M-VS-G.md — muxed = counterparty, not origindocs/FAQ-EXCHANGE-ADDRESSES-OBSERVED.md — concrete observed addresses