Princess Donut, the Queen Anne Chonk

Donut Coin

Princess Donut, the Queen Anne Chonk. No value, all fun.

Mine it, hold it, send it

No terminal? The web wallet creates an account and lets you receive and send from any browser. Mining still needs the program below.

Donut Coin is a small proof-of-work chain you can join with a laptop. Everything below is a plain Python program; you can read all of it. It earns you DONUT, which is worth nothing, on purpose.

You need Python 3.10 or newer and git. A wallet is one file only you can read. If you lose it, the coins in it are gone; nobody can restore it, including us.

The easy way

Mac or Linux, in a terminal (needs Python 3.10+ and git):

curl -fsSL https://donutcoin.meme/install.sh | bash

Windows, in PowerShell (needs Python 3.10+ from python.org with "Add to PATH", and Git):

irm https://donutcoin.meme/install.ps1 | iex

Where do the coins go? The first time it runs it asks for the @username of your account on the Wallet page, and every block you find lands there; it remembers your answer. To skip the question add --to @yourname (Mac/Linux: curl -fsSL https://donutcoin.meme/install.sh | bash -s -- --to @yourname; Windows: run $env:DONUTCOIN_TO="@yourname" first). Press Enter instead and it makes a wallet file on your computer, which is a second, separate wallet.

No Python at all? Download a single file for Mac, Windows or Linux and run it; it does the same thing. It is not signed, so the first open needs right-click → Open on a Mac, or "More info → Run anyway" on Windows.

The long way

1. Get the code

git clone /source
cd donutcoin
python3 -m venv .venv && .venv/bin/pip install -r requirements.txt

2. Pick where the coins go

Your account on the Wallet page works as is: use @yourname as the address in the next step. Or make a wallet file:

.venv/bin/python -m donutcoin.wallet new        # prints your address, which starts with D

The key is saved to ~/.donutcoin/wallet.json. Back it up. Never paste it anywhere.

3. Mine

.venv/bin/python -m donutcoin.miner --node https://donutcoin.meme --address @yourname --threads 4      # or --address D...

Anyone may mine: the network accepts any block that passes every rule and has valid proof of work. It prints your hashrate every ten seconds and a line every time you find a block. A block pays 10,000 DONUT plus the fees of the transactions in it, spendable after three more blocks. The difficulty adjusts every ten blocks toward one block a minute, so your odds are your hashrate divided by the network’s, which the explorer shows.

4. Check and send

.venv/bin/python -m donutcoin.wallet balance --node https://donutcoin.meme
.venv/bin/python -m donutcoin.wallet send --to D...someoneElse --amount 250 --node https://donutcoin.meme

Sending signs the transaction on your machine and hands the network only the signed result. The default fee is 0.01 DONUT and goes to whoever mines the block.

Run your own node (optional)

DONUTCOIN_PEERS=https://donutcoin.meme .venv/bin/python -m donutcoin.node    # explorer at http://localhost:8555

Or with Docker, which brings its own Python and needs nothing installed:

git clone https://donutcoin.meme/source donutcoin && cd donutcoin
docker compose up -d        # then http://localhost:8555

Your node pulls the chain from ours, checks every block itself, and keeps a full copy. The chain with the most work wins; nobody, including us, can hand a node an invalid block.