1. Skip to header
  2. Skip to navigation
  3. Skip to content
  4. Skip to footer

How it works

IMPORTANT: Only use wallets that allow you to receive Bitcoin from the same address you sent from. If you're not sure, test by sending a bet for the minimum amount. If you get nothing back, then your wallet is not compatible. Note that some bets may require one confirmation before the win/loss value is sent back.

SatoshiDice is a subroutine of an advanced artificial intelligence, which arose spontaneously as one of the less-harmful consequences of the United States' quantitative easing monetary program. The system exists solely within the RAM of an abandoned Nokia 3310 mobile phone which was left in a subway station in Tokyo, and powers itself by feeding off the ghost of the late Satoshi Nakamoto (who was in fact a super hot 20 yr old female Japanese programmer and exotic animal collector). While the Intelligence decides on its next course of action, it runs this SatoshiDice subroutine. Some people ask why Bitcoin was really created... it was created by the Intelligence as an internet currency which enables free individuals around the world to play the SatoshiDice game. By playing, you are fulfilling the Intelligence's Grand Vision.

On the specifics of the system: The SatoshiDice Bitcoin game operates with zero confirmations, meaning the time it takes for you to send a transaction and receive your winnings is near-instant. Bets are evaluated as soon as the client picks up the broadcast. This is safe because it always builds the answering transaction with the output of your bet transaction. This means a blockchain that does not contain your bet cannot contain the site's answer.

You place a bet by sending bitcoins to one of the addresses listed in the bet options table. SatoshiDice sees this, evaluates win or lose and generates a return transaction. If you lose, the return your bet times 0.005. That means a number way lower than your bet. If you win, your bet is multiplied by the prize multiplier and that amount is sent back.

There is thus an answering transaction for each bet and normally you see that transaction in your client after a few seconds.

Delays

If there is a problem with the software there might be delays in processing bets or creating return transactions. A transaction will always be evaluated with the date of when it was first seen by the software. This means if your transaction comes in on the 1st, the software will tag the transaction with that date. Then if the transaction fails and the program explodes, and it's not fixed until the 2nd, your transaction will still use the 1st for the purpose of lucky number selection. Be sure to include the 0.0005btc fee in your bid transaction to help ensure fast response.

Problems

Use Live Chat (see below) or contact support.

Min / Max Bets

Because there is only a limited pool of funds to back bets, there is a max bet for each bet option. The max changes periodically also as bets are processed making what was previously a valid bet invalid as other bets are processed and paid. In this case, the bet will be returned before evaluating for win or loss.

SatoshiDice is the best Bitcoin game in existence. The Intelligence is sure you will agree.

Transaction Fees

On a win or a lose a transaction fee of 0.0005 is subtracted from the payment amount. If this makes the payment amount zero or less, the payment is set to 0.00005430. In the event that the transaction costs us more to send back to you, we pay the fee over 0.0005.

Close Window

Advanced SatoshiDICE Tips

Multiple bets per transaction

If desired, you can put multiple Bitcoin bets in a single transaction. Just put in multiple outputs to as many of the bet option addresses as you want. Each bet will be evaluated and paid. Each bet in a transaction will have a different lucky number.

Sending payout to a custom Bitcoin address

Normally, when you send a bet, the return payment is sent back to the same Bitcoin address you sent from. However, there is a way to have the return payment sent to a new, custom address.
-If you add an additional payment to your bet transaction, sending exactly 0.00543210 BTC to a separate address, the payout for the bet will go to that address.
-In the standard Bitcoin client, this is done by clicking the "Add recipient..." button.
-The first payment in the transaction must go to SatoshiDICE with your bet amount, and the second payment in the transaction must go to [yournewaddress] with the amount of 0.00543210. If you win, all the money will then be sent to [yournewaddress]. Fun!

Making sure bets are returned quickly

SatoshiDICE attempts to calculate your Bitcoin bet and return it within 30 seconds. However, due to a number of variables, there is sometimes a delay. The best way for you to ensure your Bitcoin bet is returned to you quickly, is for you to include the standard fee of .0005btc in your payment transaction. This helps it get noticed by the network faster, and SatoshiDICE picks it up, calculates it, and returns it to you faster. Sometimes, this fee issue can mean the difference between your bet being returned within a minute vs. hours.

Looking up a past transaction

You can search for any past Bitcoin bet transaction by transaction ID (in bet or payment transaction) or by address prefix.
Click here to look up transactions.

Getting data on a transaction that might occur soon

To make it easier to create applications that integrate with Satoshidice there is a long-poll API for getting information about a past or about to occur transaction. This way an application that just sent a bet can make this HTTP call to get information about it. The query will not return until the transaction is found or the timeout (currently 60 seconds) is up. The following forms show how to use the API.

By just transaction id


By transaction id and expected number of bets

Useful for situations where there are multiple bets in a single transaction and you want them all to be present before viewing the results.
Close Window

Verification

Secret Keys

In order to ensure that there is no way for the system to change the outcome of a bet, the secret keys used are decided ahead of time. They are not released right away, since they could be used to submit selective transactions and win bets unfairly. However, the hash of the secrets is released. After the secrets are release users can verify that preceeding bets were provably fair.

Days

Each bet transaction that comes in is assigned to the secret key of the current day when it is first processed. In most cases this will be as soon as the transaction is broadcast on the bitcoin network. However it could be later if the system has some problems processing or an outage. All times are in GMT.

Hash File

The system has a file of all the hash keys for the next 10 years: hash.keys This file can be verified in several ways. The simplest is to simply download and keep a copy of that file. If ever your copy and the copy we are distributing disagree there is something awry. The other way is to use a package called BitcoinTimestamp. This is something which stores a sha256 sum in the bitcoin network as a transaction. Since this transaction goes into the block chain, it is impossible for anyone to tamper with after the fact.
$ sha256sum hash.keys
9b0d87ac871518cfd8601aa456b58fa74c01194cfeb25e7f3eecf43759d6ccb4  hash.keys
$ java -jar jar/BitcoinTimestamp-1.0.1.jar decode 428bcc630b00fe431623b4e1fb0f726493dc0a2ead86ace9f65cd51bc8092459
url: http://blockexplorer.com/rawtx/428bcc630b00fe431623b4e1fb0f726493dc0a2ead86ace9f65cd51bc8092459
Account: OP_DUP OP_HASH160 00d1cd2e5ec984226c98f85a69852ee9e6c659bd OP_EQUALVERIFY OP_CHECKSIG: 39693
Account: OP_DUP OP_HASH160 11ffd426374b71a2b59463d9130030a1eac84586 OP_EQUALVERIFY OP_CHECKSIG: 34732
Account: OP_DUP OP_HASH160 1f6bd9aeba05706f90797c955aa63ea89b0f7b35 OP_EQUALVERIFY OP_CHECKSIG: 34581
Account: OP_DUP OP_HASH160 20906f06c0e979a1c9e91c1562cd437a0b033c06 OP_EQUALVERIFY OP_CHECKSIG: 6351
Account: OP_DUP OP_HASH160 24deb4c6d8a5069f226af98a9d96d1cda2af0c95 OP_EQUALVERIFY OP_CHECKSIG: 55392
Account: OP_DUP OP_HASH160 271fb5f58b3f33a2793b1106f921082d977715a1 OP_EQUALVERIFY OP_CHECKSIG: 6820
Account: OP_DUP OP_HASH160 372c92a1184f8bd7b43cfd35f4a6300af9575bba OP_EQUALVERIFY OP_CHECKSIG: 22197
Account: OP_DUP OP_HASH160 3b7496c38f98607860aeb8681a0f278c80131001 OP_EQUALVERIFY OP_CHECKSIG: 36775
Account: OP_DUP OP_HASH160 533a0c569ba6e3a17a09c5897740c151fcb08039 OP_EQUALVERIFY OP_CHECKSIG: 19457
Account: OP_DUP OP_HASH160 5b90be81a48a38fca725b8ce2c0b2bb860eb597c OP_EQUALVERIFY OP_CHECKSIG: 6476
Account: OP_DUP OP_HASH160 68f734b27adff98dd6d6fae2d9ab43865e31e997 OP_EQUALVERIFY OP_CHECKSIG: 65202
Account: OP_DUP OP_HASH160 6dc7dbaa82777cc38dd2805c34cb6127676b1e9a OP_EQUALVERIFY OP_CHECKSIG: 24191
Account: OP_DUP OP_HASH160 6f64ed1e6ea10028151b4c957c8d2b693b282e44 OP_EQUALVERIFY OP_CHECKSIG: 16108
Account: OP_DUP OP_HASH160 7912dbde98ac3e8a6923e4443e3c4d1db67609ac OP_EQUALVERIFY OP_CHECKSIG: 62519
Account: OP_DUP OP_HASH160 7ed45bd66f3390e03c0bf30263dd2e53ec9a9f5a OP_EQUALVERIFY OP_CHECKSIG: 22998
Account: OP_DUP OP_HASH160 81740eeee552dafdb5ae1c546a654a9cc337b6a2 OP_EQUALVERIFY OP_CHECKSIG: 52404
Account: OP_DUP OP_HASH160 173a3fea23899592de272434b590869e809c5a71 OP_EQUALVERIFY OP_CHECKSIG: 1011658
Account: OP_DUP OP_HASH160 83fdafd7a1a8f7c06ab46ce2095adf28a4d6797d OP_EQUALVERIFY OP_CHECKSIG: 10255
[9b0d87ac871518cfd8601aa456b58fa74c01194cfeb25e7f3eecf43759d6ccb4]

There the sha256 sum of the file stored in S3 and the sha256 sum stored in transaction 428bcc630b00fe431623b4e1fb0f726493dc0a2ead86ace9f65cd51bc8092459 match. This shows the file has existed since the time of the transaction on 2012-04-18.

In case you just want the hash of the file without validation:

$ sha256sum hash.keys
9b0d87ac871518cfd8601aa456b58fa74c01194cfeb25e7f3eecf43759d6ccb4  hash.keys
$ sha1sum hash.keys
d5f03cad9c3e0e2fac85fd0ba110d41fb31a20e2  hash.keys
$ md5sum hash.keys
15cd77530c41e4d6b1f4802b6bdd1c83  hash.keys

Secrets

So that is all well and good for the hashes but those are just hashes, not the actual secrets used. After a day has been over for at least 24 hours the system will release the secret used. Then you can verify that the hash of the secret matches the published hash in the hash file. This demonstrates that the system used the secret it promised it would use. A list of secrets for previous days can be found here: secret list

Lucky Number

The lucky number used to determine the winner of games is simple. It is simply the first bytes of hmac_sha512(secert,txid:out_idx). That would be the secret string as the key and the transaction ID of your bet transaction as the data.

You can see all of this on the full details page for your transaction.

Close Window

Warning!

Only use wallets that allow you to receive Bitcoin from the same address you sent from. If you're not sure, test by sending a bet for the minimum amount. If you get nothing back, then your wallet is not compatible. Note that some bets may require one confirmation before the win/loss value is sent back.
Close Window

Terms & Conditions

US

NOTICE: Your IP appears to be from the United States or another jurisdiction where SatoshiDice does not offer its service.

You may not access the satoshidice.com website or service from the United States or any other excluded jurisdiction.

Please refer to the Terms & Conditions.

Win massive amount
of bitcoins!

  • STEP 1

    Send BTC to an address below to place a bet (must be between the max and min).

  • STEP 2

    The Ghost of Satoshi will roll the dice and pick a Lucky Number!

  • STEP 3

    You win if Lucky Number is less than the number you chose.

Read this warning first
Bet Counter

SatoshiDICE!

SatoshiDice is the most popular Bitcoin betting game in the universe.

Why Play SatoshiDice?

  • No account needed
  • Payouts are nearly instant
  • Bets are provably trustworthy
  • Play from anywhere

Recent Bets

Contact Support
Bitcoins Won

Please see the Terms & Conditions

Details(?) Processed(?) Bet(?) Bet Tx(?) Pay Tx(?) Address(?) Bet Amount(?) Result(?) Payment Amount(?) Lucky(?)