Skip to main content
Weekly emissions controller for RAM. The current implementation in Minter.sol is the contract-enforced source of truth for supply caps, multiplier updates, and weekly emissions minting.

Core Functions

kickoff

One-time operator-only initialization. Sets the token and governance addresses, seeds the initial emissions configuration, and mints the INITIAL_SUPPLY to the operator.

initEpoch0

Starts epoch accounting by setting firstPeriod, activePeriod, and minting the configured week-0 emissions to the operator.

updatePeriod

Permissionless weekly rollover function. When a new period has started, it:
  1. Computes the next weekly emissions amount
  2. Mints that amount to the Minter contract
  3. Approves the Voter
  4. Calls Voter.notifyRewardAmount()

updatePeriodAndRebase

Convenience entrypoint that advances the period and then calls rebase() on xRAM.

updateEmissionsMultiplier

Governance-only update for the emissions multiplier. The contract enforces a maximum deviation of 25% per update.

calculateWeeklyEmissions

Returns the next emission amount after applying the multiplier and the supply cap.

Key Concepts

  • INITIAL_SUPPLY is 350,000,000e18.
  • MAX_SUPPLY is 1,000,000,000e18.
  • BASIS is 10_000, and MAX_DEVIATION is 2_500, meaning multiplier changes are capped at 25% per update.
  • updatePeriod() returns the active weekly period, not the minted token amount.
  • The Minter is the contract that mints weekly emissions and hands them to Voter; gauges receive those emissions only after the subsequent voter distribution flow.