The Governance UI serves as a central interface for interacting with the Human Protocol's governance system, incorporating elements from both our client and server components to provide a comprehensive tool for community-driven decision-making.
This project leverages a modified Uniswap Interface to facilitate a transparent and user-friendly governance system. It enables users to actively participate in the governance process of the Human Protocol by navigating and exploring proposals across the primary hub chain and associated spoke chains.
Transparency is achieved through features that allow users to access detailed proposals, view real-time voting results, and track the progression and outcomes of governance actions.
Governance UI is designed to maximize engagement across the protocol's ecosystem. The platform simplifies the voting process, making it straightforward for users to vote on proposals with tokens from the hub or any connected spoke chain.
Accessibility features are integrated to ensure that all users, regardless of their technical proficiency, can participate in the governance process.
Cross-chain voting ensures that governance is not siloed within a single blockchain but is a holistic process that leverages the strengths and community of multiple networks.
Note
SEPOLIA is the HUB CHAIN and AVALANCHE is the SPOKE CHAIN
npx hardhat verify --network sepolia <HMT_ADDRESS> 1000000000 'Human Token' 18 'HMT'
npx hardhat verify --network sepolia <vHMT_ADDRESS> <HMT_ADDRESS>
npx hardhat verify --network sepolia --constructor-args arguments.js <TIMELOCK_CONTROLLER_ADDRESS>
npx hardhat verify --network sepolia --constructor-args arguments.js <GOVERNOR_ADDRESS>
npx hardhat verify --network avalancheFujiTestnet <HMT_ADDRESS> 1000000000 'Human Token' 18 'HMT'
npx hardhat verify --network avalancheFujiTestnet <vHMT_ADDRESS> <HMT_ADDRESS>
Tip
Pad the Governor address in the arguments.js to have a 32 bytes parameter.
npx hardhat verify --network avalancheFujiTestnet --constructor-args arguments.js <DAO_SPOKE>
Tip
Arguments.js file would be like this :
module.exports = [
'<ADDRESS>',
'<ADDRESS>',
[],
5,
'<ADDRESS>',
'<ADDRESS>',
2,
1,
300,
0,
4,
];
Note
Follow the README in /client
directory
- Proposal List & Details: View and understand proposals, their statuses, and details.
- Voting: Participate in governance by voting on proposals using either hub or spoke chain tokens.
Note
Follow the README in /server
directory
- Vote Collection & Aggregation: Collects and aggregates votes across chains for accurate representation.
- API Endpoints: Fetch proposal details and voting results.
We welcome contributions from the community. Please refer to our contribution guidelines for more information on how to participate.
Encountering issues during the setup or development process is common. Here are some steps to verify your environment and troubleshoot common problems related to Node.js version compatibility and other setup requirements.
The governance UI /client
requires Node.js version 14 due to Uniswap dependencies. To ensure you have the correct version installed, follow these steps:
- Install version 14 by running
nvm install 14
- Switch to version 14 by running
nvm use 14
- Check using
nvm --version
Refer to the LICENSE in the project.