Open packs
Pay $CARDS, roll 5 cards. Genesis (100), Halving (500), Whale (2,500). Rolls use block.prevrandao. No oracle, no signer.
CardPacks.openHalvingPack()
bitCARDS is a fully on-chain trading card game on Ethereum mainnet. 32 collectible archetypes, every one drawn pixel-by-pixel by the contract. Trustless 8v8 combat. A v4 hook that rewards real Bitcoin halvings. $CARDS hard-capped at 21,000,000.
Three on-chain calls. Three play modes. Zero off-chain anything.
Pay $CARDS, roll 5 cards. Genesis (100), Halving (500), Whale (2,500). Rolls use block.prevrandao. No oracle, no signer.
CardPacks.openHalvingPack()
Pick 8 cards. Cost curve matters; initiative is sorted ascending. Save up to 5 deck loadouts in your browser.
local · no tx required
Arena (free vs AI), Expedition (idle staking), Tournament (daily on-chain PvP, full bracket resolved by Combat library).
Tournament.enter(deck)
Every illustration painted by CardArt.sol. The same SVG is what tokenURI() returns.
A custom v4 hook reads $CARDS/ETH price action and rewrites the game's economy in real time.
Every $CARDS swap triggers BitCardsHook.afterSwap, which writes a uint8 mood to BitCardsCore. That single byte multiplies expedition rewards, shifts pack rare-rates, and sets the per-direction LP fee. A whale buy doubles expedition rewards for 100 blocks (a halving in-game). A whale sell triggers FUD: rare-drop rates drop 10% for 100 blocks.
| Mood | Trigger | Exp × | Rare adj |
|---|---|---|---|
| BULL_RUN | +20% Δ24h | 1.25× | +10% |
| ACCUMULATION | +5..+20% | 1.10× | +5% |
| SIDEWAYS | ±5% | 1.00× | 0 |
| DIP | −5..−20% | 0.90× | −5% |
| CAPITULATION | ≤ −20% | 0.75× | −10% |
Live previews. Same rendering pipeline as the real client.
If any of these stop being true, bitCARDS is no longer bitCARDS.
Every pixel of every card SVG is generated by the contract. tokenURI() returns a complete data URI. No IPFS, no centralized image hosting.
Combat.resolveMatch is pure. Same decks always produce the same winner. No oracle, no commit-reveal, no signer.
Every 210,000 blocks (~29 days), BASE_REWARD halves. The economy mirrors Bitcoin's identity: capped supply, predictable issuance.
The mood meta is not a script. It is a Uniswap v4 hook. Whale buys trigger HALVING. Whale sells trigger FUD. The pool is the game.
Strict 32-color palette across cards, UI, and animations. Every illustration is a 16×16 sprite at 12×.
No owner, no proxy, no upgrade path, no pause. The deployer renounces control before the first pack opens. The contracts are forever.
The contracts are deployed. The hook is wired. The first daily tournament starts at next entry-window open.