Skip to content

Genesis Mint (Beacon NFTs) ​

1,111 Genesis Beacons. Each one is drawn, fully on-chain, from the hash of one of Elysium's first 1,111 blocks (0 to 1,110). Holders earn a share of GENESIS protocol fees and pay less for services.

The art ​

A block hash is 256 bits, which is exactly a 16×16 grid.

ElementRule
Lit cellsCell i (row by row) is lit when bit i of the hash is 1
BrightnessEach lit cell's opacity comes from its 4-bit nibble: 35% + (nibble + 1) × 65% / 16
PaletteFrom the hash's first byte: Ember (50%), Amber (25%), Ice (15%), Violet (8%), Mono (2%)
GenesisBlock 0 is the only gold Genesis 1/1

The traits on Elysium's real first 1,111 blocks:

PaletteBeacons
Ember661
Amber217
Ice126
Violet88
Mono18
Genesis1

Density goes by lit-cell count. Balanced covers 1,052 Beacons, while Dense (33) and Sparse (26) are rare.

tokenURI returns base64 JSON with an on-chain SVG. The SDK's beaconSvg(block, hash) produces the identical string, so off-chain previews match the minted art exactly.

Fairness ​

  1. Snapshot and lock. The 1,111 hashes are uploaded, then locked permanently. The public hashesDigest = keccak256(all hashes) lets anyone check the art pool against Elysium before minting. The snapshot lives in data/elysium-first-1111-blockhashes.json, and npm run fetch-hashes -w contracts regenerates it from the chain.
  2. Mint sealed. Beacons #1–#1,111 are minted in HYPE and start sealed.
  3. Reveal with GENESIS VRF. One verifiable draw sets an offset, and Beacon #id then shows block (id − 1 + offset) mod 1111. Nobody, including the team, can pick which Beacon gets the Genesis block. The draw is paid from the project's prepaid credits.

Holder rewards ​

Share of protocol fees ​

A configurable share goes to holders, 10% by default:

  • every VRF fee, including subscription charges
  • the automation keeper premium (gas reimbursement stays whole)

The holders' share accrues in each contract until someone calls flushHolderRewards(token). The operator node does this every few minutes, and anyone can call it. It's then split equally across all Beacons minted so far.

  • Rewards accrue per Beacon, so unclaimed rewards move with the NFT when it's sold.
  • A Beacon only earns from distributions after its mint.
  • Claim with GenesisBeaconRewards.claim(token, tokenIds), in HYPE or, after launch, GENESIS.

Fee discounts ​

Holding Beacons counts as a discount tier, alongside staking GENESIS. You get whichever is better.

Beacons heldDiscount
110%
525%
1040%

Contracts ​

ContractKey functions
GenesisBeaconsmint(quantity) (payable, HYPE), tokenURI, blockOf(id), getHashes(start, count), hashesDigest
GenesisBeaconRewardsclaimable(token, id), claimableMany, claim(token, ids), distribute(token, amount)

Royalties are 5% under ERC-2981, and the owner can change them.

Operating the mint ​

bash
BEACONS_ACTION=seed   npm run beacons:elysium     # upload + LOCK the 1,111 hashes (permanent)
BEACONS_ACTION=open   BEACON_MINT_PRICE=<HYPE> BEACON_MAX_PER_WALLET=10 npm run beacons:elysium
BEACONS_ACTION=reveal npm run beacons:elysium     # after the mint: the VRF draw that assigns art
BEACONS_ACTION=status npm run beacons:elysium

Change the holder share or Beacon tiers later:

bash
HOLDER_SHARE_BPS=1000 BEACON_TIER_COUNTS=1,5,10 BEACON_TIER_DISCOUNTS_BPS=1000,2500,4000 npm run pricing:elysium

Rehearse the whole flow locally with npm run mint-demo -w node.

GENESIS · verifiable infrastructure for Elysium