Skip to content

Commit

Permalink
Merge pull request #69 from PufferFinance/feat/governance-changes
Browse files Browse the repository at this point in the history
feat(docs): voting update
  • Loading branch information
gjj authored Jan 2, 2025
2 parents dbbe98c + 90743d9 commit 1eb0d66
Show file tree
Hide file tree
Showing 23 changed files with 174 additions and 51 deletions.
50 changes: 27 additions & 23 deletions docs/governance-token.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,44 +3,48 @@ title: PUFFER Token
slug: /governance/token
---

# $PUFFER Token
# PUFFER Token

The PUFFER token is the native governance token of the Puffer Protocol and UniFi ecosystem.
The PUFFER token is the native governance token of the Puffer Protocol and UniFi ecosystem.

### The Role of [$PUFFER](https://etherscan.io/address/0x4d1C297d39C5c1277964D0E3f8Aa901493664530)
## The Role of [PUFFER](https://etherscan.io/address/0x4d1C297d39C5c1277964D0E3f8Aa901493664530)

#### Puffer LRT
<img src="/img/governance-puffer-dao-overview.webp" height="350" alt="Puffer DAO overview"></img>

### Puffer LRT
- Govern key protocol parameters (fees, limits, bond requirements)
- Select guardians and restaking operators
- Curate supported AVSs
- Future feature: Help allocate ETH to different operators and AVSs (more details coming soon)

#### UniFi AVS
### UniFi AVS
- Manage fee structures
- Whitelist new rollups for AVS support
- Oversee AVS security parameters
- Guide the integration of new preconfirmation and proposer commitment services

#### UniFi Rollup
### UniFi Rollup
- Set fee parameters for rollup transactions
- Direct ecosystem rewards to promote adoption
- Manage treasury funds for long-term sustainability
- Steer rollup upgrade decisions and feature prioritization

### [vePUFFER](https://etherscan.io/address/0xA55eD5808aeCDF23AE3782C1443185f5D2363ce7)
## [vePUFFER](https://etherscan.io/address/0xA55eD5808aeCDF23AE3782C1443185f5D2363ce7)

### What is vePUFFER?

#### What is vePUFFER?
![alt text](/img/vePuffer.png)
<img src="/img/governance-puffer-ve-model.webp" height="600" alt="Puffer voting escrow model overview"></img>

vePUFFER is a novel ve (voting escrow) governance mechanism implemented as an ERC-721 token, developed in collaboration with [Aragon](https://aragon.org/). It's designed to align with Puffer's long-term goal of fostering value-aligned and committed participants in the ecosystem.

Key features of vePUFFER:
- Users stake PUFFER tokens to mint vePUFFER NFTs
- Voting power accrues over time as long as PUFFER remains staked
Here are some key features of vePUFFER:

- Users stake PUFFER tokens to mint vePUFFER NFTs in receipt of the staked PUFFER tokens
- Voting power accrues over time as long as PUFFER remains staked as vePUFFER
- No fixed lockup duration is required
- Users can unstake their PUFFER at any time
- Users can unstake their PUFFER at any time, to receive their original staked PUFFER amount

#### How is vePUFFER different from other ve tokens?
### How is vePUFFER different from other ve tokens?

vePUFFER builds on learnings from protocols like Curve and Prisma, but introduces several key innovations:

Expand All @@ -51,33 +55,33 @@ vePUFFER builds on learnings from protocols like Curve and Prisma, but introduce
- **Incentivizes long-term engagement:** The accruing voting power mechanism rewards users for sustained participation in the protocol.
- **Flexible stake management:** Users can adjust their stake based on personal or market conditions while still participating in governance.

#### How is vePUFFER used?
### How is vePUFFER used?
vePUFFER is used for voting within the ecosystem. To start participating in governance, users will stake PUFFER to mint a vePUFFER NFT which will begin accruing voting power on a weekly cadence. After the warmup period, they will be able to begin voting. This mechanism empowers users to actively shape the future of the Puffer ecosystem through voting rights, kickstarting true decentralization and community-led governance within the Puffer ecosystem.

#### vePUFFER Parameters
### vePUFFER Parameters
The following parameters are the initial vePUFFER parameters. They can be changed by the PUFFER community through future governance proposals.

| Category | Name | Description | Value |
|----------|------|-------------|--------|
| Voting Power Curve | Max Multiplier | Maximum boost on initial deposit that will be reached if a user leaves staked tokens in, indefinitely. | 2x |
| Voting Power Curve | Max Duration | The time it takes to reach the max multiplier following a linear increasing curve .| 2 years |
| Voting Power Curve | Warmup Period | Time after locking in which a user can vote. | 3 days |
| Voting Power Curve | Max Multiplier | Maximum boost on initial deposit that will be reached if a user leaves staked tokens as vePUFFER indefinitely. | 2x |
| Voting Power Curve | Max Duration | The time it takes to reach the max multiplier following a linear increasing curve. | 2 years |
| Voting Power Curve | Warmup Period | Minimum time that must have elapsed after staking in which a user can vote. | 3 days |
| Exit Queue | Cooldown | Cooldown is the period between the user entering the exit queue and being able to withdraw the underlying tokens. They do not have voting power at this time as their NFT is held in the staking contract. | 1 month |
| Exit Queue | Min Lock | Min amount of time a staker must hold before they can begin the exit process. | 1 Month |
| Exit Queue | Exit Fee Percent | Tax paid in the underlying token on exit. | 0% |
| Escrow | Minimum Deposit | Number of PUFFER tokens a user must deposit as a minimum. | 70 PUFFER |

### PUFFER Allocations
## PUFFER Allocations

Total Supply: 1,000,000,000
The PUFFER token has a maximum total supply of 1,000,000,000. As of writing, there is currently an initial circulating supply of 102,300,000 (10.23%) PUFFER tokens.

Initial Supply: 102,300,000 (10.23%)
In the table below, we have a breakdown of how the PUFFER tokens are allocated across the Puffer ecosystem.

| Allocation | Percentage | Description |
|------------|------------|-------------|
| Ecosystem and Community | 40% | Allocated to initiatives that build a dynamic and engaged ecosystem, rewarding community support and ensuring continuous growth. This reserve will fund future airdrop seasons, community incentives, and initial liquidity on exchanges. |
| Airdrop Season 1 | 7.5% | Allocated to the Crunchy Carrot Quest Season One airdrop, available immediately to reward early Puffer supporters from the Crunchy Carrot Campaign. 65% is available on day 1 and for larger depositors, the rest is vested over 6 months for equal opportunity for all of our community. |
| Airdrop Season 2 | 5.5% | Allocated to Crunchy Carrot Quest Season Two participants. Season 2 has already started after the snapshot of Season 1 on Oct 5th. More information on Puffy's quest will be coming in the following days. |
| Airdrop Season 2 | 5.5% | Allocated to Crunchy Carrot Quest Season Two participants. Season 2 has already started after the snapshot of Season 1 on October 5, 2024. More information on the new season will be announced, very SOON! |
| Investors | 26% | By providing resources and support, investors enabled Puffer to build great products for the community. Investors will receive their allocation over 3 years, with a 1-year cliff and 2 years vesting. |
| Early Contributors & Advisors | 20% | This allocation is for the Puffer core team and advisors, who are fully committed to Puffer's success. This will vest over 3 years, with a 1-year cliff, ensuring long-term dedication to the ecosystem's vision. |
| Protocol Guild | 1% | In alignment with the Protocol Guild Pledge, 1% of the total $PUFFER supply will support Ethereum core development, vested over a 4-year period. This contribution strengthens the security and scalability of Ethereum, benefiting the broader ecosystem. |
60 changes: 60 additions & 0 deletions docs/governance-understanding-governance.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
---
title: Understanding Governance
slug: /governance/understanding-governance
---

# Governance Workflow

<img src="/img/governance-workflow-model.webp" height="500" alt="Puffer"></img>

## Proposal creation

We are building an ecosystem in which anyone can create a proposal, democratizing the governance process. Proposals should initially be posted in the respective categories shown on the [Puffer Governance Forum](https://governance.puffer.fi/) and will be updated to a PIP by the Governance Admin team. For a proposal to be successfully updated, you should use the designated Proposal Template and make sure to provide the following details:

- Comprehensive description
- Clear rationale
- Expected benefits
- Potential risks

Submitted proposals are posted on the Puffer Governance Forum for community review. We anticipate future improvements, such as a permissionless submission system with potential submission fees.

## Proposal Discussion

There will be a minimum five-days discussion period allows community members to:

- Provide feedback
- Debate proposal merits
- Suggest refinements

The Puffer Governance Forum is the primary platform for these discussions, ensuring a transparent and collaborative evaluation of all proposals.

## Proposal Review

The Puffer Governance Review Committee plays a critical role in assessing proposal readiness. The committee evaluates proposals based on several criteria, including, but not limited to:

- Community feedback
- Alignment with Puffer’s long-term goals
- Feasibility of implementation

The minimum two-day review process ensures only quality proposals advance to the voting stage. The committee will:

- Finalize and prepare aproved proposals for voting.
- Request additional refinement from proposals authors, feedback included if required.
- Archive any rejected proposals with documented reasons for transparency.

To ensure timely inclusion in governance, approved proposals are queued for the next available Voting Epoch.

## Proposal Voting

The final stage of the governance process is voting, exclusive to vePUFFER holders and conducted through the [Puffer Voting Platform](https://vote.puffer.fi/). Key voting guidelines include:

- Seven-day voting epoch
- Occurs every other Thursday at 12am UTC
- Quorum depends on proposal type
- For proposals, simple majority determines proposal passage
- For incentive gauges, protocols compete for a share of votes and in turn, the incentives for their users
- Results are tallied after the voting period and shared through the Governance Forum and official communication channels.

Each Voting Epoch lasts for seven calendar days and it happens every other Thursday at 12am UTC time.

For more information on voting, please refer to our article on [Voting](./governance-voting.md).
113 changes: 86 additions & 27 deletions docs/governance-voting.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,47 +3,106 @@ title: Voting
slug: /governance/voting
---

Voting will occur on the [Puffer Governance Hub](https://vote.puffer.fi) and requires you to have staked vePUFFER. See the [vePUFFER](governance-token.md#what-is-vepuffer) section for more information.
Voting will occur on the [Puffer DAO Hub](https://vote.puffer.fi) and requires you to have staked vePUFFER. In this document, we will guide you through how you can stake PUFFER to receive vePUFFER, which is required to participate in Puffer's governance.

## Minting vePUFFER
:::note
Instructions are subject to change.
:::
To mint vePUFFER, first claim your PUFFER tokens from the official [claims page](https://claims.puffer.fi).
![alt text](/img/token-claim.png)
If you are looking for the current vePUFFER parameters, refer to the [vePUFFER](governance-token.md#what-is-vepuffer) section for more information.

Once you have claimed your tokens, you will need to approve the [vePUFFER contract](https://etherscan.io/address/0xA55eD5808aeCDF23AE3782C1443185f5D2363ce7) to spend your [PUFFER tokens](https://etherscan.io/address/0x4d1C297d39C5c1277964D0E3f8Aa901493664530). Your vePUFFER voting power will start proportional to the amount of PUFFER you stake and increase the longer you hold the NFT.
## Staking PUFFER for vePUFFER

:::note
The minimum stake amount is 70 PUFFER as outlined in the [vePUFFER parameters](governance-token.md#vepuffer-parameters).
:::
![alt text](/img/token-approve.png)
In order for you to stake your PUFFER, you must first have at least 70 PUFFER tokens in your crypto wallet, which is the minimum required for staking as defined in the [vePUFFER parameters](governance-token.md#vepuffer-parameters).

You can get PUFFER tokens from:

- The official [claims page](https://claims.puffer.fi) if you are eligible for any of the campaigns.
- A decentralized exchange, such as [Uniswap](https://app.uniswap.org/explore/tokens/ethereum/0x4d1c297d39c5c1277964d0e3f8aa901493664530).
- A centralized exchange, such as [Bybit](https://www.bybit.com/en/trade/spot/PUFFER/USDT), [Bitget](https://www.bitget.com/spot/PUFFERUSDT), [Kraken](https://pro.kraken.com/app/trade/puffer-usd) and [many more](https://coinmarketcap.com/currencies/puffer/#Markets), and then transfer them to your own crypto wallet.

<img src="/img/governance-stake.png" height="400" alt="Puffer Governance Hub's staking page"></img>

When you have your tokens, you will need to go to the [staking page](https://vote.puffer.fi/plugins/stake/) on our Puffer Governance Hub to stake your PUFFER tokens to receive voting power.

If this is your first time staking your PUFFER tokens, you may be asked to approve the [vePUFFER voting escrow](https://etherscan.io/address/0xA55eD5808aeCDF23AE3782C1443185f5D2363ce7) to spend your [PUFFER tokens](https://etherscan.io/address/0x4d1C297d39C5c1277964D0E3f8Aa901493664530).

<img src="/img/governance-approve-puffer.png" height="500" alt="Approve PUFFER for use on vePUFFER contract"></img>

This is a required step before you can actually stake your PUFFER tokens. You can only stake your PUFFER tokens after the approval is given to the voting escrow contract.

Once you have approved the vePUFFER contract, you can stake your PUFFER tokens. The vePUFFER NFT will be sent to your wallet.
![alt text](/img/token-stake.png)
<img src="/img/governance-approve-puffer-approved.png" height="150" alt="Puffer"></img>

Once your PUFFER approval transaction has been confirmed, you can then proceed to stake your PUFFER tokens. We use the voting escrow (ve) model where your PUFFER tokens are locked up in an ERC-721 NFT that represents a receipt of your PUFFER tokens locked up for governance purposes - this is what we refer to as [vePUFFER](https://etherscan.io/token/0x1b6ec227ceBeC25118270efbb4b67642fc29965E).

<img src="/img/governance-stake-puffer.png" height="500" alt="Stake PUFFER via create lock contract call"></img>

Once you have the vePUFFER token in your wallet, your voting power will start to accrue over time, according to the current [vePUFFER parameters](governance-token.md#vepuffer-parameters):

- Initially at a 1x multiplier, i.e. your vePUFFER voting power will be proportional to the amount of PUFFER you stake.
- Up to a maximum of 2x multiplier at the end of two years.

Once you see the notification informing you that you've staked successfully, your vePUFFER will be in the warmup stage.

Congratulations! You now have vePUFFER and can participate in governance.
:::note
There is a three day warmup period after minting your vePUFFER tokens before you can start voting - see the [vePUFFER](governance-token.md#vepuffer-parameters) section for more details.
:::
![alt text](/img/token-complete.png)


<img src="/img/governance-stake-puffer-successful.png" height="150" alt="Successfully staked PUFFER for vePUFFER"></img>

Congratulations! You now have vePUFFER and can soon participate in Puffer's governance activities once your vePUFFER has become active.

## How to Vote

Proposals are first created and discussed on the [Governance Forum](https://governance.puffer.fi) and then posted to the [Puffer DAO Hub](https://vote.puffer.fi) for voting.
In order to vote, you must have access to a crypto wallet that contains vePUFFER in active stage.

There must also be an active voting epoch with proposals and incentive gauges. Proposals of all forms are first created and discussed on the [Puffer Governance Forum](https://governance.puffer.fi), and these proposals will be votable on the [Puffer DAO Hub](https://vote.puffer.fi) after a review has been conducted, according to our existing governance workflows.

In an active voting epoch, you must first connect your wallet to the [Puffer DAO Hub](https://vote.puffer.fi).

While you require an active vePUFFER stake, you will not need native ETH as currently, votes will be cast using Snapshot voting, which is done off-chain.

1. Navigate to [vote.puffer.fi](https://vote.puffer.fi)
2. Connect your wallet
3. View proposals on the `Latest proposals` window or via the `Community` tab
![alt text](/img/vote-latest.png)
4. Select the proposal to read more about it
![alt text](/img/vote-proposal.png)
5. Vote on proposals by clicking the `Vote` button
### Voting on Proposals

You can view all proposals in the **Latest proposals** section on the [Puffer DAO Hub](https://vote.puffer.fi), or via the [Proposals](https://vote.puffer.fi/plugins/community/) tab. If a voting epoch is currently active, and there are votable proposals, you will see the here.

<img src="/img/governance-vote-latest.png" height="300" alt="Proposals tab"></img>

You can choose to view details of a specific proposal, where you will be able to read what the proposal is, where the actual discussion flow is, and where the Snapshot voting results will be stored.

<img src="/img/governance-vote-proposal.png" height="500" alt="Proposal detailed information"></img>

The proposal passes unless rejections outnumber approvals after the voting period has ended. Specifically, a proposal is approved if:
- Approvals exceed or equal rejections
- No votes are cast (effectively treated as equal approvals and vetoes)

- Approvals exceed or equal rejections
- No votes are cast (effectively treated as equal approvals and vetoes)

### Voting on Incentive Gauges

An incentive gauge is a type of proposal where it is used to direct incentives, such as to various DeFi protocols. These DeFi protocols compete for a share of incentives, which is allocated based on the percentage of votes earned.

To direct incentives, simply go to the [Gauges](https://vote.puffer.fi/plugins/gauges/) tab.

Like proposals, you can only vote on incentive gauges when there is an active voting epoch. You can see whether there is an active voting epoch in the Gauges tab, and a timer will be shown on the deadline to vote.

A list of gauges will be shown to you, and you can click on a gauge to view more information of the gauge that can be voted for. These will generally be specific pools on other DeFi protocols, where you can perform certain actions (e.g. staking pufETH or PUFFER, providing liquidity, holding a token, etc.) and your vote will determine how much incentives will be directed to each pool.


<img src="/img/governance-gauges.png" height="500" alt="Gauges tab"></img>

In an active voting epoch, you will be able to select the gauges, similar to how it looks like below. You have to vote on at least one gauge, however you can choose any or all of the gauges available for a particular voting epoch, and press **Vote now**.

<img src="/img/governance-gauges-select.png" height="500" alt="Gauges vote selection"></img>

You will then be presented with your selected choices, and to determine how much of your vePUFFER voting power you wish to direct incentives to.

<img src="/img/governance-gauges-vote-distribution.png" height="300" alt="Gauges vote distribution"></img>

:::note
Initially the votes will be cast using Snapshot voting. In our next phase we will transition to fully on-chain voting.

You can change your vote at any point in time before the voting epoch ends.

:::

Once you are satisifed with your choices, click on **Submit votes** to submit your vote by way of signing a gasless transaction. This will not cost you any ETH at this point. You will then be shown the following notification if your vote has been registered.

<img src="/img/governance-gauges-vote-successful.png" height="150" alt="Gauges vote successful"></img>

Voting results will be tallied after the conclusion of every voting epoch. The rewards will be distributed through [Puffer DeFi](https://defi.puffer.fi), and only if you are a participant of the eligible pools.
Loading

0 comments on commit 1eb0d66

Please sign in to comment.