---
# System prepended metadata

title: AmbaDAO

---

# AmbaDAO

**author:** Eddie Samuels, Founder of [Nance](https://nance.app)

**date:** 01/29/2024

## Summary

AmbaDAO will allow the Aleo Ambassadors to propose, vote, and execute upon proposals from the community. This will increase Discord engagement,
allow ambassadors to take on more responsibilities (alleviating internal resources), and exercise the use of Leo wallet for a simple voting mechanism.
The main user interface to the DAO will be an Aleo Discord bot that will allow for proposal creation, voting, and alerts. 
The Discord bot and simple voting frontend will be a white-labeled version of [Nance](https://docs.nance.app) hosted on Aleo managed cloud infrastructure.

## Process Overview

Nance promotes the use of a Governance Cycle. 
This is a set period of time (intervals of 7 days work best in order to be consistent across days of the week)
where proposals can be created, discussed, refined, voted on, and executed.
Utilizing cyclical governance has many advantages over ad-hoc or asynchronous governance:

1. **Predictable** - organization members know when they need to propose and vote
2. **Less voter burnout** - voters have preset days they know they will need to vote, no need to constantly check for new proposals
3. **Batched execution** - grouping proposal actions by cycle allows for more efficient execution
4. **Time to refine ideas** - organization members can refine their ideas if they are rejected on an initial vote

Nance recommends AmbaDAO uses a 21 day Governance Cycle:
| Stage | Duration | Actions |
| --- | --- | --- |
| Temperature Check | 6 days | * DAO members provide feedback on proposal content </br>* proposals can be edited based on feedback</br>* simple 👍 👎 poll is taken </br>* proposals that achieve a configurable threshold of positive feedback by the end of this stage are moved to the Vote stage
| Vote | 6 days | * organization members vote on proposals </br>* off-chain signature based voting </br>* proposals that achieve a configurable threshold of positive votes by the end of this stage are moved to the Execution stage
| Execution | 5 days | * proposals that have passed the Vote stage are implemented
| Delay | 4 days | * downtime between Governance Cycles</br>* organization members can propose new ideas during this time for the next Governance Cycle

This will be a good starting point for the DAO, but can be adjusted as needed.

In order to run the governance system, we will create two new Discord channels:
1. **#proposals** - a Discord Forum where proposals can be created and discussed
2. **#governance-alerts** - a read-only channel where the Discord bot will post
alerts when community members need to participate in the process and the results
of each Governance Cycle

DAO members will go to the **#proposals** channel and create their proposal as a Discord Post. A Post allows for the user to give the proposal a title, use Markdown formatted text and attach tags to provide categorization for the proposal.

![image.png](https://nance.infura-ipfs.io/ipfs/QmaJ2xcdATzEc4d6f4PqiRots2HkcY89g4VXg1zKZezrAi)

When the Temperature Check or Vote stage of the Governance Cycle begins, the bot will post an alert in the **#governance-alerts** channel.
The alert will provide a summary of all the proposals that need feedback and when stage ends, keeping the community informed and engaged.

![image.png](https://nance.infura-ipfs.io/ipfs/QmR2Qz4AW9VhHRuuxUG5FiFqtDyU6DqoQGCs6BgbLvxfx8)

Proposals that pass the configurable threshold of positive feedback will be moved to the Vote stage. In order to cast a vote, DAO members will send a slash command in Discord
which will generate a link for them to connect their Discord, Leo wallet, and then sign their vote. This will allow for a simple, secure, and verifiable voting mechanism. See sample of vote mockup below or interactive version [here](https://www.tldraw.com/v/vOxxD04Yjds08FZmBkSLQ?viewport=-527,-923,4774,2725&page=page:VEsW1kju6ddi7hoZ6HulE).

![image.png](https://nance.infura-ipfs.io/ipfs/QmdTtGkar7NE8pWhPtmcAM69KuSkQmz5hSqQHQehBJRuD8)

At the end of the Vote stage, the bot will post the results in the **#governance-alerts** channel. This will allow for transparency and accountability in the process.

![image.png](https://nance.infura-ipfs.io/ipfs/QmeXLFRBXRyVysNj1cJZCD8Xb5s4pdU9NQAMHLG1MKBnNF)

## Technical Implementation

This will be a fork of the main Nance backend (https://github.com/nance-eth/nance-ts).
The Discord bot and scheduler is a Nodejs based application that will be hosted on Aleo managed cloud infrastructure. Nance currently uses https://railway.com for hosting,
but we can use any provider that supports Nodejs applications. The simple voting frontend will be a NextJS application that can also be hosted on railway or any other provider
that supports NextJS applications.

In order to store proposal metadata and votes we will use a MySQL database. Storing this data in a SQL database will allow for easy querying and reporting on the data in a secure fashion that does not require community members to spend Aleo credits to vote.
This simple schema will also be portable to an Aleo record based system in the future if desired (fork of [vote.leo](https://github.com/AleoHQ/leo/tree/testnet3/examples/vote)).

More details on the flow of information through the system can be found below or an interactive version [here](https://www.tldraw.com/v/vOxxD04Yjds08FZmBkSLQ?viewport=-1042,-3394,6120,3597&page=page:7T3jMMm5HxkXubDqs6cXh).

![image.png](https://nance.infura-ipfs.io/ipfs/QmdrWyJ5qKEh8WxCBFVUSjVAsfdFUB6nTSzzxfHXNHVnLD)

## Deliverables

**Phase I:**
1. Fork Nance backend and setup in Aleo managed github repo
2. Standup cloud infrastructure on Aleo managed cloud provider
3. Deploy hosted MySQL database
4. Basic scheduled alerts for daily updates on Governance Cycle status (cron)

**Phase II:**
1. Discord hook for proposal database entry
2. Discord slash command for voting and auth flow
3. Leo wallet frontend deployment

**Phase III:**
1. Vote database entry API endpoint
2. Vote validation
3. Vote tallying and results alert


