Princess Donut

Donut Coin

Princess Donut. 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.12 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.12+ and git; it creates a wallet and starts mining):

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

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

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

No Python at all? Download a single file from the latest release 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 https://github.com/nyc-esq/donutcoin
cd donutcoin
python3 -m venv .venv && .venv/bin/pip install -r requirements.txt

2. Make a wallet

.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 D...yourAddress --threads 4 --tag yourname

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

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.