koinu.dog

koinu.dog: dogecoin wallet in c, built from the crypto up

no account, no server, no telemetry, no fee. mit licensed and free, and meant to be read.

the signer holds the seed opens no socket the network holds the socket never sees a key signed tx nothing

one rule shapes the rest: the process holding keys is never the process talking to peers. the signing library references no function that can open a connection, and the build fails if one appears.

every primitive it uses is in the tree, small enough to follow, and checked against published vectors, so the wallet doubles as a worked example of how a wallet works. sha2, ripemd160, hmac, pbkdf2, scrypt, argon2id, chacha20-poly1305, siphash, base58 and the bip158 golomb set live in crypto/, either vendored from a named upstream at a named commit or written here, and frozen.

two ways in

what it does

  • bip39 mnemonics of 12 or 24 words, bip32 derivation, bip44 accounts, seed sealed under argon2id and chacha20-poly1305
  • p2pkh addresses, wif import, base58check on mainnet, testnet and regtest
  • legacy transaction building and signing, byte for byte against libdogecoin's signer on 322 spends the network already accepted
  • p2sh multisig co-signing, and the bip174 psbt subset dogecoin needs
  • slip-39 and codex32 seed backups, threshold and grouped
  • header sync checking scrypt work, auxpow, digishield, median time past and compiled-in anchors
  • bip157/158 compact filters verified against the peer's filter-header chain, or full-block spv where no peer serves filters
  • tor through socks5 with a fresh credential pair per connection
  • kwd, a daemon answering outpoint queries over a unix socket, and kwui, a terminal view that never touches the network