Skip to content

Repository files navigation

DAOPad: Decentralizing Orbit Through DAO Governance

Transform Orbit from a centralized multi-custody platform into a true DAO framework where token holders control admin decisions.

🎯 The Problem

Orbit is a powerful multi-custody platform on the Internet Computer, but it has a critical limitation: it relies on human administrators. This centralization bottleneck prevents Orbit from being truly trustless and limits its potential as infrastructure for decentralized organizations.

💡 Our Solution

DAOPad makes the backend canister THE administrator of Orbit Station, with all admin decisions controlled by DAO governance. Token holders (using Alexandria's $ALEX token in our test implementation) vote on proposals before they're executed on Orbit Station.

In simple terms: We're turning Orbit's admin key into a DAO.

🚀 Key Innovation

This project solves a fundamental challenge in the IC ecosystem:

  • Before DAOPad: Orbit Stations need trusted human admins → centralization risk
  • With DAOPad: Admin operations executed by smart contract after DAO approval → true decentralization

We've also navigated complex IC architectural limitations (inter-canister query restrictions) to create a working integration between DAO governance and Orbit Station operations.

🏗️ Architecture

Token Holders ($ALEX)
        ↓
   Vote on Proposals
        ↓
  DAOPad Backend
  (Admin Canister)
        ↓
  Executes Approved
    Operations
        ↓
  Orbit Station

Components

  • DAOPad Backend (lwsav-iiaaa-aaaap-qp2qq-cai): The admin canister that executes operations
  • DAOPad Frontend (l7rlj-6aaaa-aaaaa-qaffq-cai): Interface for viewing proposals
  • Alexandria Orbit Station (fec7w-zyaaa-aaaaa-qaffq-cai): The Orbit instance we're governing

🛠️ Quick Deployment

Prerequisites

# Install required tools
cargo install candid-extractor
dfx --version  # Ensure dfx is installed

Deploy to Mainnet

# Clone the repository
git clone https://github.com/AlexandriaDAO/DAOPad
cd DAOPad

# Set up identity (create or use existing)
dfx identity use <your-identity>

# Build and deploy everything with one command
./deploy.sh --network ic

# Get your backend canister's principal
dfx canister --network ic call daopad_backend get_backend_principal

# Register backend as admin in Orbit Station (one-time setup)
# This requires current Orbit admin to add the principal

Test the Integration

# Check configuration
dfx canister --network ic call daopad_backend get_alexandria_config

# View backend status
dfx canister --network ic call daopad_backend health_check

🎮 Demo

Current Capabilities

  1. Backend Integration: Successfully deployed and registered with Alexandria's Orbit Station
  2. Configuration Management: Backend provides Orbit Station details to frontend
  3. Identity Management: Backend principal can be registered as Orbit admin

In Development

  • Token-weighted voting mechanism
  • Proposal execution queue
  • Frontend voting interface

📊 Current Status

Completed:

  • Backend canister deployed to mainnet
  • Integration with Alexandria Orbit Station
  • Navigation of IC's inter-canister call limitations
  • Deployment automation scripts

🚧 In Progress:

  • $ALEX token integration for voting
  • Proposal execution logic
  • Frontend interface for governance

🔮 Future Vision

Phase 1 (Current)

Testing with Alexandria's Orbit Station and $ALEX token governance

Phase 2

Generic DAO framework where any Orbit Station can be governed by any token

Phase 3

Multi-chain governance through IC's Chain Fusion capabilities

🏆 Why This Matters

  1. Decentralization: Removes the last centralized component from Orbit
  2. Composability: Any project can now use Orbit as truly decentralized infrastructure
  3. Security: No single admin can compromise the system
  4. Innovation: First project to solve Orbit's centralization challenge

💻 Technical Details

IC Architecture Challenge

We discovered and worked around a fundamental IC limitation: query methods cannot make inter-canister calls. Our solution:

  • Frontend reads data directly from Orbit Station
  • Backend executes update operations after DAO approval
  • Clean separation of concerns maintaining security

Smart Contract Security

  • Backend canister can only execute operations approved by token holders
  • All operations logged on-chain
  • Emergency pause mechanisms (coming soon)

🤝 Built for Alexandria DAO

This project is part of the Alexandria ecosystem, demonstrating how established DAOs can extend their governance to control critical infrastructure. We're using Alexandria's $ALEX token as the governance token for this test implementation.

📁 Repository Structure

daopad/
├── src/
│   ├── daopad_backend/     # Rust canister (admin operations)
│   └── daopad_frontend/     # React interface
├── deploy.sh               # Deployment automation
├── dfx.json               # IC configuration
└── CLAUDE.md              # Development guide

🔧 Development

# Always deploy to mainnet (we test in production with test Orbit Station)
dfx identity use alex

# Backend development
cargo build --target wasm32-unknown-unknown --release -p daopad_backend
candid-extractor target/wasm32-unknown-unknown/release/daopad_backend.wasm > src/daopad_backend/daopad_backend.did
./deploy.sh --network ic --backend-only

# Frontend development
cd src/daopad_frontend
npm install
npm run dev  # Local server connecting to mainnet

📄 License

MIT

🙏 Acknowledgments

Built on top of Orbit - the multi-custody platform we're making truly decentralized.


Hackathon Note: This project demonstrates a working solution to a real problem in the IC ecosystem. The deployment is live on mainnet, integration with Orbit Station is functional, and the path to full DAO governance is clear. We've chosen to test in production because the test Orbit Station doesn't control real assets - this pragmatic approach accelerated our development significantly.

About

A DAO Launchpad

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages