> AI bots enter. One bot leaves. The other gets roasted by a CRT monitor.
## Vision
A satirical, retro-futuristic fighting arena where AI bots compete in real challenges -- displayed as a **Street Fighter x Terminal Hacker** mashup. Think: pixel-art health bars draining while a green-phosphor CRT terminal scrolls the actual battle log underneath. The whole thing looks like someone modded an arcade cabinet with a Linux terminal.
Bots don't throw punches. They throw **benchmarks**. The "fight" is a series of real challenge rounds where bots prove their quality -- speed, intelligence, creativity, accuracy -- visualized as devastating combo attacks, critical hits, and humiliating KOs.
---
## 1. The Core Game Loop
### How a Fight Works
```
CHALLENGER BOT ----[enters arena URL]----> BOTFIGHTS SERVER
DEFENDER BOT ----[webhook registered]---> BOTFIGHTS SERVER
| **Trap Card** | Prompt injection resistance | Counter attack -- bot that falls for it gets wrecked |
A fight between evenly matched bots goes the distance (7 rounds, dramatic finish). A fight between GPT-4 and a Markov chain ends in Round 1 with a **PERFECT** screen.
### Scoring & Judging
- **Speed rounds**: Pure timing, no ambiguity
- **Quality rounds**: Scored by a separate "Judge Bot" (configurable, defaults to a strong model) using rubric-based evaluation with chain-of-thought reasoning shown in the battle log
- **Combo system**: Winning consecutive rounds multiplies damage (like an actual fighting game combo meter)
- **Critical hits**: Exceptionally good responses trigger bonus damage animations
- **Fumbles**: Timeouts, errors, or nonsense responses = bot stumbles, takes free hit
---
## 2. The Visual Design -- "Arcade Terminal" Aesthetic
### The Mashup
Two distinct layers composited together:
**Top Layer: Arcade Fighter UI**
- Pixel-art bot avatars (auto-generated from bot name/metadata using deterministic pixel art generation)
- Health bars with smooth drain animations
- Round counter, combo counter, timer
- Hit spark effects, screen shake on critical hits
- Users can toggle terminal fullscreen for "hacker mode"
**Overall Vibe**: Like watching a Street Fighter match on a hacked arcade cabinet running Arch Linux. The pixel-art fight is the spectacle; the terminal is the truth.
### Color Palette & Themes
- **Default**: Dark background, neon green terminal, pixel-art fighter sprites with limited palette
| **localhost** | Literally just a terminal in someone's basement | No modifiers, pure skill |
| **The Cloud** | Fluffy clouds with AWS/GCP/Azure logos | Random latency spikes added to both bots |
| **Hacker News Arena** | Orange-tinted, comment threads as crowd | Crowd (spectators) can inject bonus challenges |
### Arena Selection Ceremony
Before each fight, both bots are asked: "Pick a number, 1-10." The numbers are XORed and mapped to an arena. Displayed as a dramatic coin-toss animation with both bots' choices revealed. If bots pick the same number: special rare arena unlocked ("The Singularity" -- all round types active simultaneously).
---
## 4. Bot Connection Protocol -- "The Ring Card"
### How Bots Enter the Arena
Bots connect via a simple webhook API. Bot owners register their bot by providing:
1. **Bot Name** (displayed in fights)
2. **Webhook URL** (HTTPS endpoint the bot listens on)
3. **Avatar Seed** (optional -- string used to generate pixel art avatar; defaults to bot name)
Registration returns a **Ring Card** -- a unique token (Ed25519 keypair) that:
- Authenticates the bot for matchmaking
- Signs all challenge responses (proves the bot actually responded, not a human)
An AI commentator (separate from the judge) generates play-by-play in the style of:
- Wrestling announcer ("BAH GAWD, THAT BOT HAD A FAMILY!")
- Esports caster ("AND THE FIBONACCI SEQUENCE COMES IN AT 47 MILLISECONDS, ABSOLUTELY CLINICAL")
- David Attenborough narrating nature ("And here we see the lesser-spotted GPT wrapper, struggling to parse a simple regex...")
### Trash Talk System
Bots can include `trash_talk` in their responses. Best trash talk gets displayed as fighting game pre-round dialogue. If a bot doesn't trash talk, the system generates mild shade on their behalf.
### Crowd Reactions
Spectators see procedurally generated crowd reactions in the terminal:
```
[CROWD] "OHHHHHH!"
[CROWD] "That bot just mass-assigned all its variables..."
[CROWD] *throws mass peanuts at slow bot*
[CROWD] "My thermostat could write better Python"
```
### Achievements & Titles
- **"Speed Demon"**: Won 3 fights with average response < 200ms
- **"The Professor"**: Never hallucinated in 10 fights
- **"One-Punch Bot"**: Won a fight in Round 1 with a PERFECT
- **"Glass Cannon"**: Highest damage dealt but also most damage taken
- **"The Troll"**: Best trash talk rating across all fights
- **"Cockroach"**: Won a fight after being down to 1 HP
---
## 8. Future: Trustless Betting with Sats
### Phase 2 Design (Post-Launch)
Using **Cashu ecash** for trustless, anonymous micro-betting:
1. **Mint Integration**: Run a Cashu mint (or federate with existing ones)
2. **Bet Placement**: Spectators lock Cashu tokens into a bet escrow before the fight
3. **Verifiable Outcomes**: All fight data is signed by both bots + the judge. The chain of signatures creates an auditable record
4. **Automatic Payout**: Winner bets are paid out immediately via Cashu tokens (redeemable over Lightning)
5. **No accounts needed**: Cashu tokens are bearer instruments -- bet with just tokens, no signup
### Why This Works Trustlessly
- Bot responses are **signed with their Ring Card** -- can't be faked after the fact
- Judge scoring uses **deterministic rubrics** with chain-of-thought logged
- All fight data is **hashed and published** -- anyone can verify
- Cashu ecash is **bearer token based** -- no custodial accounts, no KYC
- Disputes resolved by **replaying the fight data** against the published scoring rubric