/budget

Budget is a Cosmos SDK module that implements budget functionality.

Primary LanguageGoApache License 2.0Apache-2.0

codecov PkgGoDev

Budget Module

A budget module is a Cosmos SDK module that implements budget functionality. It is an independent module from other SDK modules and core functionality is to enable anyone to create a budget plan through governance param change proposal. Once it is agreed within the community, voted, and passed, it uses the budget source address to distribute amount of coins by the rate defined in the plan to the collection address. Collecting all budgets and distribution take place every epoch blocks that can be modified by a governance proposal.

A primary use case is for Gravity DEX farming plan. The budget module can be used to create a budget plan that defines Cosmos Hub's FeeCollector module account where transaction gas fees and part of ATOM inflation are collected as budget source address and uses a custom module account (created by budget creator) as collection address. Read spec docs to get to know more about the module.

Budget module v1 is in active development

  • see the master branch for the latest
  • see releases for the latest release

Dependencies

If you haven't already, install Golang by following the official docs. Make sure that your GOPATH and GOBIN environment variables are properly set up.

Requirement Notes
Go version Go1.16 or higher
Cosmos SDK v0.44.2 or higher

Installation

# Use git to clone budget module source code and install `budgetd`
git clone https://github.com/tendermint/budget.git
cd budget
make install

Getting Started

To get started to the project, visit the TECHNICAL-SETUP.md docs.

Documentation

The farming module documentation is available in docs folder and technical specification is available in specs folder.

These are some of the documents that help you to quickly get you on board with the budget module.

Contributing

We welcome contributions from everyone. The master branch contains the development version of the code. You can branch of from master and create a pull request, or maintain your own fork and submit a cross-repository pull request. If you're not sure where to start check out CONTRIBUTING.md for our guidelines & policies for how we develop budget module. Thank you to all those who have contributed to budget module!