A blockchain-powered platform for community-driven yield generation and collaborative investment strategies.
LoomDAO creates a decentralized governance structure that enables community-driven innovation in the textile and fashion industry. The platform allows members to:
- Propose new sustainable fabric technologies and fashion concepts
- Vote on funding allocations using quadratic voting
- Share in the success of commercialized innovations
- Participate in a structured project evaluation process
- Manage milestone-based funding for approved projects
The DAO operates through a single smart contract that manages membership, governance, proposal lifecycle, and treasury operations.
flowchart TD
A[Member Registration] --> B[Token Allocation]
C[Project Proposal] --> D[Proposal Phases]
D --> E[Submission]
D --> F[Discussion]
D --> G[Voting]
D --> H[Execution]
G --> I[Quadratic Voting]
H --> J[Milestone Funding]
K[Treasury] --> J
L[Expert Members] --> G
-
Membership System
- Token-based membership
- Expert member designation
- Vote delegation capabilities
-
Proposal Lifecycle
- Four distinct phases: Submission, Discussion, Voting, Execution
- Milestone-based funding distribution
- Quadratic voting mechanism
-
Treasury Management
- Secure fund storage
- Milestone-based disbursement
- Balance tracking
The main contract managing all DAO operations.
- Member Management
(define-public (register-member (token-amount uint) (is-expert bool)))
(define-public (delegate-votes (delegate principal)))
(define-public (remove-delegation))- Proposal Management
(define-public (create-proposal (title (string-ascii 100))
(description (string-utf8 1000))
(link (string-ascii 255))
(funding-amount uint)
(milestones (list 10 {...}))))- Voting and Execution
(define-public (vote-on-proposal (proposal-id uint) (vote-for bool)))
(define-public (execute-proposal (proposal-id uint)))
(define-public (complete-milestone (proposal-id uint) (milestone-index uint)))- Clarinet
- Stacks wallet
- LOOM tokens for membership
- Register as a member:
(contract-call? .loom-dao register-member u1000 false)- Create a proposal:
(contract-call? .loom-dao create-proposal "Sustainable Cotton Alternative"
"Development of bamboo-based fabric"
"https://example.com/proposal"
u10000
milestones)- Vote on a proposal:
(contract-call? .loom-dao vote-on-proposal u1 true)| Function | Description | Parameters |
|---|---|---|
| register-member | Join the DAO | token-amount: uint, is-expert: bool |
| delegate-votes | Delegate voting power | delegate: principal |
| remove-delegation | Remove vote delegation | None |
| Function | Description | Parameters |
|---|---|---|
| create-proposal | Submit new proposal | title: string, description: string, link: string, funding-amount: uint, milestones: list |
| vote-on-proposal | Cast vote | proposal-id: uint, vote-for: bool |
| finalize-proposal | Complete voting phase | proposal-id: uint |
- Clone the repository
- Install Clarinet
- Run tests:
clarinet test- Start Clarinet console:
clarinet console- Deploy contract:
clarinet deploy- Only members can create proposals and vote
- Milestone funding requires proper phase progression
- Expert status changes restricted (admin function)
- Milestone-based fund release
- Balance checks before disbursement
- Proposal state validation
- One vote per proposal per member
- Quadratic voting to prevent token concentration
- Mandatory phase progression
- Simplified quadratic voting calculation
- Basic treasury management
- Limited proposal parameter validation