SCF #13
Award Completed
Stellar Dao Discord Bot
by

Our product aims to give discord communities the ability to create a DAO on stellar to facilitate community governance.

Awarded
Awarded
Budget request:
$
74,000
*
WebsiteCode

Project Stage

Development

Category

Education & Community
Soroban

Based in

Team size

2

Active since

Products & Services

Our goal is to create a Discord bot that simplifies interactions with Stellar and Soroban while preserving the security of the users' assets. Additionally, we aim to develop a web app that would allow server owners to deploy DAO contracts, issue community NFT assets, manage their Discord community, create proposals, vote on proposals, and perform other tasks that would enhance the functionality of their community.

Currently, interacting with DAOs on Ethereum and other networks is quite expensive, which limits its practical functionality. However, this problem does not exist on Stellar, which provides greater functionality and can support more users. As a result, our approach involves creating a customizable web app that enables server integration and setup specifically for Stellar and Soroban.

To accomplish this, we will be developing a smart contract based on Open Zeppelin's governance API, which will be customized to our specific needs.

In order to facilitate interactions between the users and the DAO, we will be using a Discord bot. Admins will be required to hold a certain asset in their account, and users will be issued assets that can be used to moderate the server, and interact with the DAO to vote on proposals. This will enable members to participate in the decision-making process.

We will also be developing a web app to aid managers in interacting with the smart contract, issuing assets, and performing other moderation tasks. The administration UI will be accessible only to admins who have verified their Stellar account. With this, they will be able to add or remove other admins, create or remove roles, and define role requirements. On the other hand, users will be able to read, create, and vote on proposals, such as voting on new members and budgets.

Overall, our aim is to create a platform that is secure and user-friendly, with the goal of onboarding thousands of new users to stellar by creating easy tooling for discord communities to serve their users.

No items found.
Previous Project(s)
No items found.
Progress so far
Goals
To get there, we request a budget of  
$
74,000
*
  to:
Additional information

The project will be divided in two stages, the first will be vanilla and will take 30% of the budget, with the goal to launch a product the community can actually use in a 5 week to get an early feedback. The second phase will be Soroban focus, we will develop the smart contracts needed to launch

We will be developing smart contracts for Soroban to:

- Create NFTs based on ERC721.

- Governance DAO.

Proposals to admit new users can be implemented in the following manner within the context of our system:

  1. A member of the community proposes the admission of a new user by submitting a proposal through the front-end web application.
  2. The proposal will include the details of the new user, such as their Discord username, Stellar wallet address, and any other relevant information required for their admission.
  3. The proposal will be submitted to the smart contract, and all users with the appropriate role and privilege will be able to vote on it.
  4. Once the voting period has ended, the proposal will be executed if the threshold for the number of votes required is met.
  5. If the proposal is executed, the new user will be issued an NFT asset that grants them membership to the community, and they will be added to the Discord server with the appropriate role and privilege.
  6. The new user will be able to participate in the community, vote on proposals, and enjoy the privileges that come with their role.

This process ensures that community members have a say in who is admitted into the community, and it provides a transparent and democratic method for the admission of new users.

Proposals to create budget allocations can be implemented in the following manner within the context of our system:

  1. A member of the community proposes a new budget allocation by submitting a proposal through the front-end web application.
  2. The proposal will include the details of the budget allocation, such as the amount requested and the purpose of the allocation.
  3. The proposal will be submitted to the smart contract, and all users with the appropriate role and privilege will be able to vote on it.
  4. Once the voting period has ended, the proposal will be executed if the threshold for the number of votes required is met.
  5. If the proposal is executed, the budget allocation will be made from the community's funds, and the funds will be transferred to the designated recipient.
  6. The community can monitor the usage of the funds and ensure that they are being used for their intended purpose.

This process ensures that community members have a voice in how the community's funds are allocated. It provides a transparent and democratic method for making budget decisions.

Business Model

We are going to offer monthly subscriptions for premium support for the discord bot, giving access to private channels.

Pitch deck
No items found.
Deliverables
First Deliverable

Our first deliverable will be the development of a prototype Discord bot that can link user's Stellar wallets to their Discord accounts and issue NFT assets that grant them membership to the community. To accomplish this, we will need to:

  • Develop the functionality to link Stellar wallets to Discord accounts through a browser-based signing process.
  • Finalize the project scope and work out any details we are still researching.

This prototype will be a significant step towards our goal of creating a fully functional Discord bot and administration web application that can enable transparent and democratic management of a community through a DAO.

With over 100 commits across our repositories, we are confident in having fulfilled the proof of intent, and look forward to completing the rest of the project. To complete our deliverable, we undertook the following tasks:

1. Developed a design system for our UI/UX using TypeScript, available at: https://github.com/CommuniDAO/communi-design-system

2. Built a web application and Discord bot using TypeScript and Remix.run (a React-like library), with the code available at: https://github.com/CommuniDAO/stellar-discord-bot

3. Designed a custom SEP-10 authentication method that leverages JWT and OAuth2 to connect Stellar and Discord accounts, and authenticate admins and users in the web application.

4. Implemented the Discord Linked Roles specification to enable Stellar account and Discord account linking, and manage server permissions based on these linked roles. https://commuunidao.cc/verify

Our future plans include:

Plans for April:

- Developing a management interface

- Implementing Discord slash commands and in-server bot interactions

- Releasing a mainnet-compatible version.

May onwards:

- Designing smart contracts for testing on Futurenet, with the aim of utilizing them on mainnet upon launch

- We also plan to support classic asset integration using Stellar Asset Contracts and the Standardized Token Interface. This will allow users to start using the product on mainnet before the smart contract launch, although without voting mechanisms.


Reviewer instructions

We will create a 'development discord' server, along with some test assets. A reviewer can join the test server, link their stellar account, and verify the asset ownership, and receive their discord role.

To verify the completion of our deliverable, please follow these steps: ** Ensure your wallet is set to TESTNET, as our current deployment is on the testnet.**

1. Join our Discord server at: https://discord.gg/z3SqfHgEkc

2. Navigate to the #get-verified channel.

3. Link your Discord account with the bot through one of these methods:

- Clicking the provided link in the #get-verified channel

- Selecting 'linked roles' from the Discord menu

- Visiting https://communidao.cc/verify

4. Connect your wallet to the application.

5. Sign the challenge transaction for authentication.

6. Sign and submit the transaction to claim the 'defaultrole' asset.

7. Confirm access to the rest of the server by checking your Discord for granted roles and available channels.

8. For any issues, please message us in the #help channel.

Links:

Team

Tim Baker (Silence#8008)

Software Development Engineer

Tim is a respected and accomplished member of the Stellar community, having contributed to the development of several notable projects, including Stellar Turrets and Yieldblox. His active engagement with the Stellar Quest community and the Stellar Community Fund is a testament to his strong commitment to the advancement of the Stellar ecosystem.

With an impressive background in blockchain technology that spans many years and multiple chains, Tim worked as a Software Development Engineer (SDE) for Kings Distributed Systems, where he played an integral role in the creation of a groundbreaking decentralized compute protocol called https://distributed.computer.

In addition to his work on DCP, Tim has also made significant contributions to the blockchain space by building the Fantasy Gold blockchain and successfully integrating an Ethereum Virtual Machine (EVM) with the UTXO chain. His expertise in deploying smart contracts on various platforms, including Ethereum, Binance Smart Chain, NEAR, and Qtum, has solidified his position as a respected developer in the blockchain community.

Overall, Tim's exceptional technical skills, innovative ideas, and unwavering dedication to advancing the blockchain industry make him an invaluable asset to any team or project in the space.

github: https://www.github.com/silence48

linkedin: https://www.linkedin.com/in/tim4802

cv: https://silence48.github.io

Julian Clatro (jclatro#5448)

Fullstack Web Developer

Been part of the Stellar community for 2 years, initiated his first steps at the Stellar Quest, where he gained confidence and experience as a Stellar developer. Julian was awarded at the SCF #8 for his project Wally, that he stills develops. Later he contributed to the Stellar Turrets, where he got the chance to meet Tim and a year later he joins Stellar DAO project.

github: https://www.github.com/julianclatro/

linkedin: https://www.linkedin.com/in/julianclatro/

cv: https://julianclatro.com/about