Geyser Deployment - ampleforth/token-geyser-v2 GitHub Wiki

Deploying a new geyser

  1. Transfer ownership of the geyser registry to the deployer key.

  2. Run the following the deploy the geyser. Set the staking token, reward token, the multiplier params (floor, ceil and duration).

yarn hardhat --network mainnet create-geyser \
  --staking-token "0xc5be99A02C6857f9Eac67BbCE58DF5572498F40c" \
  --reward-token "0xD46bA6D942050d489DBd938a2C909A5d5039A161" \
  --floor "33" \
  --ceiling "100" \
  --time "2592000"

yarn hardhat --network mainnet verify-geyser "NEW_GEYSER_PROXY_IMPL_ADDRESS"
  1. Whitelist the universal vault & crucible factories.

  2. Transfer all geyser control to the admin multisig. ie) Geyser, PowerSwitch, ProxyAdmin

Post deployment checklist:

  • Verify the staking and reward tokens (you can do this by calling getGeyserData

  • Verify the universal vault template whitelist

  • Proxy admin: Controls the geyser contract's upgradability

    • Proxy admin should be owned by the authorized owner
    • getProxyAdmin on the proxy admin should point to itself
    • getProxyImplementation(proxy) should point to the proxy implementation
  • Power switch:

    • Power switch should be owned by the authorized owner
    • Power controller should point to the authorized owner
  • Ownership:

    • Geyser should be owned by the authorized owner
    • Geyser registry should be owned by the authorized owner (ownership is transferred back to from the deployer after deployment)