Concept
Overview
The x/mint module is responsible for creating new tokens (DT) on Dchain according to a predefined schedule. Unlike traditional Cosmos SDK mint modules that use inflation rates, Dchain's mint module is designed with:
- Epoch-based minting: Tokens are minted at the end of each epoch (e.g., weekly) rather than per block
- Maximum supply cap: The total supply is capped at a maximum limit (100B DT by default)
- Reduction schedule: Minting reduces over time following a geometric reduction factor
- Distribution control: Minted tokens are distributed between staking rewards and community pool
Key Features
Epoch-Based Minting
The mint module integrates with the epochs module to mint tokens at regular intervals. By default, Dchain uses weekly epochs, making the minting schedule predictable and aligned with longer time periods rather than individual blocks.
Max Supply Enforcement
To ensure a fixed maximum supply, the mint module:
- Tracks total supply against the configured maximum supply
- Stops minting when the maximum supply is reached
- Adjusts the final mint to not exceed the cap
This design ensures Dchain has a predictable and limited token supply similar to Bitcoin's capped supply model.
Geometric Reduction Schedule
Minting follows a reduction schedule where:
- Initial epoch provisions are defined in genesis
- Every reduction period (e.g., 52 weeks = 1 year), the provisions are multiplied by a reduction factor (e.g., 0.8)
- This creates a decreasing supply schedule: Year 1: 100%, Year 2: 80%, Year 3: 64%, etc.
- The reduction continues until the maximum supply is reached
Configurable Distribution
Minted tokens are distributed according to configured proportions:
- Staking rewards: Incentivize validators and delegators who secure the network
- Community pool: Fund community initiatives and development
The distribution proportions must sum to 1.0 and can be adjusted via governance.
Minting Schedule Example
With default parameters:
- Genesis epoch provisions: ~76.92M DT per week
- Reduction period: 52 weeks (1 year)
- Reduction factor: 0.8 (20% reduction per year)
- Max supply: 100B DT
Year 1: ~76.92M DT/week × 52 weeks = ~4B DT Year 2: ~61.54M DT/week × 52 weeks = ~3.2B DT Year 3: ~49.23M DT/week × 52 weeks = ~2.56B DT ...until maximum supply is reached
Integration with Epochs Module
The mint module hooks into the epochs module lifecycle:
BeforeEpochStart
: No action takenAfterEpochEnd
: Mints tokens for the completed epoch if conditions are met
This design decouples minting from block production, providing flexibility and predictability.