Skip to content

Conversation

@zenopie
Copy link

@zenopie zenopie commented Nov 26, 2025

Description:

Summary

Replaces percentage-based inflation with fixed 4 SCRT per block emissions for sustainable, predictable
tokenomics.

Problem

Current percentage-based inflation causes emissions to grow indefinitely with supply:

  • Year 1: 337M supply × 9% = 30M SCRT minted
  • Year 10: 550M supply × 9% = 50M SCRT minted ❌
  • Emissions accelerate forever, diluting token value

Solution

Fixed block rewards: 4 SCRT per block = constant 21M SCRT/year

Impact

Metric Today Year 5 Year 10
Annual Emission 21M SCRT 21M SCRT 21M SCRT
Inflation Rate 6.2% 4.8% 3.9%
Staking APR ~14.7% ~11% ~9%

Changes

  • ✅ Custom x/mint module with fixed block rewards
  • ✅ Fixed reward: 4 SCRT (4,000,000 uscrt) per block
  • ✅ Upgrade handler v1.24 for seamless migration
  • ✅ ~30% immediate reduction in inflation

Benefits

  • ✅ Predictable emissions - never grows
  • ✅ Sustainable long-term tokenomics
  • ✅ Still competitive staking rewards
  • ✅ Inflation naturally decreases as supply grows

TODO Before Merge

  • Add unit tests for mint keeper
  • Add unit tests for BeginBlocker
  • Implement gRPC query endpoints
  • Add CLI query commands
  • Test upgrade on testnet
  • Integration tests
  • Documentation updates

Testing Checklist

  • Local build passes
  • Unit tests pass
  • Testnet deployment successful
  • Upgrade simulation validated
  • Community governance review

Note: This is a DRAFT PR. Core logic is implemented but needs tests, query endpoints, and testnet
validation before merge.

@zenopie
Copy link
Author

zenopie commented Nov 26, 2025

or you could do fixed per second so you don't incentivize block acceleration

zenopie and others added 2 commits December 7, 2025 14:13
Replace percentage-based inflation with fixed 4 SCRT per block emissions.
This ensures predictable, sustainable token issuance that doesn't grow
indefinitely with supply.

Changes:
- Add custom x/mint module with fixed block rewards
- Set fixed reward to 4 SCRT (4,000,000 uscrt) per block
- Create v1.24 upgrade handler for migration
- Update app to use custom mint module instead of Cosmos SDK mint

Impact:
- Immediate ~30% reduction in inflation (from ~9% to ~6.2%)
- Annual emissions constant at ~21M SCRT regardless of supply
- Inflation naturally decreases over time as supply grows
- Year 5: ~4.8% inflation, ~11% APR
- Year 10: ~3.9% inflation, ~9% APR

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Use store service directly instead of mixing with sdk.Context.KVStore().
This follows the Cosmos SDK v0.50 pattern for store access.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@zenopie zenopie force-pushed the feat/fixed-block-rewards branch from e553659 to 56fd2f1 Compare December 7, 2025 22:13
@OGNodeFather
Copy link

@zenopie I think you actually hard coded blocktime assumptions, but best practice differs. What you'd likely want to do is replace the hard coded calculation of blocks per year to BlocksPerYear. This is a target, not protocol enforcable due to real world network conditions and the ability of node runners to change node config timings. It has drifted in the past, and when it does, maintenance via gov is done by doing a param change proposal to match.

Instead of hardcoding BlocksPerYear from block time assumptions, read
the existing governance-managed value from chain state. This allows
governance to adjust BlocksPerYear via param change proposals when
block times drift, without requiring code changes.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants