[ANN] XCP Craps - Weekly Dice Game

Please note: The game is in beta. Unintended loss of funds may occur. Play with tiny amounts for testing!

Play XCP Craps every Friday at 3pm UTC!


The game begins with the first block with a timestamp later than 15:00 UTC.

Its blockhash determines a dice roll. Read the block hash from right to left. The first number 1-6 decides the dice roll.

E.g. this blockhash - 000000000000000001496c7ce46bbe2239f21f2a6250e955fe77b978d69428ca - means the dice lands on 2.

Repeat for the following two blocks.

The oracle sums the three dice rolls and broadcasts the result.

You can play on the outcome being 7, in which case you will roughly win 14x your bet.

Or you can choose to be ‘the house’, and then you’ll win a small amount most of the time but sometimes lose a lot. To win 1 XCP you need risk about 14 XCP.

How to Play

You’ll need the CounterTools wallet.

  • https://github.com/Jpja/CounterTools
  • Click the green “Clone or download” button and select “Download ZIP”.
  • Extract the zip file locally on your computer
  • Open index.html
  • You’ll see an orange box. Click the link (Get Started …)
  • Follow instructions on-screen to set up a wallet
  • Open index.html again and confirm your wallet is set up (no more demo wallet)
  • Deposit the amount of XCP you want to play with and some BTC to pay transaction fees
  • Open craps.html and you’re ready to play

Bets can be placed from six days to one hour prior to a game.

When you place a bet, XCP is automatically escrowed. After the game ends, four things can happen

  • Your bet was never matched. Your XCP is returned
  • You won. You receive both your escrowed XCP and your counterparty’s escrowed XCP
  • You lose. Your counterparty receives your escrowed XCP
  • Your bet was partially matched. Winnings are paid accordingly for the matched part, and the unmatched part is returned.

How Bets are Matched

When you place a bet you must specify whether you want to play on the outcome being 7 or NOT being 7. For your bet to match there must be another player who takes the opposite side.

If there is no match, your bet remains unmatched but open to match as soon as someone takes the opposite side.

Matching bets must also have matching odds.

Say you play on 7 at odds=14. This means you require a payout of at least 14x in case you win.

An opposing player bets on NOT 7 at the same odds. Your bets match.

Now if the opposing player were to set the highest odds to accept at 13.5, your bets would not match.

Then you, playing on 7, should consider placing a matching bet at odds=13.5 or just wait and see if someone else may be willing to play at 14.


Every bet you place has two costs

  • Bitcoin mining fee
  • An oracle fee of 0.00005470 (~$0.06)

The oracle also takes 3% of any XCP winnings.

The odds are dynamic and set by the players. The default odds of 14 gives ‘the house’ (NOT 7) an edge. This is to encourage more players to take this side. Remember, you can take this side too.


Apart from the obvious risk of losing the game, there are several other things to keep in mind

  • The oracle must be trusted to broadcast the correct dice roll sum
  • The wallet is under development and bugs may cause loss of funds
  • Etc

Community / Follow the Game

Please join the Slack Chat - https://counterparty.slack.com/

Talk with other players in the Water Cooler channel.

To follow the dice rolls, check out https://blockexplorer.com/blocks

To study active bets, go here http://blockscan.com/bets

To view the oracle feed, click link https://counterpartychain.io/broadcasts/1BetXQ5w9mMmJosZ21jUtrebdpgMhYQUaZ

Words of Caution

The game is experimental. It may not work as expected. Please play with tiny amounts. It’s recommended to create a separate 12-word passphrase for this game only.

Notes / Updates

  • Odds bug fixed. If you played on odds=14, you’d actually get odds=15. This has been fixed. You can still play on the old version but then set odds=13 instead.
    • But preferably go to https://github.com/Jpja/CounterTools and get the newest version. You don’t need to download everything. Just replace the old source code in craps.html with the new one
  • Betting works as expected
    • But unmatched bets need to be set to expire quite early before deadline (several hours prior).
    • An open unmatched bet during the game is very dangerous. Someone could then match it when they know the outcome and before the oracle has broadcast it.
    • A bet can be set to expire after X blocks from it was confirmed (not at a certain block height or block timestamp). This makes it difficult to set an accurate expiration, so aim is to err several hours on the safe side
  • Therefore better place a bet at least a day in advance.
  • The oracle could solve open bets by issuing a -3 value feed right before the deadline but this would be quite a commitment by the oracle, which it will not guarantee now
  • You the player have two safeguards against this. See if there’s any open unmatched bets that will fill you immediately. Then this won’t be an issue. If you do place a bet that may not match, better set the fee quite high so it’s confirmed quickly. CounterTools has set the deadline (X blocks) so early that your bet very likely will expire in time.