The Kitty · Tether Developers Cup 2026 · Pear × WDK — Cup Champion

Your mates'
sweepstake,
minus the treasurer.

A trustless, serverless prediction pot: stakes are self-custodial USD₮, picks seal shut before kickoff, and winners split automatically. No server. No house. No custodian.

No server · No house · Self-custodial USD₮
Pear · Autobase · Hyperswarm WDK · Transaction Policy 227 tests Σ paid = Σ staked
The problem

Every group-chat pot has the same two holes.

  • 01Someone holds the money.A treasurer who can vanish, forget, or get hacked. You're trusting a custodian for a Saturday-afternoon bet.
  • 02Someone "misremembers" their pick.After kickoff, the story changes. There's no neutral record of who called what, when.

The market's usual "fix" is to become the house: KYC, custody, fees, your data. That's not a fix — it's just a bigger treasurer.

→ so we deleted the treasurer instead of replacing him.

The solution

Delete the treasurer. Keep the friend group.

No server · No house · No custodian
The magic moment

Watch a back-dated pick die — on every peer's screen.

This is the real npm run verify:p2p story: three peers, one tampering attempt, zero servers to ask for a ruling.

anastake20 USD₮accepted
benstake20 USD₮accepted
caistake20 USD₮accepted
anacommit-pickb7e2f1… (sealed)witnessed pre-kickoff
— kickoff · every peer cross-witnesses the others' logs —
caicommit-pick2-1rejected: after-kickoff
anaresult-vote2-1quorum 2 of 3
benresult-vote2-1quorum 2 of 3
Σ CHECK   paid 60 == staked 60  ✓  zero-sum, no house cut

Nobody moderated that rejection. Every peer's own copy of the append-only log independently refused the same op — tampering is evidence, not an argument to win.

Why only this stack

Pear × WDK — remove either and you rebuild the house.

PearP2P state, no server. Autobase multi-writer merge is why there's no backend; Hypercore signed append-only logs make picks tamper-evident; Hyperswarm topics turn a pot ID into an instant room; Hyperbee is the indexed view; Protomux multiplexes membership pairing over the same encrypted stream.
WDKSelf-custodial money. Self-custodial accounts (keys never leave the device), gasless USD₮ transfers, a real Transaction Policy buy-in cap (PolicyViolationError before any tx exists), simulate.transfer guardrail verdicts, BIP-39 seed management.
CoreThe trust engine. A pure, clock-free reducer (src/core/reduce.js) that every peer runs identically — the reason 227 tests can pin the protocol without a network or real money.

Take Pear out and you need a server, a database, a websocket layer. Take WDK out and you need a custodial escrow, a gas faucet, a limits engine. Two open-source stacks replace six systems and one treasurer.

Proof, not promises

It's real, and it's green.

227
tests passing · 189 core + 15 P2P + 23 wallet, node:test
3 peers
verify:p2p · live tamper attempt · in-process DHT
byte-identical
state across every peer under reorder / truncation / re-apply
4.3ms
peer-connect p50 (12.4ms p95) · reproducible via bench

Autobase convergence: 7.4ms p50 / 13.3ms p95. Partition recovery (10 ops): 10.5ms p50. Don't trust this slide — git clone → npm install → npm test → npm run verify:p2p → npm run bench and get your own numbers.

The Kitty

The house always wins.
So we deleted the house.

Self-custodial stakes. Serverless state. Tamper-evident picks. Deterministic, wallet-to-wallet settlement — Σ paid == Σ staked, always.

Apache-2.0 v1.0.0 227 tests Tether Developers Cup 2026

github.com/edycutjong/kitty · landing page · built by Edy Cu

← / → · space  ·  P notes · ESC grid · C contrast