Organize community giveaways with the R7 Provably Fair Giveaway Manager. Add participant usernames or ticket numbers, remove duplicate entries, choose a target Bitcoin block, and select the number of winners.

The tool uses the selected block’s hash to calculate winners through a reproducible process. Review the mathematical steps and share results through a permalink or formatted forum BBCode.

For a transparent draw, publish the final participant list in its exact order, winner count, and future target block before that block is mined. This lets participants independently reproduce the result using the same inputs.
Bitcoin Provably Fair Protocol

Provably Fair Giveaway Manager

Run verifiable, tamper-proof community raffles for Bitcointalk campaigns, bounties, and contests seeded deterministically by Bitcoin blockhashes.

1

1 Competitor Per Line

Paste your participant usernames or ticket numbers, one per line.

2

Lock Target Block

Pick a future Bitcoin block height so neither host nor entrants can predict the seed.

3

Provably Fair Draw

Winners are derived mathematically using hex-to-decimal slicing and modulo operations.

4

Export to Forum

Generate 1-click formatted BBCode ready for your Bitcointalk campaign thread.

Tip: Announce a future block on your thread to lock the draw beforehand.

How the Provably Fair Draw Works

Why Bitcoin blockhashes provide true cryptographic fairness without trusted third parties.

1. Hexadecimal to Decimal Conversion

A Bitcoin block hash is a 64-character hexadecimal string. To perform arithmetic, the algorithm extracts the trailing 6 hex characters and converts them into a base-10 integer between 0 and 16,777,215.

let decimal = parseInt(blockhash.slice(-6), 16);

2. Selecting the Winner (Modulo Arithmetic)

The decimal integer is divided by the total count of participants. The remainder (the modulo % operator) yields the zero-based index of the winner.

let index = decimal % participants.length; let winner = participants[index];

3. Drawing Multiple Winners Without Replacement

For multiple winner draws, the selected participant is removed from the array to prevent duplicate wins. The tool shifts the 6-character slicing window one step to the left to extract fresh entropy.

let n_decimal = parseInt(blockhash.slice(-(6 + step), -step), 16); let n_index = n_decimal % remainingPool.length;

Frequently Asked Questions

Common questions regarding provably fair drawings on crypto forums.

Can the campaign manager manipulate the outcome?

No. By locking the list of participants and naming a future block number in public before that block is mined, neither the manager nor the entrants can manipulate the hash generated by the global Bitcoin mining network.

Can miners bias their own block hash to win?

Miners cannot easily bias specific trailing characters of a blockhash without burning hundreds of thousands of dollars in wasted hash power, making it economically irrational for giveaway outcomes.

What happens if I test an unmined block?

The tool queries live blockchain APIs. If the block height is still in the future, it informs you that the block has not been mined yet. Once mined, rerun the draw to view the winner instantly.

How do I share the draw on Bitcointalk?

Once you calculate results, click "Copy Forum BBCode". You can paste that directly into your thread to display a formatted breakdown with links to the block explorer.

View my forum portfolio ↗