Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

replace camel case with sentence case #28

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions faq.md
Original file line number Diff line number Diff line change
Expand Up @@ -267,7 +267,7 @@ If a proposal does not reach the required quorum, it is considered as not passed

![](<.gitbook/assets/image (9) (3).png>)

Due to multiple spam attacks on Snapshot all Spaces are now required to set up a Proposal Validation. \
Due to multiple spam attacks on Snapshot all Spaces are now required to set up a Proposal validation. \
Head here to learn how to do it: [#how-to-use-validation-strategies](user-guides/strategies/validation-strategies.md#how-to-use-validation-strategies "mention")

</details>
Expand All @@ -284,7 +284,7 @@ You can submit your request by following the process described in the [token-ver

<summary>Are there any solutions available to minimize whales' power in the voting process?</summary>

Absolutely! Have a look at the Quaratic Voting system (bear in mind that it should be parie
Absolutely! Have a look at the Quadratic voting type (bear in mind that it should be parie

</details>

Expand Down Expand Up @@ -376,12 +376,12 @@ Yes, you can customize the appearance of your Snapshot space to some extent by s

<details>

<summary>Your proposal cannot be submitted due to a missing Voting Validation rule required with the "ticket" strategy. What does it mean?</summary>
<summary>Your proposal cannot be submitted due to a missing Voting validation rule required with the "ticket" strategy. What does it mean?</summary>

![](<.gitbook/assets/image (2) (2).png>)

If your space is using only a [ticket](https://snapshot.org/#/strategy/ticket) Voting Strategy you are required to set a Voting Validation to minimize the risk of spam votes on your proposals. \
Without it, hackers can easily create multiple accounts (each getting 1 Voting Power) and take the voting process over.\
If your space is using only a [ticket](https://snapshot.org/#/strategy/ticket) Voting strategy you are required to set a Voting validation to minimize the risk of spam votes on your proposals. \
Without it, hackers can easily create multiple accounts (each getting 1 Voting power) and take the voting process over.\
\
Have a read here to learn how to set it up: [#voting-validation-in-space-settings](user-guides/strategies/validation-strategies.md#voting-validation-in-space-settings "mention")

Expand Down
8 changes: 4 additions & 4 deletions space-handbook/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ description: Find the best solution for your use case!
# Space handbook

{% hint style="info" %}
**This handbook uses terms like** [**Voting**](#user-content-fn-1)[^1] **and** [**Validation Strategies**](#user-content-fn-2)[^2]**,** [**Voting types**](#user-content-fn-3)[^3]**.** \
**This handbook uses terms like** [**Voting**](#user-content-fn-1)[^1] **and** [**Validation strategies**](#user-content-fn-2)[^2]**,** [**Voting types**](#user-content-fn-3)[^3]**.** \
\
Make sure to learn about those concepts before diving into this chapter! \
\
Expand Down Expand Up @@ -33,8 +33,8 @@ If none of the above are a good fit for your Space, we encourage you to use the

Feel free to reach out to us on [Discord](https://discord.com/channels/707079246388133940/1090290400943677440) to suggest use cases that we did not cover!

[^1]: Voting Strategies are used to calculated user's Voting Power. [Read more here](../user-guides/strategies/voting-strategies.md).
[^1]: Voting strategies are used to calculated user's Voting power. [Read more here](../user-guides/strategies/voting-strategies.md).

[^2]: Validation Strategies are used to define if a user is eligible to vote or create a proposal. [Read more here](../user-guides/strategies/validation-strategies.md).
[^2]: Validation strategies are used to define if a user is eligible to vote or create a proposal. [Read more here](../user-guides/strategies/validation-strategies.md).

[^3]: Voting Systems relate to how users can cast their votes and how the final results of a proposal is calculated. [Read more here.](../user-guides/proposals/voting-types.md)
[^3]: Voting types relate to how users can cast their votes and how the final results of a proposal is calculated. [Read more here.](../user-guides/proposals/voting-types.md)
32 changes: 17 additions & 15 deletions space-handbook/anti-whale.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ description: >-
> \
> [_https://www.investopedia.com/terms/b/bitcoin-whale.asp_](https://www.investopedia.com/terms/b/bitcoin-whale.asp)

Whales can influence not only currency markets but also the governance process of web3 communities. With the large holdings, their sheer Voting Power can oftentimes swing a proposal for their advantage. This leads to outcomes that are not welcomed by the community, poses a threat to taking the Treasury over, and also to lowering community participation in the vote as its members don't see the point in voting knowing that one wallet can decide on its outcome.
Whales can influence not only currency markets but also the governance process of web3 communities. With the large holdings, their sheer Voting power can oftentimes swing a proposal for their advantage. This leads to outcomes that are not welcomed by the community, poses a threat to taking the Treasury over, and also to lowering community participation in the vote as its members don't see the point in voting knowing that one wallet can decide on its outcome.

Let's have a look at different setups that will allow your space to minimize the power of whales.

Expand All @@ -22,15 +22,17 @@ You can predefine the [Voting type](#user-content-fn-1)[^1] that all proposals i

### 1. Quadratic voting

Snapshot's Quadratic Voting (QV) type goes beyond the conventional approach of simply calculating the square root of each voter's voting power. It presents a more nuanced and democratic framework for decision-making.

Snapshot's Quadratic voting (QV) type goes beyond the conventional approach of simply calculating the square root of each voter's voting power. It presents a more nuanced and democratic framework for decision-making.

One of the main features of our QV type is its **emphasis on the number of individual voters** rather than the size of their voting power. By doing so, it ensures that every voice counts, thereby enhancing collective decision-making and preventing power concentration.

Additionally, Snapshot's QV type provides voters with the flexibility to **distribute their voting power across multiple choices**. This feature allows for a more precise representation of a voter's diverse opinions, all without any additional cost.

Drawing key principles from the Quadratic Funding model, our QV type **fosters greater participation and effectively balances influence**. It represents a significant advancement over simpler voting mechanisms that rely on basic square root calculations of voting power.

You can set it up for all proposals in your Space by heading to the **Voting** tab in the Space settings and selecting the desired Voting System in the **Type** field:

You can set it up for all proposals in your Space by heading to the **Voting** tab in the Space settings and selecting the desired Voting type in the **Type** field:

<figure><img src="../.gitbook/assets/Screenshot 2023-06-12 at 15.26.16.png" alt=""><figcaption></figcaption></figure>

Expand Down Expand Up @@ -78,11 +80,11 @@ As a last step, we match these percentages with the total voting power of 14 tok
* B: 64% of 15 = 9.6 tokens

{% hint style="info" %}
All in all you don't have to understand each step of the calculation, yet it should give you an idea how John with 100 SMS tokens was not able to push through his choice despite having the majority of Voting Power in the group as Quadratic Funding model emphasises the **number of individual contributors** rather than the amount contributed.
All in all you don't have to understand each step of the calculation, yet it should give you an idea how John with 100 SMS tokens was not able to push through his choice despite having the majority of Voting power in the group as Quadratic Funding model emphasises the **number of individual contributors** rather than the amount contributed.
{% endhint %}

{% hint style="danger" %}
This Voting System may encourage the whales to create multiple wallets and split their holdings among them. Therefore it's important to also implement a mechanism providing Sybil Resistance. \
This Voting type may encourage the whales to create multiple wallets and split their holdings among them. Therefore it's important to also implement a mechanism providing Sybil Resistance. \
\
**Read more** [**here**](sybil-resistance-scam-and-spam-prevention.md)**!**
{% endhint %}
Expand All @@ -91,14 +93,14 @@ This Voting System may encourage the whales to create multiple wallets and split

### 1. [balance-of-with-thresholds](https://snapshot.org/#/strategy/balance-of-with-thresholds)

You can think of it as creating multiple buckets which will determine the Voting Power of an individual address. To put it in the simplest way, imagine that:
You can think of it as creating multiple buckets which will determine the Voting power of an individual address. To put it in the simplest way, imagine that:

* users who hold less than 5 tokens will have **0** Voting Power
* users who hold from 5 to 10 tokens will have **1** Voting Power
* users who hold from 10 to 20 tokens will have **2** Voting Power
* users who hold more than 20 tokens will have **5** Voting Power
* users who hold less than 5 tokens will have **0** Voting power
* users who hold from 5 to 10 tokens will have **1** Voting power
* users who hold from 10 to 20 tokens will have **2** Voting power
* users who hold more than 20 tokens will have **5** Voting power

As you can see, you are able to set various thresholds which will fix user's Voting Power at a specific level. This way whales who may have large holdings, for example 1000 tokens, will not get more than **5** Voting Power.&#x20;
As you can see, you are able to set various thresholds which will fix user's Voting power at a specific level. This way whales who may have large holdings, for example 1000 tokens, will not get more than **5** Voting power.&#x20;

This way the voting can be more reflective of the public opinion.

Expand All @@ -123,7 +125,7 @@ You can test it out in the **Playground on Snapshot**:

### 2.[ anti-whale](https://snapshot.org/#/strategy/anti-whale)

This strategy executes a chosen Voting Strategy and applies algorithms to its result to reduce the impact of big wallets on the vote.&#x20;
This strategy executes a chosen Voting strategy and applies algorithms to its result to reduce the impact of big wallets on the vote.&#x20;

{% hint style="info" %}
This strategy requires understanding some of the calculations shown below. If you have issues with setting it up don't hesitate to [create a ticket on Discord](https://discord.com/channels/707079246388133940/1090290400943677440)!
Expand All @@ -133,10 +135,10 @@ In practice, the strategy sets a **soft restriction on the voting threshold** by

As an example, assuming our threshold is **5**:

* if user's Voting Power is below or equal to 5, their final Voting Power will be moderately increased
* if user's Voting Power is above 5, their final Voting Power will be reduced (the higher the Voting Power, the more increased it will be)
* if user's Voting power is below or equal to 5, their final Voting power will be moderately increased
* if user's Voting power is above 5, their final Voting power will be reduced (the higher the Voting power, the more increased it will be)

The following algorithm is applied to the result of the configured Voting Strategy:
The following algorithm is applied to the result of the configured Voting strategy:

```
If result > antiWhale.threshold
Expand Down
22 changes: 11 additions & 11 deletions space-handbook/custom-calculations.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,19 +7,19 @@ description: >-

# Custom calculations

Snapshot provides several Voting Strategies that allow you to use your own API to return user's Voting Power or for example perform mathematical calculations on the results from existing Strategies.
Snapshot provides several Voting strategies that allow you to use your own API to return user's Voting power or for example perform mathematical calculations on the results from existing Strategies.

{% hint style="info" %}
You can also create a new custom Voting or Validation Strategy if none of the available solutions meet your needs. \
You can also create a new custom Voting or Validation strategy if none of the available solutions meet your needs. \
\
Have a look at the [create-a-strategy](../developer-guides/create-a-strategy/ "mention") section of this documentation to learn more!
{% endhint %}

### [api-v2](https://snapshot.org/#/strategy/api-v2)

This strategy allows off-chain data to be used as Voting Power through calling a custom API endpoint to request the score for a set of addresses.
This strategy allows off-chain data to be used as Voting power through calling a custom API endpoint to request the score for a set of addresses.

It's useful to use this strategy if your API can return the Voting Power directly. It's network agnostic. &#x20;
It's useful to use this strategy if your API can return the Voting power directly. It's network agnostic. &#x20;

**Strategy setup:**

Expand Down Expand Up @@ -75,21 +75,21 @@ You can test it out in the **Playground on Snapshot:**
You can use the `math` strategy flexibly with various tokens and networks. This example demonstrates how to set a threshold taking into account tokens on different chains.
{% endhint %}

`Math` strategy is powerful in its composability. It allows you to apply common mathematical operations to the outputs of Voting Strategies.
`Math` strategy is powerful in its composability. It allows you to apply common mathematical operations to the outputs of Voting strategies.

As an example, you can take a square root of the Voting Power calculated by [erc20-balance-of](https://snapshot.org/#/strategy/erc20-balance-of), or the lower (`min`) value out of two different Voting Strategies. You can see all possibilities on the [strategy page](https://snapshot.org/#/strategy/math).
As an example, you can take a square root of the Voting power calculated by [erc20-balance-of](https://snapshot.org/#/strategy/erc20-balance-of), or the lower (`min`) value out of two different Voting strategies. You can see all possibilities on the [strategy page](https://snapshot.org/#/strategy/math).

#### How to set it up for a multichain scenario?

If the Voting Power calculated for your space is based on tokens on different chains and you want to set a minimum threshold defining if a user is eligible to vote, you can use the `a-if-lt-b` operand. Don't worry if it sounds cryptic, we will go through it step by step.&#x20;
If the Voting power calculated for your space is based on tokens on different chains and you want to set a minimum threshold defining if a user is eligible to vote, you can use the `a-if-lt-b` operand. Don't worry if it sounds cryptic, we will go through it step by step.&#x20;

| Operation | Operand count | Description |
| ----------- | ------------- | ------------------------- |
| `a-if-lt-b` | 3 | (x, a, b) = x < b ? a : x |

Let's look at the formula first: `(x, a, b) = x < b ? a : x`, where:&#x20;

* **x** - sum of Voting Power calculated by the two Voting Strategies on chains `137` and `1` (as per the example below)
* **x** - sum of Voting power calculated by the two Voting strategies on chains `137` and `1` (as per the example below)
* **a** - first constant, in our case it's **0**
* **b** - first constant, in our case it's **100**

Expand Down Expand Up @@ -140,10 +140,10 @@ Let's look at the formula first: `(x, a, b) = x < b ? a : x`, where:&#x20;

The algorithm will check if **x** is smaller than **b**, the second constant:

* if it's below **b**, the final Voting Power will be set to **a,** first constant -> **0**
* if it's equal to and higher than **b**, the final Voting Power will be set to **x**, the sum of result from the Voting Strategies
* if it's below **b**, the final Voting power will be set to **a,** first constant -> **0**
* if it's equal to and higher than **b**, the final Voting power will be set to **x**, the sum of result from the Voting strategies

**As you can see we can easily define what is the minimum Voting Power (our example: 100) coming from different chains that is required for the user to vote!**&#x20;
**As you can see we can easily define what is the minimum Voting power (our example: 100) coming from different chains that is required for the user to vote!**&#x20;

You can test it out in the **Playground on Snapshot**:

Expand Down
Loading