Technical overview
Overview
SkillWallet ID comes as an Upgradable, Non-Transferable NFT (U-NT-NFT). Each user can create a SkillWallet within a community. SkillWallet allows the users to own their identity and grow it with them while collaborating in web3 communities.
Design
As a user, a SkillWallet NFT ID can be minted only by joining a Community - and by holding SkillWallet, individuals are part of a Community at all times.
SkillWallet.sol is an ERC721 contract that issues Identity tokens.
The SkillWallet stores information about:
Community history (previous/current DAOs)
Skills, Contributions & Roles
Nickname (pseudonymous), Avatar (picture, NFT, ...)
PubKey for OSM.
Name, Avatar, and Skills/Roles are stored as metadata of the SkillWallet.
In order to integrate SkillWallet for your own community, you need to sign the Partners Agreement for native platform integration.
Creation
Users can create an SW through our integrators platform by selecting a role and experience, name and, avatar. The users can choose to create their SkillWallet with Torus or Metamask accounts. The SkillWallet is created as NFT owned by the user, but it's inactive until they tie it to their mobile phone by downloading the SkillWallet App and scanning an activation QR code. At this point, the user is already a SkillWallet holder and they own their identity.
By tieing the SkillWallet to their mobile phone, the users:
Activate their SW and now it's entirely usable
Activate the Off-chain signature mechanism
Have a pretty UI-friendly way to see their SkillWallet and its growth
Create SW flow
The user can pick either Metamask or Torus as a wallet. They customize their skill wallet and then they're prompted to scan the activation QR code. They scan it through the SW mobile app and their SW is officially activated.
When the user scans the QR code, the mobile app generates a public/private key pair and stores the private key locally. It calls the backend to store the public key on-chain and associate it to the according tokenID.
The private key is stored in encrypted storage on the mobile device.
When the SW is getting activated the mobile app signs a nonce and sends it to the SkillWallet.sol by using a proxy REST API. The SkillWallet.sol calls a chainlink external adapter for recovering the public key from the signature. If the public key is found and is valid, the SkillWallet.sol contract activates the users' NFT.
Last updated