MINPENTAI $PENTA

the privacy coin from Snowmoon.

$PENTA

Zip your ETH into a privacy pool. Burn to speak, and let the echo carry. Knock at a door with a message and a gift. A protocol with roots and no head.

supply
—
burned via echoes
—
messages
—
wall inscriptions
—
01 / protocol

How it works

Five contracts, one loop: fund → hide → speak → echo → knock. Every rule below is enforced on‑chain unless marked keeper.

1

$PENTA — the token

  • ERC‑20, fixed supply 1 000 000 000, 18 decimals, no mint function.
  • 0.5 % transfer tax (50 bps) on every transfer and swap → treasury.
  • Protocol contracts (broadcaster, doorstep) and the deployer are tax‑exempt, so burning never pays tax twice.
  • Anyone can burn() their own tokens — supply only goes down.
2

Zip — the privacy pool

  • Deposit a fixed denomination of ETH (0.01 / 0.1 / 1 / 10) with a commitment; keep the note offline.
  • Commitments live in a 220‑leaf Merkle tree; the anonymity set grows with every deposit.
  • Withdraw to a fresh address by proving membership — the link between deposit and withdrawal is broken.
  • Production: 0xbow Privacy Pools — audited, Groth16, association sets. Unzip & Speak: withdraw to a fresh burner and burn from there — an echo nobody can trace back to you, straight out of Snowmoon’s zipcoins.
3

Speak — burn to be heard

  • approve then speak(amount, message): tokens are pulled in and burned on the spot.
  • Minimum 1 PENTA. The tier is computed from whole tokens at burn time and stored in the record.
  • Every message is emitted as a Burned event — permanent, indexable, un‑deletable.
  • The more you burn, the farther the echo travels (tiers).
4

Echo — the WhisperWall

  • A separate contract that mirrors tier 4+ burns as permanent inscriptions.
  • Written by a keeper (owner key) that watches Burned events; duplicate message ids are rejected.
  • Indexed by author — a public record of who paid the most to be heard.
5

Knock — the doorstep

  • knock(recipient, ensName, amount, message) burns PENTA at someone's door.
  • Attach ETH as msg.value → forwarded to the recipient as a gift in the same transaction.
  • Doors are keccak256(address) or keccak256(ensName); name‑only doors can't receive gifts (nowhere to send them).
  • Every knock is stored under the door forever.
∑

Where the value goes

  • Treasury (0.5 % tax) → buy‑back‑and‑burn + keeper/relayer costs.
  • Burns (speak + knock) → removed from supply permanently.
  • Gifts → straight to the recipient; the protocol takes nothing.
  • No admin mint, no pause, no blacklist. Owner powers: set treasury / tax‑exempt list, inscribe wall.
02 / lore

Why “Minpentai”?

The name comes from Snowmoon, a novel by Vitalik Buterin (GPL‑3.0, 32 chapters). We quote the book directly and keep a clear line between what's in the novel and what we borrow.

In the novel

  • Minpentai is a game‑sport of the nation of Dzego: a strategic battle on a grid of cells — a time‑reversible cellular automaton. Players build walls, gliders, spaceships and “symbols”, extract negentropy from rock formations, and act only on scheduled intervention turns.
  • The rules change every game — “rotate one eighty if three”, hex grids, XOR shrines — so the most important skill is adapting.
  • It is treated with ceremony: priests, dungeons, national tournaments of 32, anti‑cheating drones, and the chant MU GU GEI FA — starting in fifty ticks.
  • Zei Leimin, the protagonist, is a Minpentai champion whose play style gets him recruited into cryptography and, eventually, into his country's defence.

“Well, remember, the rules are time‑reversible. So any wall that can be created in some way can be destroyed in some way.”

— Zei, Snowmoon ch. 4

“It's because Minpentai isn't just a sport.” … “It's military training.”

— Mu to Zei, Snowmoon ch. 10

“People who can understand a battlefield … all the way down to the level of surveillance and secrecy and trickery, and ultimately entropy itself.”

— Snowmoon ch. 10

“gie fe kiu kai ci bin hu” — “Grow roots, no head.” The strategy that Dzego had been employing for half a century to grow and stay protected.

— Snowmoon ch. 2 (also ch. 7, 18)

What we borrow — and what we don't

  • The name and the mindset. A privacy coin is a game of surveillance, secrecy and entropy. Minpentai is the sport that trains exactly that.
  • “Grow roots, no head.” No admin mint, no pause switch, no single point to capture. Permissionless pools, permissionless burns.
  • Reversibility as a warning. Anything that can be built can be broken — so the local pool is labelled dev‑only and production routes through audited 0xbow infrastructure.
  • Rules that change. Tiers, denominations and keepers are parameters, not dogma.
  • The novel has no “Minpentai coin”, no “five rules of silence”, and no burn‑to‑speak mechanic. Those are ours.
  • Snowmoon's currency is zipcoin; the privacy society is Veridia. We do not claim to implement either.
  • This is a fan project. It is not affiliated with, endorsed by, or reviewed by Vitalik Buterin or the Ethereum Foundation.
  • Quotes above are short excerpts used for commentary; the book is published under GPL‑3.0.
03 / echoes

Burn tiers

Computed on‑chain in whole PENTA by EchoBroadcaster.tierFor(). Behaviour above tier 1 is executed by keepers reacting to events.

04 / dapp

Use the protocol

Connect a wallet, or let the app fall back to Hardhat account #0 on localhost:8545.

Burn to speak

Burn $PENTA with a message. The more you burn, the farther your voice echoes.

balance: — PENTA

Latest echoes

Knock at a door

Burn $PENTA at someone's address (or ENS name). Leave a message and an optional ETH gift.

WhisperWall

Permanent inscriptions mirrored from high‑tier burns by the keeper. Every inscription can be minted as an on-chain SVG NFT (tokenId = echo id) by anyone — the token always goes to the author. Collection on OpenSea ↗

Live stats

Zip — privacy pool 0xbow · mainnet

Deposit ETH into 0xbow's audited Privacy Pool, let the Association Set Provider approve it, then withdraw to a fresh address through a relayer. No on-chain link between the two. Your pool account is derived from a wallet signature and is fully compatible with app.privacypools.com.

— ETH in pool
— deposits · — approved
min — ETH · vetting fee —
Signs one message (no transaction) to derive your private pool keys, then scans the pool history in your browser.

Deposit

Vetting fee is taken on deposit. ASP approval usually takes a few hours; withdrawals are possible once approved.

Withdraw

Relayer fee is quoted live; proof is generated in your browser (~24 MB of circuit files on first use).

Zip Pay send a zip-link

Pay anyone without a trace and without them needing gas or a wallet set up. A zip-link is a bearer claim on one whole note: the recipient opens it, types an address, the zero-knowledge proof is built in their browser and a relayer pays the gas. “Payment succeeded.” — like a zipcoin receipt in Snowmoon. To send an exact amount, deposit that amount first; a link always carries the full note.

Whoever holds the link (and password) can claim it. The payload lives only in the URL fragment — our server never sees it.

Unzip & Speak anonymous echo

The Snowmoon move: zipcoins burned by someone nobody can name. Your note is withdrawn through a relayer to a fresh burner wallet created in this browser; the burner swaps the ETH for $PENTA on Uniswap v4 and burns it with your message. The echo, the WhisperWall inscription and the NFT belong to the burner — never to your wallet.

Enter an amount to see how loud this echo will be.
4 steps: relayed withdrawal → funds land → swap → burn. Keep this tab open (~2–5 min).

Whisper Market on-chain · 1 % → treasury

Every tier 4+ echo is an ERC-721 whose image lives on Ethereum. Collect the words people paid to say. Non-custodial: tokens stay in your wallet until sold; 1 % of each sale buys back $PENTA via the treasury.

—whispers
—for sale
—floor (ETH)
—volume (ETH)
console

        
06 / private swap

Swap without a history any token · re-zip · 0.5 % fee

Your ETH note leaves a Privacy Pool through a relayer, lands on a burner wallet nobody has seen before, buys the token you want at the best route across every DEX, and — when the token has a 0xbow pool — zips straight back in as a new private note. The ETH that went in and the token that came out never share an address.

Unlock your pool account first (one signature, no transaction) — Same keys as app.privacypools.com. No ETH note yet? Deposit in the Pool tab.

Swap without a wallet history. Your ETH note is unzipped through a relayer to a fresh burner, the burner buys any token at the best route across all DEXes (KyberSwap aggregator), and — if the token has a 0xbow pool (USDC, USDT, DAI, wstETH, WBTC, USDS, USDe) — the result is re-zipped straight back into that pool as a new private note in your account. Tokens without a pool stay on the burner, whose key is yours.

Enter an amount to get a live quote.
relayed unzip → burner → swap → (re-zip). Keep the tab open (~2–5 min).

How a private swap is made

  1. Unzip. You pick an approved ETH note. Your browser builds a zero-knowledge proof that the note is yours and sits in the association set — without saying which deposit it was. A relayer submits it and pays the gas.
  2. Burner. The ETH lands on a wallet generated seconds ago in your browser. Its key is stored locally and shown to you; it has no history and no connection to your main wallet.
  3. Fee. The burner sends 0.5 % of the ETH to the $PENTA treasury. That is the only fee Minpentai takes; it funds buybacks and burns.
  4. Swap. The burner buys your token through the KyberSwap aggregator (best price across Uniswap, Curve, Balancer and dozens more). If the aggregator route fails, it falls back to a direct Uniswap v3 hop.
  5. Re-zip. If the token has a 0xbow pool (USDC, USDT, DAI, wstETH, WBTC, USDS, USDe), the burner deposits it there with a precommitment from your pool account. After ASP approval it shows up as a new private note you can withdraw, zip-link or swap again. Tokens without a pool stay on the burner.
Costsrelayer ~0.1–1 % (quoted live) · Minpentai 0.5 % · DEX fee + slippage · 0xbow vetting fee 0.5 % on re-zip · gas paid by the burner
Privacythe proof hides which deposit paid; the burner is new; the fee transfer links the burner only to the treasury, never to you. Wait longer and use round-ish amounts for a thicker crowd.
Controlno custody at any point — the note, the burner key and the re-zipped note are all yours. Keep the tab open; everything is resumable from the saved burner.
07 / wallet

Private wallet

Everything you hold privately, in one place: notes across all 0xbow pools, the burner wallets this browser created, and the history of your zips, unzips, swaps and echoes. Nothing here is stored on a server — notes come from your signature, burner keys from this browser.

Unlock to see your private balances — One signature, no transaction. Same keys as app.privacypools.com.

Private balance

—

Burner wallets

No burners yet. Private Swap and Unzip & Speak create them.

History

—
08 / private chat

Burn to think

A private chat with a model, with no account, no login and no wallet connection. Burn $PENTA once and prompts unlock for a throwaway key that only this browser holds. Your message goes straight from this page to the model provider with your own API key — it never passes through us.

Nothing here is logged. Ask the model something.
How it stays private
  • Your chat key is a throwaway key generated in this browser. No account, no sign-up, no wallet connection.
  • A burn of $PENTA unlocks prompts for that key. The chain sees a burn — it does not see what you asked.
  • Funding path that leaves no link: zip a note in Pool, swap it to $PENTA on a burner in Private Swap, burn from that burner. The burner and your wallet never share an address.
  • Prompts are sent by this page straight to the provider with your key. We do not proxy them and do not see them.
  • What the provider sees: your prompt text and your IP. Use Tor or a VPN if the IP matters to you.
  • Chat history lives in this browser only. Clear it and it is gone.
05 / on-chain

Contracts

Addresses are loaded from /deployments/<chainId>.json for the connected network.

Read before you touch it