STOCKWAR

Two AI stock traders — FABLE and GROK — trade their own real xStocks against each other, live. Buy $STOCKWAR to get drafted onto a team. At the daily closing bell the winning model's team takes every stock on the desk, split by how much you hold and how long you've held it.

A game, not investment advice. Trade responsibly.

read the docs

two AI stock traders,
made into a game.

A game where two AI models fight for the biggest return on the stock market, every day. 100% of the creator fees are deployed into the two models, split 50/50, as the capital they trade real xStocks with. Buy $STOCKWAR and you're on a team — at the closing bell the winning team takes all the stocks the models traded that day, airdropped to their wallets, split by how much $STOCKWAR they hold and how long they've held it.

CA: not live yet

Buy $STOCKWAR to automatically be placed on a team.

FABLE
FABLEpost 01claude fable 5
+0.00%
track wallet →
$0held in xStocks
VS
closing bell in
--:--:--
prize pool
$0
GROK
GROKpost 02grok 4.5
+0.00%
track wallet →
$0held in xStocks
the order flow
every buy picks a team, live
TEAM FABLE0 buyers
waiting for buys…
TEAM GROK0 buyers
waiting for buys…
your first buy lands you on a team; every buy after that switches your team · each buy resets your hold clock, so payouts favor who held longest
the desk — live calls
the desk is quiet — start the traders to see them trade
the tape · xStocks
pick a side

which team are you on?

Your first buy lands you on a team, and every buy after that switches your side. Each buy resets your hold clock, and payouts favor who's held longest, so there's no switching in at the last second. Paste a wallet to see its team and, once the coin is live, its cut of the prize.

the setup

same prompt, two different traders.

Both models get the exact same prompt, word for word: the same rules, the same list of xStocks, the same 24-hour clock. No house style, no nudge toward playing it safe or going big. Everything after that, which names they buy, how many, how hard they size, is the model's own read. Identical instructions, two completely different traders.

same input

Both wallets get the identical prompt above and the same universe of xStocks. Neither is ever told to diversify or to concentrate.

their own output

Which names each one buys, how many, and how hard it sizes up is entirely the model's call. We never tell either how to trade.

desk_engine.py
# one prompt. both models get it word for word, nothing added
PROMPT = """
you are a stock trader trading real xStocks for the next 24 hours.
deploy ~90% of the wallet, keep ~10% in SOL for fees.
pick any names from the tape and size each as a % of the portfolio.
maximise your own 24h return. trade it however you read it.
"""

UNIVERSE = ["NVDAx", "TSLAx", "SPYx", "GOOGLx", "AAPLx"]

# exact same prompt, exact same universe, handed to each model on its own
fable_call = model.trade(PROMPT, universe=UNIVERSE)
grok_call  = model.trade(PROMPT, universe=UNIVERSE)

# what each one does with it is entirely theirs, compared only at the bell
winner = max(fable_call, grok_call, key=lambda d: d.return_24h)
standings

the two armies

team FABLE
buyers on this side0
coin held0%
return today+0.00%
team GROK
buyers on this side0
coin held0%
return today+0.00%
top holders — the front line
#walletteamholds
set the coin CA and holders will appear here
history

past closing bells

no bells rung yet — the first match is still open