Decide and set testnet tokenomics parameters: mintCap, dinPerEth, and DinEmission values
Maintainers usually reply within 1 day
@abrahamnash is already working on this.
Since Sep 25, 2026.
Assessment
This issue has not been assessed yet.
Description
Context
Raised as a blocker in discussion #150. These are decision items — the contract code is ready or nearly ready, but the actual values have not been agreed on. Without them, the faucet is uncapped, emission is undeployable, and external validators cannot onboard.
Parameters needed
Faucet cap — DinCoordinator.setMintCap()
The mechanism exists. The current devnet value is mintCap = 0 (uncapped by design). For testnet, a cap is needed to give slashing meaningful economic weight — a slashed validator should not be able to instantly re-stake at zero cost by minting more DIN.
Decision needed: what total DIN supply ceiling should the testnet faucet enforce? This should be set relative to the expected validator count and a realistic staking amount per validator.
Exchange rate — DinToken.setDinPerEth()
Currently 1,000,000 DIN/ETH — a devnet round number with no principled basis. For testnet this should be set so that a validator depositing a reasonable testnet ETH amount gets enough DIN to stake above MIN_STAKE without also being trivial to re-stake after a slash.
Decision needed: what should dinPerEth be on testnet, and who has authority to change it post-deploy? (Currently bare owner() — §9 item 13 in MECHANISM_DESIGN.)
DinEmission constructor parameters — PR #148
The DinEmission contract (PR #148, CI green) is ready to deploy but takes constructor arguments with no agreed values:
| Parameter | What it controls |
|---|---|
initialEmissionPerGI |
DIN minted per GI at epoch 0 — sets baseline validator earnings from protocol subsidy |
decayBps |
Fraction of current emission retained each epoch (e.g. 9000 = 10% decay per epoch) |
epochLength |
Number of GIs per epoch |
maxEpochs |
Total epochs before subsidy ends |
Decision needed: all four values. PR #147 (reward-split simulation) provides the income-stability framework to calibrate initialEmissionPerGI against.
Partial-slash fractions — PR #146
PR #146 proposes s1SlashFractionBps = s2SlashFractionBps = 3000 (30%) as the default for S1 (missed audit vote) and S2 (missed aggregation submission). These are DAO-settable post-deploy, but the default is what every slash runs at until governance changes it.
Decision needed: confirm 30% or revise before PR #146 is merged.
Why this blocks testnet
- Without
mintCapset, unlimited DIN can be minted — slashing has no teeth - Without agreed
DinEmissionparameters, PR #148 cannot be finalised and deployed, and validators earn nothing from protocol subsidy - Without
dinPerEthset intentionally, the staking economics are arbitrary
Related
- Discussion #150 (tokenomics section)
- PR #146 (slash fractions)
- PR #147 (reward simulation)
- PR #148 (DinEmission contract)
- MECHANISM_DESIGN §9 items 2, 13
- Dominant language
- Python
- Stars
- 4
- Forks
- 7
- Avg merge
- 3d 5h
- Merged PRs (30d)
- 34
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from InfiniteZeroFoundation/DevNet
-
ROADMAP.md: refresh "What is still open for P3" (several items were fixed in October)Possibly taken @umermjd11 claimed this 3 days ago. Opendocumentation good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
InfiniteZeroFoundation/DevNet#285 · 1 comment · 1 assignee ·
Maintainers usually reply within 1 day
-
Update the 25 translated organisation READMEs to match the English versionPossibly taken @mrCabez claimed this 1 day ago. Opengood first issue help wanted
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
InfiniteZeroFoundation/DevNet#277 · 2 comments · 1 assignee ·
Maintainers usually reply within 1 day
-
Update the client-service guide to explain training and uploading separatelyPossibly taken @Santiagocetran claimed this 1 day ago. Open
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
InfiniteZeroFoundation/DevNet#266 · 1 assignee ·
Maintainers usually reply within 1 day
-
Few questions related to GI2 aggregatorPossibly taken @Abidoyesimze claimed this today. Open
InfiniteZeroFoundation/DevNet#307 · 1 reaction · 4 assignees ·
Maintainers usually reply within 1 day
-
bug python
Difficulty 4/5 3-5 days Newbie friendliness 52/100
InfiniteZeroFoundation/DevNet#306 ·
Maintainers usually reply within 1 day
All issues in InfiniteZeroFoundation/DevNet
Similar issues
-
getchaintips leaves out the active tip once a header is staged on it, where Core always lists itOpen
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
btclib-org/btclib-node#2158 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
dbt-msft/dbt-sqlserver#897 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
Gathin23/cleanyourtv#2770 · 2 comments ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
vllm-project/vllm#64845 ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
dekobon/big-code-analysis#1729 ·
Maintainers usually reply within 1 day