Build on Agoric
Project 1: Multi-Chain DAO
Orchestration Project: Simple DAO Platform
Project Description: This project focuses on building a Simple DAO Platform on the Agoric blockchain, designed to empower users with decentralized governance capabilities for their projects. Leveraging a cross-chain compatible DAO contract, users will be able to join the DAO, create proposals, and participate in voting. The Agoric orchestration API will streamline interactions with the contract across multiple chains, providing a seamless and accessible interface for performing all governance actions. This approach enhances cross-chain operability and simplifies complex contract interactions, making decentralized decision-making more approachable for users.
Project Objectives
- Develop a basic DAO platform on the Agoric blockchain with features like joining, proposal creation, and voting.
- Integrate with Agoric’s Orchestration API, enabling modular DAO interactions.
- Design a simple UI for users to interact with the DAO and manage governance.
- Gain experience with Agoric’s JavaScript-based smart contract environment and its unique capabilities, such as contracts and governance mechanisms.
Project Features
DAO Smart Contract
1. Create ICA:
- Users can create an ICA.
2. Join DAO:
- Users can join the DAO by receiving a Membership NFT.
- DAO Tokens (representing voting power) are minted for users upon joining.
3. Create Proposal:
- Users with DAO Tokens can create new proposals for community voting.
- Each proposal is assigned a unique ID and can be tracked through the contract.
4. Vote on Proposals:
Members with DAO Tokens and a Membership NFT can vote on proposals.
- Voting power is represented by DAO Tokens, and users’ votes (either "For" or "Against") are recorded.
Smart Contract Functions
- makeAccount(): Creates an ICA on the specific blockchain selected by the user.
- joinDao(): Issues a Membership NFT and DAO Tokens to new members.
- createProposal(title, details): Allows a member to create a new proposal with the given title and details.
- vote(proposalId, voteFor): Allows a member to vote on an existing proposal using their DAO Tokens.
Each function should have structured orchestration endpoints for simpler user interaction.
User Interface (UI)
1. Create ICA:
- A UI with multiple blockchain options for selection and a button that allows the user to create an ICA on the chosen chain.
2. Fund ICA:
- A Form where users can enter the token type and amount. Upon clicking a button, users should be able to fund the ICA.
- An interface displaying ICA account details, including its address, associated blockchain, and token/asset balance.
3. Join DAO:
- UI button for users to join the DAO, minting a Membership NFT and initial DAO Tokens.
4. Proposal Creation:
- Form for users to enter proposal details and submit new proposals.
- Display of active proposals with details and proposal IDs.
5. Voting on Proposals:
- Interface showing each proposal with voting options ("For" or "Against").
- Vote count display for each proposal to show real-time updates.
UI Features
- Web3 Wallet Integration: Connects with Agoric-compatible wallets, enabling seamless transactions.
- ICA creation and Funding: Enables seamless creation and funding of ICAs on different blockchains.
- Proposal and Vote Tracking: Real-time proposal updates with information on votes for each proposal.
- Transaction Confirmation: Confirms user actions such as joining, creating proposals, or voting.
Orchestration API Integration with AgoricDAO
The orchestration API is fundamentally a contract-based framework on Agoric, which operates through cross-chain interactions rather than direct API calls.
Creating Contract Terms and Functions
- Define terms in the contract that describe how it operates with other contracts or services within the Agoric environment. For instance, these terms could include membership conditions, DAO token management, and voting mechanics.
- Implement specific functions within the contract that allow users to:
- Create an ICA by selecting a specific blockchain.
- Join the DAO by creating an invitation for membership.
- Propose new ideas by creating proposals within the contract.
- Vote on existing proposals by utilizing their voting tokens.
Project
Comments
You need to enroll in the course to be able to comment!