> For the complete documentation index, see [llms.txt](https://dotdao.gitbook.io/dotdao/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://dotdao.gitbook.io/dotdao/voting-power.md).

# Voting Power

TL;DR

* Your <mark style="color:yellow;">**voting power**</mark> in a BRC20 community on DotDAO depends on <mark style="color:yellow;">**the amount and duration of your locked tokens**</mark>.
* Over time, your voting power will <mark style="color:yellow;">**gradually decrease and reach 0 at the end of your lock period**</mark>.
* DotDAO offers a trustless locking function for holders to securely lock their tokens in a **P2WSH (Pay-to-Witness-Script-Hash**).
* The locked BRC20 tokens can only be spent when a specific unlocking script is presented, which in our case means <mark style="color:yellow;">**the assets can only be sent back to the original holder with their own signature after the lock duration**</mark>.

## Introduction to Voting Power on DotDAO

DotDAO utilizes a veToken (vote escrow token) model, inspired by Curve, to determine voting power. This model allows BRC20 holders to **lock their tokens for a specific duration, gaining corresponding voting power**. Here's an overview of the voting power process on DotDAO:

1. **Locking BRC20 Tokens:**
   * The token holder specifies **the desired amount** of tokens to lock and specifies **the lock duration**.
   * DotDAO creates a locking script and an unlocking script using the specified <mark style="color:yellow;">**lock duration**</mark> and the holder's <mark style="color:green;">**public key**</mark>:
     * Locking script: A **P2WSH** (Pay-to-Witness-Script-Hash) BTC address that includes a timelock. It serves as a secure container for the locked BRC20 tokens. To spend its tokens, two conditions must be met: <mark style="color:yellow;">**a. the lock duration must have passed**</mark>, and <mark style="color:green;">**b. the transaction must be signed with the original holder's private key**</mark>.
     * Unlocking script: Used to return the BRC20 tokens within the locking script back to the original holder.
   * DotDAO creates a BRC20 TRANSFER inscription and sends it to the locking script, enabling the transferability of its BRC20 balance.
2. **Allocation of Voting Power:**
   * The holder who locked the tokens is then **allocated with a voting power** (in that specific BRC20 community) **based on the locked amount and duration**.
   * The allocated voting power gradually decays over time and reaches 0 at the end of the lock duration.
3. **Unlocking Process:**
   * When the lock duration expires, the following actions can take place:
     * The holder requests a transaction to return their BRC20 tokens.
     * DotSwap assists the holder in creating a bitcoin transaction, which will require a signature from the holder.
     * The transaction is signed and broadcasted, return the BRC20 tokens after serveral block confirmations.

{% hint style="success" %}
The holder can create such transactions themself, since the unlocking script only needs the holder's signature and is not controlled by DotDAO.
{% endhint %}

By implementing this voting power model, DotDAO ensures a fair and transparent governance process that aligns with the locked token holdings. The flowchart below illustrates the locking and BRC20 transferring process:

<figure><img src="/files/ra1GRrqF1WAzvCWd4ihv" alt=""><figcaption><p>The locking and BRC20 transferring process to gain voting power</p></figcaption></figure>

Through this voting power mechanism, DotDAO empowers BRC20 token holders to actively participate in governance decisions, ensuring a democratic and inclusive platform for the community.
