# Snapshot API

In Woken V1, we made the decision to integrate Snapshot. org's off-chain API for managing votes into the DAO.

This decision has several benefits, including

1. Configure and customize voting strategies for all projects, whether it's for voting within the Woken protocol or for certified projects.
2. Adjusting these strategies based on needs, such as quorum requirements, voting timeframes, or the amount of $WKN required to submit or vote on proposals.
3. Allow participants to submit and vote on proposals without incurring GAS fees through the use of signatures.

It's important to note that our project is unique in the blockchain space.\
That's why it's important for us to conduct large-scale testing, with multiple projects joining the DAO, to evaluate community-driven off-chain vote management.

This preliminary step will help us find the optimal formula that will later allow us to automate the entire process by moving the Woken DAO to an on-chain version in its version 2, making it **immutable**.\
\
This is why we have already incorporated this development into our smart contracts, including the Moderators function, which will become a validation smart contract for proposals in Woken V2.

<details>

<summary><mark style="color:blue;">function setModerator</mark></summary>

{% code title="WokenFactory.sol" %}

```solidity
function setModerator(address _addr, bool _moderator) public isDexAdmin{
        moderators[_addr] = _moderator;
        emit ModeratorChanged(_addr, _moderator);
    }
```

{% endcode %}

<pre class="language-solidity" data-title="WokenFactory.sol"><code class="lang-solidity">function setTimekeeperFromProposal(address _pair) public <a data-footnote-ref href="#user-content-fn-1">isDexOrModerators</a>{
        TimekeeperPerLp[_pair]=TimekeeperPerLpWaitingForApproval[_pair];
        delete TimekeeperPerLpWaitingForApproval[_pair];
        emit TimekeeperChange(_pair);
    }
    function refuseProposal(address _pair) public <a data-footnote-ref href="#user-content-fn-1">isDexOrModerators</a>{
        delete TimekeeperPerLpWaitingForApproval[_pair];
        emit TimekeeperProposal(_pair);
    }
</code></pre>

</details>

:globe\_with\_meridians: [Snapshot.org](https://docs.snapshot.org/introduction)

[^1]: moderators = smart contract on woken v2


---

# 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://woken-exchange.gitbook.io/wokenexchange/woken-v1-our-solution/dao-vote/snapshot-api.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.
