In my custom blockchain, i want to offer a feature where i will provide some proposals to my users. The users can vote on to the proposal they find considerate. To accept the proposal, there will be a threshold. If the number of votes for a specific proposal crosses the threshold the proposal will be accepted.

Is there any pallet you can suggest me to implement this feature.

1 Answer 1


the feature you are describing can be implemented using the Substrate framework's built-in pallets. The Substrate ecosystem offers a few pallets that can be useful for creating a voting or governance system. Here are some pallets you might consider using or modifying for your specific needs:

Democracy Pallet

The Democracy pallet is a built-in Substrate pallet that allows for on-chain governance through proposals and referenda. Users can propose motions, vote on them, and once a proposal crosses a certain threshold of approval, it can be enacted. The Democracy pallet handles time-locking of tokens, voting periods, and other aspects of democratic governance.

Collective Pallet

The Collective pallet is designed for multi-signature governance, but it could be adapted for your needs. It allows a group of accounts to make decisions through voting. While it's more often used for council governance, you could use it as a basis for a more general voting system.

Treasury Pallet

Though not directly a voting system, the Treasury pallet is often used in combination with the Democracy or Collective pallets to propose spending of communal funds. Proposals can be put up for a vote, and if they pass the threshold, the funds are allocated accordingly.

Custom Pallet

If none of the existing pallets meet your specific requirements, you can also create a custom pallet. Since you're already a blockchain developer working on Substrate, you'll find it quite straightforward to develop a pallet tailored to your needs. You can take inspiration from the existing pallets and add your custom logic.

Steps to Implement:

Choose or Customize Pallet: Decide whether to use an existing pallet like Democracy or Collective, or create a new one.

Add to Runtime: Once you have the pallet, include it in your runtime by modifying your runtime/src/lib.rs or equivalent.

Configuration: Configure the pallet's parameters such as voting period, enactment period, and thresholds.

Testing: Use Substrate's testing framework to ensure that the pallet works as expected.

Front-end: Build the user interface for proposal creation and voting using Polkadot.js or your own custom front-end.

Deployment: Finally, include your new pallet in a runtime upgrade and deploy it.

By carefully selecting and configuring these pallets, you can build a robust voting system tailored to the needs of your custom blockchain.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.