diff --git a/docs/docs-user/governance/delegation.md b/docs/docs-user/governance/delegation.mdx similarity index 68% rename from docs/docs-user/governance/delegation.md rename to docs/docs-user/governance/delegation.mdx index d3ce6ff23..ccc30c4ba 100644 --- a/docs/docs-user/governance/delegation.md +++ b/docs/docs-user/governance/delegation.mdx @@ -18,6 +18,11 @@ keywords: ] --- +import delegateConnect from '../../../static/img/docs/governance/delegate-connect.png'; +import delegateSelect from '../../../static/img/docs/governance/delegate-select.png'; +import delegateSubmit from '../../../static/img/docs/governance/delegate-submit.png'; + + # Delegation Delegation is a key feature of the [Lisk DAO](overview), as it allows token holders to participate in the governance of the Lisk project passively by entrusting a representative with voting on [proposals](overview#proposals) in a way that aligns with their own beliefs and values. By delegating their [voting power](overview#voting-power) to a delegate of their choice, token holders can influence that their interests are represented in the decision-making process. @@ -32,20 +37,6 @@ The following sources might support you in your delegation decision: - [Lisk Governance Forum](https://forum.lisk.com/c/delegates/): The Lisk Governance Forum provides a section for delegates to present themselves to the community. - [Lisk DAO Tally instance](https://www.tally.xyz/gov/lisk): Check the delegate's profile, voting history, and activity on the Lisk DAO Tally instance. -## How to delegate your voting power 🗳️ - -The Lisk DAO uses [Tally](https://www.tally.xyz/) to facilitate delegation. - -The process in a nutshell: -1. Connect your wallet to Tally and navigate to the [Lisk DAO delegates](https://www.tally.xyz/gov/lisk/delegates) page. -2. Search for the delegate you'd like to delegate your voting power to. -3. Click the "delegate" button on the delegate's profile. -3. Confirm the delegation by following Tally's prompts. - -:::tip -Through Tally, you can change or revoke your delegation at any time. -::: - ## Responsibility of delegates Delegates play a crucial role in the governance of the Lisk project. They are the ones who create [proposals](overview#proposals), vote on behalf of the token holders, and represent the interests of the community as a whole. @@ -70,10 +61,10 @@ Excellent delegates will do even more than that, for example: - Ensure that the Lisk DAO acts in the best interest of the Lisk community. - Decide directly about fund allocation of the Lisk DAO treasury. {/* TODO: Confirm rewards */} - + - Receive extra rewards for being an excellent delegate (e.g., being most active/constructive, having most delegations, etc). */} - **Reputation**: - Gain a trustworthy reputation by being an active delegate. @@ -100,3 +91,47 @@ Here it is also possible for token holders to ask questions and get to know thei Additionally, it might be beneficial to join the `#lisk-dao` channel in the [Lisk Chat](https://lisk.chat) Discord server to get in touch with the community. 3. Actively participate in the governance process. This includes voting on proposals, creating proposals, and giving feedback on other draft proposals. + +## How to delegate your voting power 🗳️ + +Follow the steps described below to delegate your voting power to a delegate of your choice. +The Lisk DAO uses [Tally](https://www.tally.xyz/) to facilitate delegation. + +The process in a nutshell: +1. Go to [Lisk DAO](https://www.tally.xyz/gov/lisk) and connect your wallet to Tally. +2. Navigate to the [Lisk DAO delegates](https://www.tally.xyz/gov/lisk/delegates) page. +3. Search for the delegate you'd like to delegate your voting power to. +4. Click the `Delegate` button on the delegate's profile. +5. Submit the delegation by clicking the `Delegate votes` button. +6. Confirm and sign the transaction via your connected wallet. + +:::tip +Through Tally, you can change or revoke your delegation at any time. +::: + +## How to delegate your voting power without Tally + +It is crucial that members of the Lisk DAO can interact with the DAO at any point in time, even when Tally, the standard front end for the Lisk DAO, is down. +Most importantly, voting and delegating should always be possible by interacting directly with the smart contract. +How to delegate manually is described below. +For a guide on how to vote manually, see the [Voting](voting) page. + +### Prerequisites + +If you want to delegate to someone else's account, you must know their address. + +### Steps + +1. Go to the `Write proxy` tab of the L2VotingPower proxy contract on Blockscout: https://blockscout.lisk.com/address/0x2eE6Eca46d2406454708a1C80356a6E63b57D404?tab=write_proxy +2. If your wallet is not already connected to Blockscout, click on `Connect wallet` and follow the instructions to connect your wallet[^1]. + +3. Click on `3. delegate` to unfold the form for the delegate function. + +4. Insert the address of the account you want to delegate to into the field `delegatee (address)*` + If you want to self-delegate, insert your address. +5. Click on the `Write` button. + +6. Confirm the transaction in your wallet. + +[^1]: At the time of writing, there is an [issue](https://github.com/blockscout/frontend/issues/2059) with connecting MetaMask to Blockscout on Firefox; +you may have to use another browser like Brave or Chrome. \ No newline at end of file diff --git a/docs/docs-user/governance/voting.mdx b/docs/docs-user/governance/voting.mdx new file mode 100644 index 000000000..55c32b999 --- /dev/null +++ b/docs/docs-user/governance/voting.mdx @@ -0,0 +1,113 @@ +--- +title: Voting +sidebar_position: 4 +slug: /governance/voting +description: Documentation about the voting process of the Lisk DAO. +keywords: + [ + Lisk governance, + Lisk DAO, + Lisk Grants, + Funding, + Delegation, + Voting, + Proposals, + Voting Power + ] +--- + +import voteConnect from '../../../static/img/docs/governance/vote-connect.png'; +import voteSelect from '../../../static/img/docs/governance/vote-select.png'; +import voteSubmit from '../../../static/img/docs/governance/vote-submit.png'; +import voteList from '../../../static/img/docs/governance/vote-list.avif'; +import voteButton from '../../../static/img/docs/governance/vote-button.avif'; +import voteForm from '../../../static/img/docs/governance/vote-form.avif'; +import proposalId from '../../../static/img/docs/governance/proposal-id.png'; + +# Voting + +## Voting on Tally + +Follow the steps described below to vote on a proposal of the Lisk DAO. +The Lisk DAO uses [Tally](https://www.tally.xyz/gov/lisk) to facilitate the voting on proposals. + +The process in a nutshell: +1. Go to [Lisk DAO](https://www.tally.xyz/gov/lisk) and connect your wallet to Tally. +2. Navigate to the [Lisk DAO proposals](https://www.tally.xyz/gov/lisk/proposals) page. + +3. Select the active proposal you would like to vote on. +4. Click on the `Vote` button in the upper right corner of the page. + +5. In the Voting pop up, choose your vote — For, Against, or Abstain. +If you'd like, add a comment to explain the reason for your vote to the rest of your DAO. +Once you're done, click `Submit`. + +6. Confirm and sign the transaction via your connected wallet. + + +## Voting without Tally + +It is crucial that members of the Lisk DAO can interact with the DAO at any point in time, even when Tally, the standard front end for the Lisk DAO, is down. +Most importantly, voting and delegating should always be possible by interacting directly with the smart contract. +How to vote manually is described below. +For a guide on how to delegate your voting power manually, see the [Delegation](delegation) page. + +### Prerequisites + +You must know the **proposal ID** of the proposal you want to vote for. +The proposal ID is a very long integer (uint256). +To get the ID for a proposal, get the respective Logs from an RPC node: + +```javascript +async function main() { + const { ethers } = require("ethers"); + const provider = new ethers.JsonRpcProvider("https://rpc.api.lisk.com"); + const logs = await provider.getLogs({ + fromBlock: 568778, // block when Governor contract got deployed + toBlock: 'latest', + address: "0x58a61b1807a7bDA541855DaAEAEe89b1DDA48568", // L2Governor Proxy + topics:['0x7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e0'] // signature of `ProposalCreated` event + }); + console.log(logs); +} + +main() +``` + +The return value is an array of logs, where each log corresponds to one proposal (creation) and has the corresponding transaction hash. +```javascript +[ + Log { + provider: JsonRpcProvider {}, + // highlight-next-line + transactionHash: '0xc2663d2ffc0c6082e8766a18879972692515f37c02c97b193776f4b9b6bb71c3', + blockHash: '0x5710e760423b493ad5eb644c1a4e2ee4e95f3b5da1675c80a9d1bbf421832186', + blockNumber: 3952205, + // ... + } +] +``` +The transaction hash can then be pasted into [Blockscout](https://blockscout.lisk.com/) to see more details of the proposal. +To see if the proposal is the one you are looking for, click on the `Logs` tab and look for the `ProposalCreated` event. If the values, in particular the ones for `description`, `voteStart` and `voteEnd`, match with the proposal you want to vote on, then it is the right one. To get the proposal ID, copy the value of the field `proposalId`. + + +### Steps +1. Go to the `Write proxy` tab on the L2Governor proxy contract on Blockscout: https://blockscout.lisk.com/address/0x58a61b1807a7bDA541855DaAEAEe89b1DDA48568?tab=write_proxy. +2. If your wallet is not already connected to Blockscout, click on `Connect wallet` and follow the instructions to connect your wallet[^1]. + +3. Click on `3. castVote` to unfold the form for the castVote function. + +4. Insert the proposal ID of the proposal you want to vote on into the field `proposalId (uint256)*`. +5. Fill the `support (uint8)*` field as follows: + - If you want to vote **against** the proposal, insert `0`. + - If you want to vote **for** the proposal, insert `1`. + - If you want to vote with **abstain**, insert `2`. +6. Click on the `Write` button. + +7. Confirm the transaction in your wallet. + +To verify the vote was submitted correctly, you can check the `VoteCast` event of your transaction. + +[^1]: At the time of writing, there is an [issue](https://github.com/blockscout/frontend/issues/2059) with connecting MetaMask to Blockscout on Firefox; +you may have to use another browser like Brave or Chrome. + diff --git a/sidebars.js b/sidebars.js index 57a2b6b79..fe3cb84ab 100644 --- a/sidebars.js +++ b/sidebars.js @@ -139,6 +139,7 @@ const sidebars = { 'docs-user/governance/overview', 'docs-user/governance/delegation', 'docs-user/governance/proposal-lifecycle', + 'docs-user/governance/voting', ], }, { diff --git a/static/img/docs/governance/delegate-connect.png b/static/img/docs/governance/delegate-connect.png new file mode 100644 index 000000000..79ee37be8 Binary files /dev/null and b/static/img/docs/governance/delegate-connect.png differ diff --git a/static/img/docs/governance/delegate-select.png b/static/img/docs/governance/delegate-select.png new file mode 100644 index 000000000..d7f95c274 Binary files /dev/null and b/static/img/docs/governance/delegate-select.png differ diff --git a/static/img/docs/governance/delegate-submit.png b/static/img/docs/governance/delegate-submit.png new file mode 100644 index 000000000..60d93097b Binary files /dev/null and b/static/img/docs/governance/delegate-submit.png differ diff --git a/static/img/docs/governance/proposal-id.png b/static/img/docs/governance/proposal-id.png new file mode 100644 index 000000000..197605fce Binary files /dev/null and b/static/img/docs/governance/proposal-id.png differ diff --git a/static/img/docs/governance/vote-button.avif b/static/img/docs/governance/vote-button.avif new file mode 100644 index 000000000..a67706cfb Binary files /dev/null and b/static/img/docs/governance/vote-button.avif differ diff --git a/static/img/docs/governance/vote-connect.png b/static/img/docs/governance/vote-connect.png new file mode 100644 index 000000000..1f2b1cab3 Binary files /dev/null and b/static/img/docs/governance/vote-connect.png differ diff --git a/static/img/docs/governance/vote-form.avif b/static/img/docs/governance/vote-form.avif new file mode 100644 index 000000000..c91da6828 Binary files /dev/null and b/static/img/docs/governance/vote-form.avif differ diff --git a/static/img/docs/governance/vote-list.avif b/static/img/docs/governance/vote-list.avif new file mode 100644 index 000000000..7e0c7dd6b Binary files /dev/null and b/static/img/docs/governance/vote-list.avif differ diff --git a/static/img/docs/governance/vote-select.png b/static/img/docs/governance/vote-select.png new file mode 100644 index 000000000..5117fbbc2 Binary files /dev/null and b/static/img/docs/governance/vote-select.png differ diff --git a/static/img/docs/governance/vote-submit.png b/static/img/docs/governance/vote-submit.png new file mode 100644 index 000000000..aa31fac13 Binary files /dev/null and b/static/img/docs/governance/vote-submit.png differ