starl3xx.fun / word / oops

Oops! All $WORD

Farcaster’s #1 word game enters a new era

Let’s Have A Word!

Oops! All $WORD

Prior to the start of Round 34 of Let’s Have A Word! there’d only been 4 rounds completed since April 23, whereas before that, the game was averaging 1.9 rounds/week. Here’s what happened, what’s new, and what’s next.

The problems

Problem 1: ETH prizes were never sustainable

The game’s revenue over 33 rounds was never sufficient to continually fund the prize pool seeds. The 80/20 revenue split (80% of guess pack purchases to go to the prize pool, 20% to the treasury) existed on paper; in practice, 100% of everything went back into keeping the wheel spinning, and even that wasn’t enough. I topped up the difference out of pocket, round after round. The “creator profit” line item has been in the red since day one.

In February I lowered the prize pool seed from 0.03Ξ to 0.02Ξ “in order to steer the game closer to self-sustainability,” but that didn’t ameliorate the issue like I’d hoped (Also worth noting that Round 1’s seed was 0.13Ξ and Round 14’s was 0.10Ξ, both for promo purposes).

Round 33 carried 0.00162Ξ forward, far short of the 0.02 minimum to open a new round, and so the game just sort of sat in nebulous suspension.

Starting seeds for Let’s Have A Word! Rounds 1–33
Starting seeds for Rounds 1–33

I love Let’s Have A Word! — both the game itself and the process of developing/iterating — but not to the extent that I’m willing to personally fund prize pools forever. I think that’s defensible.

The app’s anti-bot features, however, turned out to be very much not defensible.

Problem 2: The bots arrived

The game’s central conceit has always been a case of flies (bots) to honey (free play + ETH prize). The first and primary lever I employed to prevent bots was to enforce a minimum Neynar score as pseudo-proof-of-humanity.

In Round 28, bot farms began pointing thousands of fresh accounts at the game. These drive-by accounts guessed once and vanished, wave after wave. And they were successful. “@user-3064289” won Round 28, alongside a bunch of other fraudulent/phantom users finding bonus words and burn words. I’m reasonably confident bot accounts won Rounds 29, 31, 32, and 33 as well.

Round 28’s bonus and burn word finders, almost all bots

I tried to fight back with cluster detection, account heuristics, and a handful of other measures, but no single thing or combination was effective.

The solution

In a way, both problems are symptoms of the same disease: the game ran on a currency it could only lose.

So I changed the currency.

Round 34 introduces the biggest set of changes since the Round 14 upgrade.

The new $WORD economy

The jackpot and all prizes — bonus words, Top 10, referrals — now pay out $WORD from a dedicated, verified prize contract. 2.5B $WORD was seeded into this prize contract prior to Round 34 via the treasury wallet letshaveaword.eth , which holds ~14.8B $WORD as of writing. Another 500M was sent to the game’s staking contract to stream as rewards for $WORD stakers.

No more scraping together ETH to seed every round. Rounds now seed themselves from the treasury at a fixed USD value, priced by an onchain oracle at round start.

Importantly, packs and Superguess still cost ETH. 80% of every purchase becomes $WORD buy pressure credited straight into the prize pool, so paid guesses now grow the value of the token you’re trying to win.

Hold $3 to play

This is (fingers crossed!) the bot-killer. Playing now requires holding (or staking) about $3 of $WORD. Buy in once and it’s honored for as long as you hold the tokens, no matter what the price does afterward.

It’s a small price to pay, and technically it’s not even spent. It’s just held, and like always, holding more earns more: roughly $25 / $50 / $75 of $WORD gets you +1 / +2 / +3 free guesses every single day.

A “free” guess for a thousand bot accounts now costs three thousand dollars of buy pressure on the exact token they’re trying to extract.

That said, anyone who played before the bots arrived owes nothing. Everyone whose first guess landed in rounds 1-27 (all 4,432 of you) plays free, forever.

Updates + new features

Wordmarks

Two new Wordmarks shipped with Round 34:

  • Early Adopter 💅: distributed to everyone who played before the bots arrived. Like “OG Hunter,” this one can never be earned again.
  • Trailblazer 🚩: awarded for making a round’s very first global guess. First out of the gate, every round, forever. Retroactively awarded to all 26 players who ever did it.

And Wordmarks themselves got an upgrade: you can now tap any Wordmark in your Lexicon (in the Stats sheet), to see how it’s earned, your personal story (“Won Round 4 with 'SCRIM'” ), and its live rarity (“Only 26 players hold this” ).

Earned one you wanna flex? There’s also a Share button that drafts the brag for you.

UI improvements

  • The blue info bar keeps a constant height in every state, shows the prize pool in $WORD with a USD approximation, and between rounds turns into a “next round starting soon” notice w/a (new) Round Archive shortcut where the round selector usually sits
  • The $WORD sheet now shows the market cap’s 24-hour change at a glance
  • The bottom navigation buttons are evenly spaced and consistent
  • A one-time Round 34 announcement catches everyone up on their first open... with confetti on the way in, because screw the bots and you’ve earned it

Under the hood

  • When a round resolves, the next one will start a few hours later, automatically. The info bar tells you a round is coming, but not exactly when (That’s deliberate: the first guess of a round earns the Trailblazer Wordmark, so it should go to whoever shows up, not someone who set a timer)
  • Three new verified contracts on Base: the prize treasury, the pack shop, and a public guess log that commits Merkle checkpoints of every guess onchain... a permanent, tamper-evident record of who guessed what, when
  • The Archive and Verification pages now reference both economic eras: ETH rounds 1-33 stay exactly as they were, $WORD rounds render natively alongside them
  • Every incident and refund tool was rebuilt for the new economy, and the admin dashboard got a full overhaul

That covers the major updates... full changelog is available on GitHub.


Sometime in the near future, the WTU ($WORD Tokenomic Universe) is going to expand even further: I’ve been slowly developing a new tamagotchi-style game called Lexigotchi, where users mint, feed, and raise letters and combine them into words (the same 5-letter dictionary LHAW uses), with weekly jackpots and LHAW-crossover functionality. 😏

Thanks so much to everyone who has played the game! Message me on Farcaster if you have issues or feature requests!

Play Let's Have A Word!