Snapshot Voting Setup Flowchart

This is a complete flowchart that describes how we may implement our snapshot voting strategy, including addtional setups outside of snapshot.
View on Excalidraw (Last update: 2pm 2022/1/21 UTC+8)

Accounts / Servers / Contracts

  1. COMPLETE

    Create snapshot.org space

    a. SongADAO Snapshot Space


  1. WIP - MisterPlus

    Create BrightID App

    a. Noble (registered, can be used for registry webapp review)
    b. snapshot (registered, working on a solution for purchasing sponsorships)


  1. COMPLETE

    Setup idchain archive node

    a. Node RPC: https://idchain.songadao.org/rpc


  1. COMPLETE

    BrightID Registry Contract

    a. Registry Contract deployed to IDChain.


  1. COMPLETE

    Multicall Contract

    a. Multicall Contract deployed on IDChain


  1. WIP - MisterPlus

    a. Deployed ERC20PresetMinterPauser contract from @openzeppelin.
    b. Minter role assignment to be discussed with Adam.
    c. Verifier Token with Burner role deployed to IDChain.
    d. Connect with Adam to discuss about setting up an Aragon DAO for managing the Verifier Token distribution.


  1. COMPLETE

    Submit PR to Snapshot to add IDChain

    a. PR completed, waiting for merge.


  1. TODO - aLANparty

    Build interface for users to register their brightID on chain.

    a. Adam Stallard in discord says the easiest method would be to fork https://ethereum.brightid.org/
    b. Is this site open source, or run by one who can provide the code for forking?
    c. We will most likely want to add a section to this site that explains to the user, how to attain IDChain tokens (and I assume setup IDChain as a network in MetaMask)


User Registration

  1. User must setup a brightID account by downloading the app to their phone and setting up an account.

  2. User must become ‘verified’ by brightID by following this short guide, Getting Verified - BrightID

    a. Part of this process involves a verification party which are scheduled here, brightid-meet

  3. User must link their brightID account to Nobel, at https://enter.songaday.world/

    a. This step is really only relevant for the discord role. It’s not necessary for the snapshot voting if I understand correctly. They will still need to do an on-chain registration for that.
    b. For live deployment, user must link their brightID account to snapshot instead, since the official registry will be shared among all snapshot spaces using this strategy.

  4. User needs to submit a transaction to register their brightID with a smart contract.

    a. Suggestion by Adam Stallard, is to fork the site https://ethereum.brightid.org/.


Creation of Proposals

  1. Take Suggestions

    a. Open discussion will take place on https://songadao.org/ in the “Suggestions” category.
    b. Discussions will be open to everyone (both DAO members and the general public)
    c. Nothing discussed in this area will be binding, it’s just a place for hashing out potential official proposals to put forward to the DAO.

  2. Proposal Review Phase

    a. When an item from the suggestions section seems like it is something that should probably be voted on, we can promote it to being a “tentative proposal”.
    b. This could be handled by moving the suggestion post into a “DAO Proposals” category.
    c. Posts in this category should only be create-able by admins in order to keep it tidy, while “Suggestions” will be a bit more “everything goes”.

    1. This will make it easy for DAO members to find discourse on things that are going to be be voted on, without needing to sift through general suggestions.

    d. As discourse on a proposal wraps up, we could propose the wording of the official proposal and the answers for it, with-in the thread.

  3. Proposal Creation and Voting

    a. After a proposal has been hashed out in these discussions, and final wording decided upon, someone with control of the snapshot.org account could create the proposal
    b. An announcement can be posted to the discord #dao-proposals channel, and a tweet sent out on twitter.

2 Likes

DUDE THIS IS SO RAD AND COMPREHENSIVE LOLOLOL Amazing.

1 Like

Hi, everyone. I’ve tried to pull together all the various discussions some of us have been having with each other to try to get an idea of what things are works in progress, what things are planned to be worked on by certain people, and which things need someone to take the lead on.

I also went back and forth with Misterplus a bit in discord to get a handle over what the processes for user registration and voting are and put together some outlines for those two processes. If everyone wants to take a look and suggest changes.

Thanks.

2 Likes

Following up on this item. Adam provided two github repositories that have code for the following sites

idchain faucet
https://idchain.one/begin/

ethereum brightID registration interface

https://ethereum.brightid.org/

The plan is too combine the features of these two items into a single page that will be able to take a new user all the way from not having IDChain setup in metamask to submitting a transaction to register with the brightID registration contract.

A single page app that

  • Checks BrightID verification
  • Sponsors the user
  • Gives Gas tokens
  • Lets them add themselves to the snapshot registry

This kind of work is much more in my wheel house so I’ll handle putting this together.

Timeline: I have a little bit of personal client work to wrap up tomorrow (Tuesday). So I plan to start this tomorrow and estimate Thursday or Friday for having something to review. Will post an update if something comes up to delay my work.

2 Likes

This is awesome. The top post here is a wiki, I posted your stuff in. We can keep editing it as things progress.

Let me know if any issues editing the wiki.

Thanks so much for your work on this!

1 Like

Added some work done yesterday on smart contracts.

1 Like

Another update, wrapping up most of the smart contract work, will need to spend some time discussing with @castall about an initial setup, whether to use Aragon DAO from the start or start with a central admin and mirgrate to DAO later.

1 Like

Yeah we need to understand what DAO framework we might want to use.

@jonathanmann pointed to the NounsDAO interface which seems a lot simpler than a full Aragon DAO.

What chain would the Aragon DAO be deployed on?

The DAO I was talking about was for managing the snapshot registry contract and the distribution of verifier tokens. It was @castall that suggested Aragon DAO, since it’s supported on IDchain. Since all the contracts are deployed on IDchain, it’s easier to use Aragon DAO as it supports automatic proposal executions.

As for what DAO framework SongADAO might wanna use, gnosis safe might be our most straight forward option (since the current treasury vault is already a gnosis safe), though I’m not too familiar with automatic proposal executions in gnosis safe.

Ok, all on IDChain. Thank you.

There are plugins for Gnosis Safe.

And it’s not a DAO framework, “just” a multisig. Which is great. Simpler the better to start!

2 Likes

Right, my bad :joy:. Just skimed through some gnosis safe apps, indeed it’s just a simple multisig wallet. We might wanna consider something that can connect to a gnosis safe to execute proposals.

1 Like

I digged into discord chat history a bit and found Adam left this earlier: Get started | Zodiac
It’s a gnosis safe app that supports proposal executions!
From their github repo:

While built initially to execute Gnosis Safe transactions according to Snapshot proposals, this module is framework agnostic. It can enable proposal execution from just about anywhere.

Fits right into our current plan!

2 Likes

We really should talk to kei!!

Yes this is what I was thinking about.