Skip to content

Instantly share code, notes, and snippets.

@chanhosuh
Last active May 29, 2022 14:45
Show Gist options
  • Save chanhosuh/0f78e644e2f72ad205838546557fbb0f to your computer and use it in GitHub Desktop.
Save chanhosuh/0f78e644e2f72ad205838546557fbb0f to your computer and use it in GitHub Desktop.
Curve emissions end
YEAR = 86400 * 365
INITIAL_RATE = 274_815_283 * 10 ** 18 // YEAR
RATE_DENOMINATOR = int(1e18)
RATE_REDUCTION_COEFFICIENT = 1189207115002721024 # 2 ** (1/4) * 1e18
rate = INITIAL_RATE
for i in range(1, 500):
rate = rate * RATE_DENOMINATOR // RATE_REDUCTION_COEFFICIENT
print(i, rate)
if rate == 0:
break
@chanhosuh
Copy link
Author

Values and calculation are copied from the actual CRV contract:
https://etherscan.deth.net/address/0xd533a949740bb3306d119cc777fa900ba034cd52

In particular we apply integer division as in the vyper code and reduce the rate by ~16% each year.

Output:
1 7327853447857530670
2 6161965695807970181
3 5181574864521283150
...
243 2
244 1
245 0

Thus we see CRV emissions will end in 245 years from the start.

@chanhosuh
Copy link
Author

Spreadsheet (by someone else) that shows running emissions total per year:
https://docs.google.com/spreadsheets/d/1TfipC0nB60sYuU3SonroEs049RnzLElRa5jS8ZN5dqc/edit?usp=sharing

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment