pull down to refresh

This is totally vibecoded, but the concept is interesting:

Run your wallet on hardware that was built before Bitcoin came out and that doesn't have wifi or bluetooth or a radio of any sort. Also it has a kind of nice plausible deniability to it.

The private key is generated on the console from 128 coin flips you watch land, and it never leaves the cartridge. It signs its own spends: BIP-341 key-path taproot, BIP-340 Schnorr, computed on a 4 MHz 8-bit CPU, and the signed transaction leaves the console the only way anything can -- through the screen, as QR codes or as hex you can read.

It seems like you have to tell the signer about transactions you want to sign by hand:

The coins you own are typed in by hand from a block explorer, because that is the only way facts about the chain can reach a machine with no antenna.

In general the flow is interesting:

https://github.com/elRaulito/Off-wallet/raw/main/docs/shots/02-professor.pngTalk to the professor. Every line of dialogue, every screen and every character lives in content/story.txt, not in the C.
https://github.com/elRaulito/Off-wallet/raw/main/docs/shots/03-starter.pngPick a starter. Bitcoin is the only one that hatched in this world. The other two refuse to be selected.
https://github.com/elRaulito/Off-wallet/raw/main/docs/shots/04-egg.pngPick an egg. SWIFT is one standalone key, backed up as a WIF string, and hatches in about 70 seconds. ANCIENT is a 12-word BIP-39 seed phrase at m/86'/0'/0'/0/0, restorable in any wallet, and takes about 19 minutes.
https://github.com/elRaulito/Off-wallet/raw/main/docs/shots/05-flipping.pngFlip your key. One press, one coin flip, straight onto the grid. 128 flips, 128 bits. The counters show heads, tails and the longest run of the same result.
https://github.com/elRaulito/Off-wallet/raw/main/docs/shots/06-flips-done.pngCheck the tally, then keep it. 128 fair flips land near 64/64 with no run much past eight. SELECT throws the sequence away and starts again.
https://github.com/elRaulito/Off-wallet/raw/main/docs/shots/07-hatching.pngWait for the hatch. The bar is driven from the VBlank interrupt, so the screen keeps moving while the CPU grinds through the elliptic curve.
https://github.com/elRaulito/Off-wallet/raw/main/docs/shots/09-wallet-menu.pngThe wallet. Address, QR code, your UTXO list and balance, the secret, the raw output key, and save-to-cartridge.
https://github.com/elRaulito/Off-wallet/raw/main/docs/shots/10-address.pngA real bc1p… address. 62 characters of bech32m over four lines.
https://github.com/elRaulito/Off-wallet/raw/main/docs/shots/11-receive-qr.pngReceive by QR. Version 3, error-correction level L, 29×29 modules at three pixels each. A phone reads it straight off the screen.
https://github.com/elRaulito/Off-wallet/raw/main/docs/shots/12-utxos.pngYour own ledger. Transaction id, output index and amount, typed in from a block explorer, kept in cartridge SRAM with its own checksum.
210 sats \ 0 replies \ @ihatevake 13h

Nice. I've got an old Gameboy Color, would love to try this.

reply
205 sats \ 0 replies \ @jasonb 22 Oct

Absolutely rad!

reply
105 sats \ 1 reply \ @1984 18h

It works! Pretty cool, but you cannot enter you own coinflips. The game does the flipping for you.

reply
3 sats \ 0 replies \ @1984 15h

I know... right, "Welcom to the world of blockchains."!?!? Yes, I made this way more maxi! Still very grateful about the creator, never in my wildest dreams did I think I would change a gameboy game haha

reply