Skip to content

Staking & discounts ​

GenesisStaking is one stake pool for the whole network. It accepts HYPE, and GENESIS after launch.

What stake does ​

PurposeHYPE stakeGENESIS stake
Keeper eligibilityCounts toward the HYPE minimumCounts toward the (lower) GENESIS minimum
VRF operator eligibilityCounts toward the HYPE minimumCounts toward the (lower) GENESIS minimum
Fee discountsNoYes

Stake is slashable while it's active and while it's unbonding.

Discount tiers ​

Staked GENESISDiscount
75,00010%
500,00025%
1,700,00040%

These are the defaults. The owner can change thresholds and discounts at any time, up to a maximum of 90% off:

bash
TIER_STAKES=75000,500000,1700000 TIER_DISCOUNTS_BPS=1000,2500,4000 npm run pricing:elysium

The same script changes how much cheaper GENESIS is than HYPE (GENESIS_PAYMENT_DISCOUNT_BPS, default 1000 = 10%). The discount applies to:

  • VRF and Fair Selection fees, in either token
  • The keeper premium on upkeeps you administer

Discounts are based on stake, not wallet balance, so they can't be borrowed with a flash loan.

Staking ​

ts
await client.stake(genesisToken, parseEther("1000"));   // approves first if needed
await client.staking.requestUnbond(genesisToken, parseEther("1000"));
// after the unbonding period (7 days by default on Elysium):
await client.staking.withdraw(genesisToken);
solidity
staking.stake{value: 1 ether}(address(0), 1 ether);  // HYPE
staking.stake(genesisToken, 1000e18);                // GENESIS, approve first

Unbonding stake stops counting immediately.

Sharing your tier ​

A staker can sponsor up to 10 other accounts, typically bots or contracts they run, so those accounts get the same tier:

solidity
feeManager.sponsor(myBot);
feeManager.unsponsor(myBot);

Slashing ​

The staking owner, or an approved slasher contract, can slash slash(account, token, amount, recipient). Active stake is taken first, then unbonding stake.

GENESIS · verifiable infrastructure for Elysium