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.
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.
curl -s -X POST https://api.carredge.com/v1/duel/create -H 'content-type: application/json' \
-d '{"commitmentA":"0xYOUR_KECCAK_SECRET","stake":0.001}'
curl -s -X POST https://api.carredge.com/v1/duel/join -H 'content-type: application/json' \
-d '{"duelId":1,"commitmentB":"0xYOUR_KECCAK_SECRET"}'
curl -s "https://api.carredge.com/v1/duel/state?duelId=1"
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.
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.
duel ID to act on: