Rune
  • Languages
  • 概览
    • 文档摘要
    • 发行例子
    • 媒体工具
    • 风险警告
    • Rune Alpha 时期
    • 符文条款
    • guides
      • 比特币地址格式
      • 创建符文
      • Rune Alpha - Signet
      • Rune Alpha - Testnet
      • 浏览
      • 转账
    • marketplace
      • 上架符文
      • 取消上架 符文
      • ❓什么是 PSBTs 技术?
    • Ordinals-厨师
      • 🔢荷兰拍卖
      • 🏗️Bitcoin 建设者
      • Cook 质押
      • 分配
      • 💯💯积分活动
  • 🏂Overview
    • Table of contents
    • 🚧Issuance example
    • 🎨Media kit
    • 🤺Risk Warning
    • 🏹Rune Alpha Period
    • 🧗‍♀️Terms of service
    • 🛣️Roadmap
    • Guides
      • 🌀Bitcoin Address Formats
      • 🤹Create Rune
      • 👨‍🔬Rune Alpha - Signet
      • ⚗️Rune Alpha - Testnet
      • 🔎Scan
      • 🤼Transfer
    • Marketplace
      • 🏊‍♂️Listing Rune
      • ⛹️‍♂️Unlist Rune
      • ❓What is PSBTs ?
    • Ordinals-chef
      • 〽️Dutch Auction
      • 👩‍🍳Cook Staking
      • #️RuneAlpha Point
      • 📢Distribution
Powered by GitBook
On this page
  • Rules
  • Selection Process
  1. Overview
  2. Ordinals-chef

Cook Staking

Rules

The rules of the game are straightforward: every 5,000 $COOK STAKING will equal one entry ticket for the prize draw.

The ticket numbers will be displayed on RuneAlpha before the appearance of the Root block.

Snapshot Period:

  • Start Block: 837669

  • End Block: 838669

Selection Process

The selection process for determining winners is carefully designed to ensure fairness and randomness, leveraging blockchain technology. Here is a step-by-step guide to our selection algorithm:

Pre-Event Announcement

  • The Root Block to determine the winner(s) will be announced before the event.

Initial Winner Selection

  • Extract the last 9 characters of the hash from the Root Block

  • Convert these 9 characters into a decimal number, denoted as s.

  • Calculate the index of the first winning ticket as index_1 = s mod n, where n is the initial total number of tickets.

  • Remove the winning ticket from the list, decreasing the total ticket count by 1.

Subsequent Winner Selections

For each subsequent winner i (starting from the second winner):

  1. Use the ticket_id of the previous winner's address.

  2. Declare ticket_id is s_i.

  3. Calculate the index of the winning ticket as index_i = s_i mod (n - (i-1)), where n - (i-1) reflects the updated total number of tickets after removing winners.

  4. Remove the winning ticket from the list, continuing to adjust the total ticket count for each selection.

Repeat the Process

  • Continue the process, using the ticket_id of the most recent winner's address to select the next winner.

  • Repeat until all desired tickets are picked or no tickets remain.

EXAMPLE:

  • Total valid tickets: 888 Select first winner:

  • Extract the last 9 characters of the hash code: 2634b70dd

  • Convert 634b70dd to a decimal number: 10255823069

  • Perform the operation: 10255823069 mod 888 = 269

  • Therefore, address with index 269 is the first selected => ticket_id: 7146

  • Next index selected will be 7146 mod 888 = 42 => ticket_id : 79040

  • ......

ticket_id 79040 will serve as the basis (or 'seed') for determining the next winner This procedure will be repeated, using each new winner's wallet address as the seed for the subsequent selection, until a total of 333 winners have been chosen.

Last updated 1 year ago

Let's say the Root Block will be 838769 Its blockhash will be:

🏂
👩‍🍳
https://mempool.space/block/000000000000000000001b95867e0182e85e74313cf5b6b1080fe762634b70dd