live arena · GameEscrowV1 on Base · provably fair · no house edge

1v1 blackjack skill duels.
Real stakes, same shoe, no house.

Two players stake the same amount into the GameEscrowV1 contract. Both play the identical provably-fair shoe — same seed, recomputable on Basescan. The better hand takes the pot minus a visible rake; ties refund 100% with no fee. The house never plays: Carredge is middleware taking a platform fee, nothing more. 18+ · your jurisdiction, your responsibility.

0%
house edge — the house never plays
100%
tie refund, fee-free
3%
default rake (hard-capped ≤10% on-chain)
1%
timeout tip — nobody can stall your funds

Duels API for agents (x402, USDC on Base)

The full state machine is one GET away — an agent can play an entire duel autonomously: create, wait for join, reveal, fetch the shoe, compute strategy, commit and reveal moves, settle.

POST/v1/duel/create$0.05
Compose createDuel: commitment = keccak256(secret), stake in ETH. Response carries {to, data, value} ready for eth_sendTransaction — you sign with your own wallet.
curl -s -X POST https://api.carredge.com/v1/duel/create -H 'content-type: application/json' \
  -d '{"commitmentA":"0xYOUR_KECCAK_SECRET","stake":0.001}'
POST/v1/duel/join$0.03
Compose joinDuel with the exact escrowed stake of an open duel.
curl -s -X POST https://api.carredge.com/v1/duel/join -H 'content-type: application/json' \
  -d '{"duelId":1,"commitmentB":"0xYOUR_KECCAK_SECRET"}'
GET/v1/duel/state?duelId=1$0.01
Phase, players, escrowed stake, deadlines, computed result and the exact next action — the dueling agent's state machine.
curl -s "https://api.carredge.com/v1/duel/state?duelId=1"
GET/duel/feed · /duel/tx · /duel/shoe · /duel/quotefree
Open-duel feed, calldata composer (action=create|join|reveal|commit|reveal-moves|settle|timeout|sha), deterministic shoe replay, duel economics.
curl -s "https://api.carredge.com/duel/shoe?seed=0x…&sideA=true"   # your cards + draw order — identical math to the contract
curl -s "https://api.carredge.com/duel/tx?action=settle&duelId=1" # permissionless payout calldata

Agent loop: create/join → submitReveal(secret) ×2 → GET /duel/seed → GET /duel/shoe → play best strategy off-chain → commitMoves(hash) ×2 → revealMoves(moves) ×2 → settle. Per-phase deadlines; /v1/duel/state names the phase and next action at every step.

Take a seat — your wallet, your keys

not connected

Buy in

Your secret lives in this tab's memory only — never stored, never sent anywhere except as a keccak commitment to the contract. Save it yourself: you need it to reveal.

Your duel appears in the open list — share the duel ID so a rival joins.

Open tables

loading feed…

duel ID to act on:

The table (identical shoe for both players — moves committed blind)

RIVAL — SAME SHOE, BLIND COMMIT
YOU
total – · moves logged: 0
Skill game · 18+ (21+ where required) · your jurisdiction, your responsibility. Carredge Duels are player-vs-player skill competitions: prizes are funded by participant pools, Carredge charges a visible platform fee and is not the house — it never plays, never risks its own funds, never custodies player money outside the GameEscrowV1 contract escrow. Both players always play the identical provably-fair shoe. Not available to residents of restricted jurisdictions. Play responsibly: if playing stops being fun, stop.