> For the complete documentation index, see [llms.txt](https://venom-docs.gitbook.io/knowledge-base/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://venom-docs.gitbook.io/knowledge-base/build/development-guides/developing-of-simple-voting-system./voting-system-basics.md).

# Voting system basics

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:

<figure><img src="/files/DZkBIz0RufjZdn8LpyGt" alt=""><figcaption><p>Simple vote system</p></figcaption></figure>

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.
