On-Chain Voting is a protocol developed to help with governing the Mina L1 blockchain.
The On-Chain Voting Protocol is designed to provide community members with a transparent and secure method of participating in the decision-making process for the Mina blockchain. The aim for this protocol is to provide stakeholders with the ability to vote on MIPs (Mina Improvement Proposals) with ease.
(Individual MIPs should be created by following the process described on the GitHub repository.)
To cast a vote on a particular MIP, a user must send a transaction to themselves with a specially-constructed memo field. The memo field must adhere to the following convention.
For example:
To vote in favor of 'MIP1', the memo field must be populated with: 'MIP1'
Similarly, if the intent is to vote against 'MIP1', the memo field must
contain: 'no MIP1'.
The transaction amount must be 0, with the user only paying for the transaction fee.
For more details, see:
- The article by Granola
- The FAQ
The .envrc
will instruct direnv
to use Nix to install the prerequisites for development on this repo.
Without Nix, you will need to install, most notably:
- just
- libpq
- rustup
- libiconv
- llvm
- nodejs
- pkg-config
- Docker
- pnpm (and issue
pnpm env use --global 18
)
Configure your .env
file. See the .env.example
.
Optionally issue just install
to install yet more dependencies.
Issue just
to see the possible development actions. Examine
Justfile to see how they work.
For more information about Diesel and database migrations, see the official docs..
Contributions are welcome! This project uses the C4 (Collective Code Construction Contract) process for contributions.
This project is licensed under the Mozilla Public License 2.0. See the LICENSE file for the full license text.