v0 LIVE Mainnet Bitcoin-themed

Stack sats
Stack cards
Win the bracket

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.

Hard cap 21M 32 on-chain 16 abilities No admin
> MOOD
SIDEWAYS · ×1.00
> HALVING IN
... BLOCKS
32Archetypes
16Abilities
21M$CARDS
210kBlocks/Halving
0Admin
// 01

How it works

Three on-chain calls. Three play modes. Zero off-chain anything.

01
inventory_2

Open packs

Pay $CARDS, roll 5 cards. Genesis (100), Halving (500), Whale (2,500). Rolls use block.prevrandao. No oracle, no signer.

CardPacks.openHalvingPack()
02
view_module

Build a deck

Pick 8 cards. Cost curve matters; initiative is sorted ascending. Save up to 5 deck loadouts in your browser.

local · no tx required
03
trophy

Play three modes

Arena (free vs AI), Expedition (idle staking), Tournament (daily on-chain PvP, full bracket resolved by Combat library).

Tournament.enter(deck)
// 02

32 archetypes

Every illustration painted by CardArt.sol. The same SVG is what tokenURI() returns.

// 03

The market is the meta

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.

MoodTriggerExp ×Rare adj
BULL_RUN +20% Δ24h1.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 price walk · 14 samples
×1.00
Sideways · now
+2.4%
24h Δ
3,124
Swaps · 24h
// 04

From the game

Live previews. Same rendering pipeline as the real client.

// Arena · turn 7 YOU 4 · AI 3
ASIC RIG → HEAVY 12 dmg · BURN applies (3 turns)
// Halving Pack MYTHIC HIT
5 cards · 1× MYTHIC THE SATOSHI
// Tournament FINAL
64 entrants, 3,200 $CARDS pool
// 05

What makes it different

If any of these stop being true, bitCARDS is no longer bitCARDS.

link

Fully on-chain art

Every pixel of every card SVG is generated by the contract. tokenURI() returns a complete data URI. No IPFS, no centralized image hosting.

bolt

Trustless combat

Combat.resolveMatch is pure. Same decks always produce the same winner. No oracle, no commit-reveal, no signer.

currency_bitcoin

Halving cycles

Every 210,000 blocks (~29 days), BASE_REWARD halves. The economy mirrors Bitcoin's identity: capped supply, predictable issuance.

hub

v4 hook integration

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.

grid_on

Pixel-art discipline

Strict 32-color palette across cards, UI, and animations. Every illustration is a 16×16 sprite at 12×.

key_off

No admin keys

No owner, no proxy, no upgrade path, no pause. The deployer renounces control before the first pack opens. The contracts are forever.

// ENTER THE BRACKET OPEN

Stack your first deck

The contracts are deployed. The hook is wired. The first daily tournament starts at next entry-window open.

$CARDS · 21,000,000 cap // MAINNET