A prototype governance bot for OpenChat that implements a novel fractal sortition governance mechanism combining random selection with peer evaluation.
The Fractal Sortition Bot is an experimental implementation of the governance system described in "Revolutionising DAO Governance with Fractal Sortition". This innovative system is designed to fairly and efficiently select delegates in decentralized communities, addressing common issues in DAO governance such as token plutocracy, popularity contests, and passive voting by combining:
- Random Selection (Sortition) - Ensures equal opportunity for all members
- Peer Evaluation - Incorporates merit through small-group deliberation
- Iterative Vetting - Multiple rounds of peer selection refine candidates
- Accountability - Non-confidence voting mechanisms maintain delegate responsibility
- Volunteer Phase: Community members opt-in to participate
- Random Grouping: Volunteers are randomly assigned to small groups (3-5 people)
- Deliberation: Groups discuss governance topics and evaluate each other
- Peer Voting: Each group selects their best candidate to advance
- Iterative Rounds: Process repeats until a final shortlist emerges
- Final Sortition: Random selection from the vetted shortlist
- Accountability: Community can remove delegates via non-confidence votes
- Platform: Internet Computer (IC) blockchain
- Language: Motoko for bot implementation
- Integration: OpenChat messaging platform
- SDK: OpenChat Bot SDK for seamless chat integration
- DFX 0.28.0-beta.1
- Rust toolchain
- Node.js and npm
- Motoko compiler
# Start DFX
dfx start --clean
# Deploy OpenChat platform
cd open-chat
./scripts/deploy-local.sh
# Start frontend
npm --prefix frontend run dev/volunteer- Join the next governance round/status- Check current process stage/vote @user- Vote for a peer in your group/petition- Start a non-confidence petition/sign- Sign an active petition
fractal_sortition_bot/
βββ README.md # This file
βββ CLAUDE.md # Development guide for AI assistants
βββ Fractal_Sortition_Bot_Overview.md # Project overview
βββ Fractal_Sortition_Spec.md # Technical specification
βββ open-chat/ # OpenChat platform code
β βββ backend/ # Rust canisters
β βββ frontend/ # TypeScript/Svelte UI
β βββ scripts/ # Deployment scripts
βββ open-chat-bots/ # Bot SDK and examples
βββ motoko/ # Motoko SDK (for this project)
βββ rs/ # Rust SDK
βββ ts/ # TypeScript SDK
# Install Motoko dependencies
mops install
# Build bot canister
dfx build
# Deploy locally
dfx deploy
# Register bot in OpenChat
# Use /register_bot command in OpenChat UI# Run OpenChat integration tests
cd open-chat
./scripts/run-integration-tests.sh
# Run frontend tests
npm --prefix frontend run verify- Project Overview - High-level concept and goals
- Technical Specification - Detailed implementation guide
- Development Guide - Comprehensive development reference
- Users opt-in with
/volunteercommand - Minimum 9 volunteers required to start
- Time-limited collection period
- Random assignment to groups of 3-5 people
- Groups receive discussion questions
- 2-hour deliberation period with video calls
- Each group votes for their best candidate
- One vote per person, cannot vote for self
- Ties resolved randomly
- Top-voted candidates from each group advance
- Minimum 3 candidates required for final selection
- Process can repeat for multiple rounds
- Random selection from shortlist
- 24-hour delegate term
- Delegate gains special permissions
- Non-confidence petitions available
- 10% of members needed to trigger vote
- 51% approval required to remove delegate
- OpenChat Integration: Secure command validation
- IC Randomness: Transparent on-chain random selection
- Time Management: Automated stage transitions
- Access Control: Role-based permissions
- State Persistence: Stable memory for upgrades
This is an experimental governance prototype. Contributions welcome for:
- Bot implementation improvements
- UI/UX enhancements
- Additional governance mechanisms
- Security audits and testing
- Documentation improvements
This project is an independent implementation using the OpenChat SDK. The included OpenChat platform and SDK code retain their original licenses:
- Fractal Sortition Original Article - The governance concept this project implements
- OpenChat Platform
- Internet Computer
- Motoko Language
- OpenChat Bot Documentation
This is experimental software implementing a novel governance mechanism. Use at your own risk. The fractal sortition concept is still being researched and tested in real-world scenarios.