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
- Must be a Web3 buidler
- 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
- type: URI
- data: https://lxdao.io/api/buidler-info
Questions
- Which blockchain? Ethereum or Polygon or others?