Jason C


Satoshi's Poker 2026-06-25

A new project called BSV Poker was released recently by Craig Wright: a dealerless, peer-to-peer poker game that runs on Bitcoin SV. The first thing I wanted to know was how it compares to the poker in Satoshi's original Bitcoin client. Comparing the two is a good way to think about what kind of apps Bitcoin was meant to host, and where this new one lands.

Poker in the Original Bitcoin Code

The pre-release Bitcoin source contained scaffolding for things that never shipped: an IRC client for bootstrapping the network, a peer-to-peer marketplace, and a poker game. The poker lived in the GUI file uibase.cpp as a pair of wxWidgets dialogs, CPokerLobbyDialogBase and CPokerDialogBase: a lobby with a list of tables and buttons to Deal Hand, Fold, Call, Raise, and Leave Table.

The Poker dialog from Satoshi's original Bitcoin client: Deal Hand, Fold, Call, Raise, and Leave Table buttons with FOLD/CALL/RAISE pre-action checkboxes

But that's all it was. A UI shell. There was no card dealing, no shuffle, no betting logic, and crucially no mental poker and nothing tying any of it to Bitcoin payments or scripts. It's just sample GUI code and was pulled out shortly after. There is not enough in those empty buttons to make any real claim about what Satoshi intended for poker. People love to read meaning into it, but the code itself doesn't support much.

What we can say is narrower. Bitcoin shipped with a rich scripting language, far more opcodes than you need to check a signature. So it was clearly meant to do more than move coins. The question is what, and the poker shell doesn't answer it.

The Marketplace Is the Better Clue

If you want evidence of how Satoshi pictured apps on Bitcoin, the marketplace code is more useful than the poker, because it was more than a shell. It still didn't fully work, but it had real structure built around three core types: Products, Users, and Reviews. Reputation was tracked through an "atom" system, which is essentially a version of web of trust. Users were identified by a public key.

The Edit Product dialog from the original Bitcoin client's marketplace: Category, Title, Price, a Description, and an Order Form

Two things stand out. First, Satoshi leaned toward reputation rather than enforcement. There was no mechanism to force an honest trade; instead you had identity and reviews, and you decided who to deal with. Second, almost none of this touched the chain. Listings, users, and reviews were relayed between peers on their own publish-subscribe channels, carried on Bitcoin's own network, the same connections that move transactions and blocks, but never written to the ledger. Identity was the exception: it was a Bitcoin key, your market identity being the wallet's default receiving address.

That's a strong hint. The one substantial app in the original client kept its data off the chain, relayed over the network rather than written to the ledger.

What BSV Poker Built

BSV Poker is what those poker buttons would have needed to become real. It's a single Windows executable that acts as a Bitcoin SV node, a wallet, and a poker client all at once, much like Satoshi's client was a node, a wallet, and an almost-app in one program.

BSV Poker in play: a heads-up hand against a bot, hole cards dealt via mental poker, with the pot tracked on-chain

It solves the dealing problem with mental poker: the players collectively encrypt and shuffle the deck so nobody can see anyone else's hole cards, yet the deck is verifiably fair. There's no dealer to trust because there isn't one. That part is genuinely clever, and it's the piece Satoshi's shell never had.

The interesting departure is what it does on-chain. Funds go into an n-of-n multisig escrow, and the betting steps are broadcast to the chain. Where Satoshi's apps kept their data off the ledger, BSV Poker puts the game on it.

Dispute Settlement

It's worth being precise about what the escrow does and doesn't do. The escrow does not enforce winning settlement of the game. If someone loses and refuses to sign the payout, there is no mechanism to force it. The funds sit locked for thirty days (4,320 blocks) and then both players get their money back.

A sore loser can unwind any game they lose by refusing to sign. The winner is actually in a worse position than without escrow: if the loser refuses to sign, the winner's money is locked for thirty days too, for nothing. The escrow isn't enforcing the result. It's recording it.

So what is the on-chain part for? Evidence. You end up with an on-chain record of the betting and of the loser refusing to pay. That's it. The system doesn't make cheating impossible; it makes cheating visible, and trusts that reputation does the rest.

Which is the same move Satoshi's marketplace made. Reputation over enforcement. Atoms and reviews there; on-chain proof of a deadbeat here. Two apps, almost twenty years apart, both deciding to record behavior and let identity and reputation handle the rest.

On-Chain, For Better and Worse

BSV Poker reaches for the chain in a way Satoshi's apps avoided, and it costs something. The identity key isn't just a label; it's used in real transactions, and reused across them. The wallet also routes its spending through a single change address that stays the same throughout, so the activity traces back to one address and one identity key.

The whitepaper's privacy section recommends a new key pair for each transaction "to keep them from being linked to a common owner." Reusing a single change address across every hand is the opposite of that advice.

Both apps tie identity to a Bitcoin key. The difference is the data: Satoshi's marketplace kept its catalog and reviews off-chain, on the relay network, while BSV Poker writes everything — identity, chat, and bets — into transactions on the ledger.

What Settling Disputes On-Chain Would Take

You might ask why BSV Poker doesn't just enforce the result on-chain. The answer is likely that it's too expensive. Proving a poker hand in Bitcoin script could take long scripts, think megabytes, with hundreds of opcodes per card.

This is the kind of thing Bitcoin's deep opcode set hinted at, but mental poker would be a heavy use-case for on-chain scripting. It's not obvious Satoshi had anything this elaborate in mind. It could maybe be feasible for higher stakes poker, but probably not for smaller games.

What We Know vs What We Can Infer

So where does that leave the original question, how did Satoshi envision apps like this? Honestly, mostly inference, and I'd hold it loosely.

What we know: the poker was a UI shell with nothing behind it. The marketplace was more real, and it ran almost entirely off-chain. However, bitcoin had far more scripting power than basic payments required.

What I'd infer from that: the off-chain marketplace makes it likely the poker was meant to be mostly off-chain too, with the chain there for settlement rather than for refereeing every hand.

But it was a long time ago, and the chains have changed. Satoshi's apps were mostly off-chain partly because that's what was practical. With something like BSV's big blocks, more of this could plausibly live on-chain now. BSV Poker is one bet on where that line should be, further on-chain than Satoshi went, but possibly stopping short of the elaborate scripts real on-chain dispute settlement would demand. It leaves the result to reputation, which, fittingly, is right about where Satoshi left his marketplace.

— Written with help from Claude —


← Back to all blog posts