The rules
Testnet rewards are paid in Mainnet ZMR from the founder fund, capped at 1,000 ZMR, and every winner is listed publicly.
- Best videos: 200 / 100 / 50 ZMR.
- Best posts or threads: 60 / 30 / 15 ZMR.
- Genesis Miner draw: 20 random miners get 10 ZMR each.
- Bug bounty: up to 100 ZMR per bug. Security issues go to .
- Tag entries #ZecneroContest and say it’s a contest entry.
- Nothing is paid for retweets, follows or invites.
- Entries close when the Mainnet date is announced.
The 1,000 ZMR cap
| Reward | Amounts | Most paid |
|---|---|---|
| Best videos | 200 / 100 / 50 ZMR | 350 ZMR |
| Best posts or threads | 60 / 30 / 15 ZMR | 105 ZMR |
| Genesis Miner draw | 20 × 10 ZMR | 200 ZMR |
| Bug bounty | up to 100 ZMR per bug | 345 ZMR |
| Total | 1,000 ZMR |
The fixed prizes come to 655 ZMR: 350 + 105 + 200. That leaves 345 ZMR for bug bounties, which is where the cap binds. Bounties are paid in the order the bugs were reported, each up to 100 ZMR. When a bounty would take the total past 345 ZMR, it is paid only what is left, and bugs after that are credited on this page without a payment.
A prize that is not awarded, such as a draw with fewer than 20 Genesis Miners, is not moved to another category. The total paid never goes over 1,000 ZMR.
How to enter
- Videos, posts and threads: publish it, tag it #ZecneroContest, and say it’s a contest entry. Then post the link in #contest-entries on the Zecnero Discord.
- Bugs: one message per bug in #bugs on Discord, with the version, the steps to reproduce it and the logs. The first report of a bug counts.
- Security issues: never in public. Email , encrypted with the key on the contact page if you can.
- Genesis Miner draw: be on the Genesis Miners wall when entries close. There is nothing else to enter.
Nothing is paid for retweets, follows or invites. Entries close when the Mainnet date is announced.
Winners and payment
The team picks the best videos and the best posts or threads, and sets each bug bounty by how serious the bug is, up to 100 ZMR. The Genesis Miner draw is random, as described below.
Every winner is listed on this page with what they won. Prizes are paid in Mainnet ZMR after Mainnet launches. Winners open a ticket in the Discord and give a Mainnet address there. Staff never DM first and never ask for a seed phrase or a key.
The Genesis Miner draw
20 Genesis Miners get 10 ZMR each. Nobody picks them, and nobody, including the team, can know or change the result before it is drawn.
Who is in it
- Every Genesis Miner on the wall when entries close. One entry per verified Genesis Miner: one Discord member, one address.
- The minimum work is what verifying already needs: a block mined to your address, or accepted pool shares from the worker named with your code.
- Before the list is frozen, admins remove duplicates, such as one person with several Discord accounts or addresses, and entries for an address the member did not mine to. Every removal is listed with the winners.
- If there are 20 Genesis Miners or fewer, every one of them wins.
Freezing the list, and the seed
- When the Mainnet date is announced, entries close. At that moment the list at pool.zecnero.org/genesis.json is saved, and the announcement gives the saved file’s SHA-256. The file itself is published here.
- The same announcement names a Bitcoin block height: the height of the Bitcoin tip when the announcement is posted, plus 12, about two hours later. Nobody knows that block’s hash when the list is frozen.
- Once that block has 6 confirmations, its hash, as block explorers show it, is the input to the draw.
The algorithm
- Eligible list: the
minersentries of the frozen file, sorted byheight(lowest first), then byaddress(the short address, compared by Unicode code point). Entries that tie on both keep their order in the file. - Seed: SHA-256 of the 32 bytes of the block hash (the 64 hex digits, decoded in the order explorers show them) followed by the 20 ASCII bytes
zecnero-genesis-draw. - Random numbers: number i (0, 1, 2, …) is the first 8 bytes, read as a big-endian unsigned integer, of SHA-256(seed ‖ i), with i written as 8 bytes, big-endian.
- A number below n: take the next random number r. If r ≥ 264 − (264 mod n), discard it and take the next one. Otherwise the result is r mod n.
- Shuffle: Fisher–Yates from the end. For i from N − 1 down to 1, pick j, a number below i + 1, and swap entries i and j.
- Winners: the first 20 entries of the shuffled list, in that order.
Check the draw yourself
genesis-draw.py runs the algorithm above. It needs Python 3.8 or later and nothing else. With the frozen file and the block hash:
python3 genesis-draw.py genesis.json <bitcoin block hash>
It prints the file’s SHA-256, which must match the announcement, the seed, and the 20 winners in order.
To check the script, or your own version of it, download genesis-draw-vector.json into the same folder and run python3 genesis-draw.py --test. The vector is a made-up list of 27 entries and a made-up block hash, not a real Bitcoin block:
| Block hash | 00000000000000000001b817472a23e536355a411b927844d793530b22d03555 |
| Seed | 08501c27e3b586b64d307d2925ae5fd1a0d4a7b00e2420b13d849165c6179e75 |
| Numbers 0 to 2 | 6770d18e6f6fab5f 07b9f24bd2a9c9b6 613a4008d24ed8cf |
| First 3 winners | nmpTME…jYb2, nmDWQT…Ptnj, nmPN3p…QHmF |
Winners
None yet. Entries are open until the Mainnet date is announced. Every winner, the amount they won, and every removal from the draw will be listed here.
Next: see the Genesis Miners, or start mining.