28 dayscycles, referred to as epochs. A new epoch automatically begins when the current epoch ends.
8 daysafter the end of Epoch 0.
28 days. dYdX governance can vote to modify epoch lengths, within the specified bounds. The minimum and maximum epoch lengths are
92 days, respectively.
14 days. dYdX governance can vote to modify the blackout window, within the specified bounds. The minimum and maximum blackout windows are
46 days, respectively.
7 days(Waiting Period) after the end of the epoch to claim their tokens. Once tokens have been claimed, they can be transferred or delegated to dYdX governance.
MerkleDistributorV1smart contract to reflect rewards earned in the last epoch. An update is performed by setting the proposed Merkle root to the latest value returned by the oracle contract. The proposed Merkle root can be made active after a Waiting Period of
7 dayshas elapsed. During the waiting period, dYdX governance has the opportunity to freeze the Merkle root, in case the proposed root is incorrect or malicious. If the Merkle root is not frozen, the new Merkle root is activated and users can claim their rewards from the past epoch.
MerkleDistributorV1.proposeRoot()to set the proposed Merkle root to the new oracle value.
MerkleDistributorV1.pauseRootUpdates()to prevent the proposed Merkle root from taking effect.
MerkleDistributorV1.updateRoot()causing the proposed Merkle root to become active.