# Voting with Tokens

Counterparty supports voting through actions taken with user-created tokens, as well as broadcasting information onto the Bitcoin blockchain. <mark style="color:yellow;">This means that you can post the terms and options of your vote as a broadcast, and let users vote on its outcome with full transparency by using tokens.</mark>

This Dividends distribution process was described in the [Paying Dividents to Token Holders](https://davestaxcp.gitbook.io/freewallet.io-user-manual/freewallet-functions/paying-dividends-to-token-holders) section.

This function has been used successfully in the past, but is less commonly used due to the Bitcoin fees that occur when inviting token holders to vote.

<mark style="color:green;">Let explain his process with an example,</mark> using a made up token called "EXAMPLE"

* You create a token named ‘<mark style="color:green;">EXAMPLE</mark>’
* You distribute the <mark style="color:green;">EXAMPLE</mark> token to various users (the more tokens they have the more votes they will receive)
* You can create another token named <mark style="color:red;">EXAMPLEVOTE</mark> and [pay a distribution](https://davestaxcp.gitbook.io/freewallet.io-user-manual/freewallet-functions/paying-dividends-to-token-holders) of exactly 1 EXAMPLEVOTE to all holders of EXAMPLE in one single action.
* Now all holders of the <mark style="color:green;">EXAMPLE</mark> token now have 1 vote per EXAMPLE token they hold which is represented by the <mark style="color:red;">EXAMPLEVOTE</mark> token.
* From the same address you minted the <mark style="color:green;">EXAMPLE</mark> token you publish a [Counterparty Broadcast](https://davestaxcp.gitbook.io/freewallet.io-user-manual/freewallet-functions/broadcast-information-on-the-bitcoin-blockchain) that explains the terms and options of voting with <mark style="color:red;">EXAMPLEVOTE</mark>. For this example, the instructions include sending a certain amount of <mark style="color:red;">EXAMPLEVOTE</mark> to a specific Bitcoin Address.
* Within that Broadcast you explain that sending <mark style="color:red;">EXAMPLEVOTE</mark> to a specific "<mark style="color:orange;">Bitcoin Address #1</mark>" counts as a <mark style="color:orange;">YES</mark> vote, and sending to another specific "<mark style="color:purple;">Bitcoin Address #2</mark>" counts as a <mark style="color:purple;">NO</mark> vote.
* To cast their votes, holders of <mark style="color:green;">EXAMPLE</mark> can then send the <mark style="color:red;">EXAMPLEVOTE</mark> they have received to whichever choice they agree with.&#x20;
* The results of the poll will be public and verifiable thanks to the Bitcoin blockchain and will simply be recorded as token sends of <mark style="color:red;">EXAMPLEVOTE</mark>.

Since you can create whatever rules you would like with a public Counterparty Broadcast transaction that publicly shows the 'choices' or different Bitcoin Addresses to send to for voting, this feature can be used for many purposes.

<mark style="color:yellow;">It may be a good idea to create burn addresses for this purpose</mark> (addresses where the private key is not known). This way, the votes cannot be recycled or moved. \
\
For more information about creating a “burn address” see below on the topic [How do I create a Burn Address for use on Counterparty?](https://davestaxcp.gitbook.io/freewallet.io-user-manual/common-questions-using-freewallet-faq/how-do-you-create-a-burn-address-for-use-on-counterparty)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://davestaxcp.gitbook.io/freewallet.io-user-manual/freewallet-functions/voting-with-tokens.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
