Venom Docs
  • General
    • Welcome to Venom
    • What's New
    • Ecosystem
    • Create a new Wallet Account
    • Balance Transfers
    • Community
    • Presskit
  • Learn
    • Glossary
    • Architecture
    • Tokens and Assets
    • Messages and Transactions
    • Accounts
  • Build
    • Development Guides
      • Comparing of Ethereum vs Venom architectures
      • Setting Up The Venom Smart Contract Development Environment
      • How to create your own fungible TIP-3 token
        • Fungible tokens in Venom network
        • Quick start developing with TIP-3
        • Venom In Action. Simple Tokensale.
        • Venom In Action. Extend our Tokensale with frontend
        • Venom In Action. Going Global
        • Venom In Action. Ways of code enhancing
      • Developing of simple voting system.
        • Voting system basics
        • Venom In Action. Voting system contracts.
        • Venom In Action. Ways of code enhancing
      • How to create your own non-fungible TIP-4 token
        • Non-Fungible tokens in Venom network
        • Quick start developing with TIP-4
        • Venom In Action. Simple NFT auction
        • Venom In Action. Extend our auction with frontend
    • Integration Guides
      • How to connect Dapp UI to Venom
    • Tools & Resources
  • Maintain
    • Network Maintainers
Powered by GitBook
On this page
  1. Build
  2. Development Guides
  3. Developing of simple voting system.

Voting system basics

PreviousDeveloping of simple voting system.NextVenom In Action. Voting system contracts.

Last updated 2 years ago

Decentralized voting systems is a popular thing on lots of blockchain networks. They are even used to control the DAOs. There is no big deal to develop this system for EVM network. But we should have it in distributed way. Look at scheme:

Let's use similar to TIP-3 mechanic: having a root contract (Vote) and personal Wallets (Ballots). Every participant deploys a ballot for itself, that have a vote function, which will call callback of Vote contract and pass vote result into. But what if we want to allow vote only for concrete users? Just add an activate function in our Ballot contract, that will be called externally and only by our vote creator (external calls may be signed). Move onto developing.

Simple vote system