🚧 Work in Progress - This application is currently under active development. Features and APIs may change.
🏛️ Decentralized Autonomous Organization (DAO) Platform - A comprehensive governance solution for the Hedera ecosystem.
A powerful and flexible DAO management platform that enables decentralized governance, proposal management, and community-driven decision-making within the HbarSuite ecosystem. Built with NestJS, MongoDB, and seamless integration with the Hedera network.
📑 Table of Contents
🔍 Overview
The @hsuite/dao application provides a complete DAO governance infrastructure that supports:
DAO Creation & Management: Create and configure DAOs with custom governance rules
Proposal Lifecycle: Submit, vote on, and execute governance proposals
Flexible Voting: Support for token-weighted voting and custom voting options
Member Management: Handle DAO membership and permissions
Real-time Updates: WebSocket integration for live governance updates
✨ Features
🏛️ DAO Management
Create DAOs with custom governance parameters
Configure voting rules including thresholds and voting periods
Manage member permissions and access control
Track DAO status and operational metrics
📝 Proposal System
Submit proposals with structured data and custom voting options
Lifecycle management from creation to execution
Multiple proposal types supporting various governance actions
Time-bounded voting with configurable periods
🗳️ Voting Mechanism
Flexible voting options (YES/NO/ABSTAIN or custom choices up to 5 options)
Token-weighted voting based on governance token holdings
Vote validation ensuring member eligibility and preventing duplicates
Voting history and transparency features
🔄 Real-time Features
WebSocket integration for live updates
Event-driven architecture with background job processing
Automated status updates based on voting outcomes
🏗️ Technical Architecture
Core Components
/**
* Main application components:
* - SmartAppService: Core application logic and initialization
* - DaoModule: DAO entity management and business logic
* - ProposalModule: Proposal lifecycle management
* - VoteModule: Voting system and validation
* - ConfigModule: Application configuration management
*/
Data Models
DAO Entity
interface Dao {
daoId: string; // Unique DAO identifier
name: string; // DAO display name
description: string; // DAO description
ownerAddress: string; // Creator's Hedera account ID
status: DaoStatus; // PENDING | ACTIVE | INACTIVE
votingRules: {
threshold: number; // Approval threshold (1-100%)
minVotingPeriod: number; // Minimum voting duration (hours)
tokenWeighted: boolean; // Token-weighted vs equal voting
};
members: string[]; // Array of member addresses
proposals: Proposal[]; // Associated proposals
}
Proposal Entity
interface Proposal {
proposalId: string; // Unique proposal identifier
daoId: string; // Parent DAO reference
title: string; // Proposal title
description: string; // Detailed description
creatorAddress: string; // Proposer's address
status: ProposalStatus; // PENDING | ACTIVE | PASSED | REJECTED
startTime: Date; // Voting start time
endTime: Date; // Voting end time
proposalData: object; // Custom proposal data
votingOptions: string[]; // Available voting choices
votes: Vote[]; // Cast votes
}