SBT-based membership system design

SBT is a perfect case for LXDAO membership system, we can design and create an SBT for LXDAO builders.

Our use cases:

  • Identify LXDAO Buidlers
  • Vote for proposals and governance
  • Airdrop and whitelist for products

Some EIPs at the moment:

The SBT paper:

2 Likes

New learning material: 我为什么选择做一个 DAO 而不是一个项目? — tingfei

Tools

Good similar product Woo3

Twitter:https://twitter.com/WOO3Official
https://twitter.com/hagenhantz
:video_game: DC:Discord
Site: https://www.woo3.xyz
Medium: WOO3: A revolution in DAO governance | by Woo3Official | Jul, 2022 | Medium

1 Like

LXDAO SBT Buidler Membership

Requirements

  • We have criteria for Buidlers to join LXDAO
    • Must be a Web3 buidler
      • Believes Web3 can bring a better world
      • Has some skills to contribute to LXDAO
    • Must have enough energy to contribute
      • 5+ hours/week for any buidler
      • 20+ hours/week if you are in a project or core team
    • In line with our Core Values
      • Want to buidl some valuable and meaningful projects in Web3
  • The roles and membership cannot be transferred.
    • We have a vote for accepting a new buidler. After we approved, the membership should not be transferred
    • The membership should be able to
      • Conferred by LXDAO vote
      • Revoked by LXDAO vote or revocation by the owner (quit LXDAO)
      • Transferred after LXDAO community recovery
        • Only if the wallet’s private key leaked
  • Save buidlers information on the blockchain
    • Public contacts and social media (on-chain)
    • Private contacts, like private email (off-chain)
    • Involved Events and Projects (on-chain)
    • Contribution and Points (on-chain)
    • Part of the information can only be managed by LXDAO (on-chain)
      • official granted roles: core, project manager, investor, etc
  • The gas fee as lower as possible and compatible with Ethereum will be better
    • As we gonna have a lot of transactions, but mainly for updating a state on the contract

SBT Contract Design

  • Based on ERC721 NFT ERC 721 - OpenZeppelin Docs
  • Override ERC721 transfer API
    • Can be transferred by the contract owner (LXDAO multi-sig)
    • Cannot be transferred by the token owner
  • Provide Burn API
    • Can be burned by the contract owner (LXDAO multi-sig)
    • Can be burned by the token owner
  • Lock state
    • Can be locked by the contract owner for security reasons. After locked, cannot vote, enroll in projects, and update profile
  • Rich metadata on IPFS
    • Basic public data
    • Involved projects
    • Income
      • LX Points
      • Income

Contract Technical Details

Actions Implementations

Issue the SBT
  • Onboarding session ~20min after voted
  • Generated signature by LXDAO
  • Mint the SBT token with the signature
  • Fill in some information and update on-chain data, generate the new metadata, and update in the contract for that SBT
Update profile
  • Update the profile on the LXDAO website
  • Backend API verifies the authorization
    • Is it updated by LXDAO or the token owner?
    • Is it an official managed field?
  • Generate a signature and new metadata JSON file and upload to IPFS
  • Update in contract with the signature
Revoke or Burn the SBT

By LXDAO:

For those buidlers who are not in line with our values anymore, the community can revoke the SBT:

  • Make a proposal and vote for it
  • Burn the SBT

By the token Owner:

For those buidlers who want to quit LXDAO:

  • Burn by themselves
Enroll in a project
  • Submit an application to the Project Manager
  • Project Manager checks and approves the application, PM generates a signature
  • Enroll the project with the signature, will create a new metadata JSON, and update it into the SBT token

SBT Metadata fields

  • name: nickname
  • description
  • image: SBT avatar chosen by the buidler
  • role: buidler, core, investor, project manager, Onboarding Committee. Granted by LXDAO official
  • skills: skill[]
    • name: skill name, like frontend, backend, design, operation, etc
    • level: Junior, Intermediate, Senior
  • interests: DAO, DeFi, solidity, smart contract, frontend, backend, DevOps, etc. It will be used for project matching.
  • contacts: contact[]
    • name: Twitter, telegram, Facebook, phone, website, email, etc.
    • text: Twitter handle, phone number, website URL, email, etc.
  • projects: project[]
    • project_number: 001, 002, etc
    • project_role: project design, project manager, frontend, full-stack, etc.
    • started_at: enroll time
    • ended_at: quit time
  • lxpoints: lxpoint (will be deprecated after LX Tokens is out)
    • value: number
    • reason: text for the reason
  • extra_data: private off-chain data endpoint, passing authorization token (signature) + SBT token id to the API will get the private extra information

Questions

  • Which blockchain? Ethereum or Polygon or others?

SBT Membership Website Design

Application page for new buidlers

This page will tell how LXDAO works, the difference between LXDAO buidlers and members, how to onboard, why to join LXDAO, etc.

There will be a form on the page for the new joiners to fill, like their experiences, GitHub, contacts, understanding of Web3, characteristics, etc.

Application feedback page

After applying, the new joiner will get a trace ID and application status. The onboarding committee will review the application and vote for it.

After the application is approved, the new joiner must make an appointment for the remote onboarding session. During the onboarding session, we will introduce the values, workflow, how to enroll in projects, how to vote for the proposal, etc. Then help the new joiner mint and set up SBT.

LXDAO Buidlers page

After the new joiner is minted and set up SBT, the LXDAO Buidlers page will show their information. We also provide filters for PMs to find candidates to join their projects.

LXDAO Buidler Profile page

The Buidler profile page will show more details about the buidler, including their public on-chain data, involved projects, etc.

Other buidlers will be able to see the private off-chain data of this buidler after connecting the wallet.

The buidlers can also update their profile on the page.

LXDAO Buidler Dashboard

For buidlers, there will be a Dashboard on lxdao.io after connecting the wallet. It will show some information in LXDAO, for example, Events and Projects.

Events:

  • New joiner applications for the committee
  • AMA
  • Webinar or Spaces
  • Proposals

Projects:

  • List new projects
  • List the projects you are working on
  • Some information on the project, like codebase, chat group, PM, teammates, etc

For the onboarding committee members, they will be able to see the application list page and handle the application:

More links

Draft Figma:

Design files:

Review and discuss session: Join conversation

Time: UTC+8 16:00PM 7 Aug

  • In this system, the most critical point should be each member’s project experience. So, how to ensure that each person’s project experience is real? It maybe a bit hasty if the decision is made by the PM only, which makes the PM’s power very large. Would it be better to change it to multiple signatures?

  • In addition, for the chain, it is better to use Ethereum in the early stage, after all, this will also make the SBT more valuable.

2 Likes

In this system, the most critical point should be each member’s project experience.

Speaking about the project experience. First, not everyone can become PM. The PM should have some experience working on some projects in LXDAO, and people will be able to see the feedback from existing projects the PM was involved.

Because we have a brainstorming phase before making a project proposal, at that phase, those people might know each other and have some consensus about the project. When PM picks up teammates, they will pick those active in the topic first.

It maybe a bit hasty if the decision is made by the PM only, which makes the PM’s power very large.

We have a brainstorming phase to discuss the project idea and design. So the proposal will have a clear big picture of the project, and the community will vote for it. PM is more like an executor to assemble some people and make that happen. If there are some big changes, PM should point them out in the Weekly and listen to the community. Later, the project should have an internal test phase, invite the community to run some tests, and give feedback. The community can vote to change if the PM did a bad job.

Would it be better to change it to multiple signatures?

I suggest keeping as simple as possible in the beginning unless we find we have to do it or add more mechanisms. Because for the development experience, on the other hand, no one like low performance, arguing every day but no progress, PM as the person who is familiar with the project the most and good at project management, should have the power to make decisions and convince the teammates to accept it. If most of the teammates do not accept it, but PM insists, the community can vote.

In addition, for the chain, it is better to use Ethereum in the early stage, after all, this will also make the SBT more valuable.

Yeah, should be using Ethereum. The gas fee should be fine, as we save information on the metadata and just update the state in the contract.

For this type of requirement, we can use tools like https://aragon.org/aragon-client to vote and trigger the contract, rather than using LXDAO multi-sig.

Community meeting notes and changes:

We should provide more states of the SBT rather than burn them. For example, in a normal company, when people quit, we can search their account, but it shows “quit” status, and they cannot log in and use it anymore. But the history and data should be keeping.

But if one day they want to get back, the company can reactivate their staff account.

Changes:

  • Remove Burn API
  • Rename the ‘lock’ state to the ‘status’ enum state, and describe the status of the current buidler. It can be: active, suspended, archived

For the metadata, we can add more fields to describe the relationship of this buidler, for example, who onboarded, who invited, who voted for this buidler, etc.

Changes: lower priority

  • Add a new field in the metadata for the relationships, like adding a connections field

The connection object will have:

  • SBT Token ID
  • Relationship: onboarding | buddy | follower, etc

Others:

Take a look at https://tableland.xyz/, it will help query data from blockchain directly.

LXDAO SBT membership system is officially online!

I’m glad to be the first LXDAO Buidler!

2 Likes

I need crypto platform.

1 Like