The Treasury module provides a "pot" of funds that can be managed by stakeholders in the system and a structure for making spending proposals from this pot.
The Treasury Module itself provides the pot to store funds, and a means for stakeholders to propose, approve, and deny expendatures. The chain will need to provide a method (e.g. inflation, fees) for collecting funds.
By way of example, the Council could vote to fund the Treasury with a portion of the block reward and use the funds to pay developers.
- Proposal: A suggestion to allocate funds from the pot to a beneficiary.
- Beneficiary: An account who will receive the funds from a proposal iff the proposal is approved.
- Deposit: Funds that a proposer must lock when making a proposal. The deposit will be returned or slashed if the proposal is approved or rejected respectively.
- Pot: Unspent funds accumulated by the treasury module.
The treasury module provides an implementation for the following trait:
OnDilution- When new funds are minted to reward the deployment of other existing funds, a corresponding amount of tokens are minted into the treasury so that the tokens being rewarded do not represent a higher portion of total supply. For example, in the default substrate node, when validators are rewarded new tokens for staking, they do not hold a higher portion of total tokens. Rather, tokens are added to the treasury to keep the portion of tokens staked constant.
propose_spend- Make a spending proposal and stake the required deposit.
set_pot- Set the spendable balance of funds.
configure- Configure the module's proposal requirements.
reject_proposal- Reject a proposal, slashing the deposit.
approve_proposal- Accept the proposal, returning the deposit.
The Treasury module depends on the
A spending proposal.
Events for this module.