A party game · Live on Cloudflare

Bidiocy

Best thy buddies’ bestiary.

A party game of candle-lit auctions and bluffing barters for silly mythical beasts. One screen (a TV or laptop) is the tavern table. Everyone plays on their phone.

70 120 140 150 50

Folio I · Whence it came

Kuhhandel, minus the paper money

idiocy is my version of Kuhhandel, a German card game you might know as You’re Bluffing! Everyone auctions off animals, then haggles for each other’s by sliding face-down money across the table.

The auctions are fun. The haggling is the whole point. Here’s how I put it when I was rebuilding the rules for the medieval version:

…staring down the opposing player in a barter and putting down an undisclosed amount of money on the table. You see how many cards that the other player has laid down, including “bluff” money that makes it look like more, but you don’t really know what the other player is bidding. It’s somewhat intense and always leaves someone feeling a bit silly.

So the brief I gave myself: keep that stare-down, lose the stack of paper money. One big screen is the table everybody watches, Jackbox style. Each phone is a private purse, so nobody can see what you’re about to slide across.

How the game is played · Phase I

The Market

Each turn, one player is the auctioneer and turns over the next beast. Everyone else bids from their phone before the candle burns down. Every bid relights it.

When it goes out, the auctioneer has a choice: sell to the high bidder, or pay that same bid out of their own purse and keep the beast. It’s the cruelest button in the game, and it’s labelled Keep it.

Turn up a Golden Goose and she lays an egg first: a coin for every purse, bigger each time. Then, naturally, somebody sells her.

Have a go Thou hast 90 crowns. Wizard Gregor is the auctioneer, and two of thy friends are feeling flush.

140

Auctioneer Wizard Gregor

  • Thee —
  • Lady Grizel Custardsock —
  • Friar Odo the Hiccuping —
Opening bid — No bids yet
Thy purse 90

How the game is played · Phase II

The Barter

Once the last beast is sold, the market closes and bartering stops being optional. On your turn you must challenge a rival over a collection you both hold.

You slide coins across face-down. The big screen shows the pile growing, one coin at a time, so the whole room watches you add one, hesitate, and take it back. Your rival sees how many coins, never how much. They can take the pile, or counter with their own.

Then both piles flip. The richer pile wins the beasts, and the piles swap hands. And everyone starts the game with two brass buttons: worth nothing, but they fatten a pile.

Have a go Lady Grizel holds a unicorn and so dost thou. Tap coins to slide them across, then push.

120
Thy beast
120
Lady Grizel’s
Lady Grizel’s pile
Thy pile (all she sees: nothing yet)
Thy purse tap a coin to slide it across

The Bestiary

Eleven collections. Four ranks each. None of them any good.

Each collection is worth 50 to 150, and every one has a Peasant, a Squire, a Noble and a Royal. Rank is pure flavour (gilt edges, sillier crowns). Only complete collections score. Tap a card to turn it over.

  1. Bumbling Bonnacons worth 50
  2. Cocky Cockatrices worth 60
  3. Squabbling Hydras worth 70
  4. Bashful Basilisks worth 80
  5. Wayward Wyverns worth 90
  6. Mannerless Manticores worth 100
  7. Griffin Grifters worth 110
  8. Unruly Unicorns worth 120
  9. Phoenix Flambé worth 130
  10. Hoarding Dragons worth 140
  11. Golden Geese worth 150
  12. The Golden Goose lays

    1. A Modest Egg +50 for every purse
    2. A Hefty Egg +100 for every purse
    3. A Whopping Egg +200 for every purse
    4. The Egg of Legend +500 for every purse

    The Reckoning Score = sum of thy complete collections × how many thou hast. Dragons and Geese: (140 + 150) × 2 = 580

Joining the table

Thy title, thy name, thy coat of arms

The TV shows a QR code and a four-letter room code. On your phone you pick a title, type a name (or roll the die for a silly one), and take a seat. Your coat of arms is drawn from your name, so it’s the same on every screen, every game.

Best thy buddies’ bestiary.

Thy title
or roll the die for a silly name

Make way for Baroness Bidsworth!

Room code HONK

Gather round, ye bidders.

May the best bestiary win.

  • Lady Grizel Custardsock
  • Friar Odo the Hiccuping
  • Baroness Bidsworth

…and the hat

Win a round, choose a ridiculous hat

The narrator promises the winner “a truly enormous hat,” so I had to deliver. After a round, the winner picks one on their phone and it sits on their shield on every screen until somebody else wins and takes the honour. Try a few on.

How it got here

From NFT satire to medieval bestiary

The rules never changed much. The costume changed three times. It started as a joke about NFT collectors, which aged about as well as NFTs did.

  1. The first draft

    A product doc for a bad idea, done properly

    Kuhhandel’s rules, re-skinned as NFT trading. Auctions were “The Mint.” Barters were “Sliding into DMs.” The money was Cryptid Coin. It even had a full WebSocket event spec.

  2. Concept art
    Pixel-art Bigfoot in sunglasses with a cigarette Pixel-art Nessie with a pink mohawk and sunglasses Pixel-art Chupacabra with spiky hair Pixel-art Mothman with red eyes

    CryptoPunks, but cryptids

    I had Gemini make a few pixel portraits as a direction: Bigfoot in shades, Nessie with a pink mohawk, a Chupacabra, a Mothman. Cryptids, because the money was already Cryptid Coin.

  3. August 2026
    • Jackalope Yacht Club 50
    • Chuffed Chupacabras 60
    • Greyed-Out Greys 70
    • Jersey Devil Divas 80
    • Wendigo Windfall 90
    • Kraken Kiddos 100
    • Yeti Set Go 110
    • Mothman Moonboys 120
    • Nifty Nessies 130
    • Bored Bigfoots 140

    Jackalope Yacht Club to Bored Bigfoots

    Ten collections of four, drawn in code as 12×12 pixel sprites on holographic foil cards. It worked end to end: QR join, live auctions, hidden-bid barters and a podium with confetti.

  4. September 2026
    A painted medieval market square, the backdrop of the title screen

    “Same game rules, just made medieval”

    Then I decided to keep the bones and change the world: a medieval market of mythical creatures, highly polished. Every card was repainted, the music and narration came in, and the rules moved closer to Kuhhandel, not further.

A glossary of things that got renamed

NFTs
Beasts
Cryptid Coin
Crowns
The Mint
To Market
Airdrops
The Golden Goose
Sliding into DMs
Barter
Right of First Refusal
Keep it
Goblins and trolls
Bonnacons and hydras
Bidiots
Bidiocy

The beasts were people once, too. Goblins and trolls became bonnacons and hydras, and every card was repainted with no clothes or human faces. Still derpy.

Marginalia

The little things that make a table feel like a table

Well-thumbed cards

No two cards are worn the same

Every card gets scuffs, creases and stains from one shared texture, offset and flipped by a hash of the card’s id, and rests at its own slight tilt. Rank shows in the border: bare paper, silver, gold, then double gold with a foil glint that catches the candlelight.

130 130 130 130

Hear the Tale

A narrator, for people who won’t read rules

In the lobby, the host can play a narrated tour. A pretend game plays out on the real table while a spotlight follows the story. The voice is Grandfather Joe, via ElevenLabs.

Part I · The Kingdom

“…Keeper of the Royal Bestiary! And be given a truly enormous hat.”

Sound

Bids that climb

Every bid on the same beast lands a low string stab one note higher than the last. When an auction heats up, a heartbeat drum joins in. It’s capped so it never gets shrill.

Underneath: a tavern hubbub, CC0 crowd oohs and gasps for big overbids and bluffs, and real goose honks.

The name die

Thousands of silly names, some of them real

Mashed-up surnames, archaic insults, Shakespeare’s clowns, Renaissance instruments, and real historical nicknames. Robert Curthose (“short stockings”) was a Duke of Normandy. Pompey Bum is a real character in Measure for Measure.

Lift to bid

Your phone is a paddle

During an auction, lifting your phone upright bids the smallest step you can afford, like raising a paddle. It reads the motion sensors in the browser, and it only adds to the coin buttons, never replaces them.

Head-to-head

Two players get their own rules

An auction needs a rival bidder, so with two players the Crown holds every auction. Both bid, the winner pays the Crown, and those coins leave the game. Purses start doubled. Spend at auction, or save for the barters.

Under the table

How it’s built

One Durable Object per table

A Cloudflare Worker serves the pages, art and audio. Each four-letter table is its own Durable Object holding the game and every phone’s WebSocket. An alarm checks in every five minutes, and a table with no moves for 30 minutes closes itself: the innkeeper sweeps up the cards and blows out the candles.

One copy of the rules

Socket.io came out so the game could run on Workers. The rules and the table live in one shared module, so my laptop’s Node server and the Worker run exactly the same code.

Phones are controllers

Scan the QR, pick a title, sit down. Drop out mid-game and you can rejoin with the same name and code.

Bots play whole games

The rules have unit tests, and a simulator has bots play complete games against a 200×-speed server, two to six players, checking that no coin is created or lost except by the goose.

Painted by script

The 44 beasts, 11 heraldic sigils, 8 hats, the table and the mat were painted with the OpenAI Images API from prompts kept in the repo, so a bad card can be repainted on its own.

Push to play

Pushes to main deploy through Workers Builds. Pull requests get their own preview table with a short three-collection deck.

The stack

  • Vanilla HTML, CSS & JS
  • Node + ws (local)
  • Cloudflare Workers
  • Durable Objects
  • WebSockets
  • OpenAI Images API
  • ElevenLabs
  • Freesound (CC0)

The table is open

Pull up a stool

Bidiocy is live. Open Host the Table on a TV or laptop, then have everyone scan the QR code with their phone. The table seats two to six.

Play it
Up next · Family organizer · in daily use Focutize The family calendar you can text.