DAO & Communities
Using LearnCard to supercharge your DAO or community!
If you participate in a DAO, and are interested in understanding how LearnCard can augment your community—you've come to the right place!
This guide will walk you through everything you need to get started. No prior experience required.
First things first: you need to identify your use case. Why are you interested in using LearnCard in the first place?
- Achievements: you want to recognize your members when they do cool or significant stuff in your community. Start here.🏆
- Courses: you want to issue skills, learning certificates, achievements, and more when members of your community progress through your curriculum. Start here.🎓
- Endorsements: you want to enable or accept peer-to-peer endorsements within your community. Start here.👍
- Gated Content: you want to unlock content or channels in your community based on the achievement of specific credentials. Start here.🔓
- Hiring: you want to verify skills, endorsements, and reputation when hiring people in and outside of your community. Start here.🤝
We'd love to hear to hear from you! Share your story in our Github Discussions, or send us an email at [email protected]—we'd love to feature your work 🙌.
These are some of the most common and quickest ways to get started.
Great! You've decided that you would like to issue credentials in your community—achievements, skills, learning certificates, endorsements, identities, etc.
Flip through the tabs to learn more about each option:
If your community already lives in Discord, one of the easiest ways to get started is to use our Discord bot.
If you haven't already, follow the instructions to get the Discord bot setup in your community, then come back here!
For peer-to-peer credential issuing, it's often easy to use the LearnCard app itself!
If you haven't already, get setup with LearnCard, then return here!
If your community heavily uses Metamask, there are ways to enable issuance flows through Metamask.
Experimental: Metamask Snaps is in early beta with Consensys. Snaps, to date, can only be installed in the experimental Metamask Flask - this is only required for issuing credentials. Normal Metamask users may use regular Metamask to claim credentials.
If you haven't already, follow the instructions to get Metamask setup in your community, then come back here!
If you are using the VCTemplatesPlugin (enabled by default with LearnCard), there are a variety of default credential templates to help you get started quickly! Flip through the tabs to see some default options, and what information you will need to compile:
There are 4 main fields you will want for each achievement:
- 1.Title: the main way of identifying your achievement e.g. "Achievement Unlocked"
- 2.Description: common description of what this achievement represents.
- 3.Narrative: description of how someone earns this achievement.
- 4.Image: a picture representation of this achievement.
// JSON Representation of Achievement
"title": "Achievement Unlocked",
"description": "This is a description",
"narrative": "Earned by completing a basic tutorial on our website.",
Check out the VC-Templates plugin for more options:
/create-credentialcommand. It will open a modal and walk you through creating a credential template, with first-class support for achievements, learning completions, skills, and IDs.
/send-credential @<user>command to start issuing credentials to your members.
It will prompt you to select one of your credential templates from Step 3. Then, the LearnCard bot will send a direct message to your community member with steps on how they can claim their shiny new credential!
In a community platform such as a DAO, you want to streamline the verification process of members' credentials for various use cases like achievements, courses, endorsements, gated content, proof of membership, hiring, and identity & KYC. You can achieve this using the CHAPI (Credential Handler API) and the LearnCard SDK. The following steps outline how an App Developer can accept and verify credentials in their platform using CHAPI and LearnCard SDK.
- 2.Construct a Verifiable Presentation Request using the desired credential types (e.g., AchievementCredential for recognizing members' achievements).
- 3.Wrap the Verifiable Presentation Request in a Web Credential Query, allowing your platform to request credentials from a user's digital wallet.
- 4.Request a Web Credential using the
navigator.credentials.get(credentialQuery)function. The user will be prompted to present the requested credentials from their digital wallet.
- 5.Handle null results, which can occur when the user denies the request or does not have a wallet installed. As a developer, decide how to handle these situations by offering fallback mechanisms, retry options, or alternate paths.
- 1.After receiving the credentials from the user's wallet, use the LearnCard SDK's
learnCard.invoke.verifyCredential(signedVc)function to verify the received credentials.
- 2.Check the results of the verification to ensure the validity of the credentials. The result will contain an array of objects with status, check, and message properties.
- 3.If the verification is successful, proceed with the next steps specific to the use case (e.g., granting access to gated content or issuing proof of membership). Otherwise, handle the failed verification case by either requesting the user to provide valid credentials or implementing any other suitable action.
By integrating CHAPI and LearnCard SDK into your community platform, you can create a seamless and secure process for accepting and verifying member credentials for various use cases. This will not only streamline the verification process but also provide added security and trust in the credentials presented by the members, enhancing the overall community experience.
Did we miss your use case? We'd love to chat and hear what you are working on to see how we can help. Post a question to our developer community, the Super Skills League, or shoot us an email at [email protected].
Sometimes you need more than the basic, out-of-the-box flows because you have a complex community or use case. That's great! All of our tooling is fully pluggable and open-source, so with a little elbow grease and developer time, you should be able to accomplish your goals.
Does your community use a platform not yet supported? Let's change that:
Do you have a unique requirement, such as supporting a specific DID method, protocol, or system? You might need to build your own plugin:
These features aren't yet available, but they are coming soon on our roadmap—never to early too get excited!
- Earn-and-learn: you want to incentivize learning in your community on a specific topic, or even incentivize people to learn about your community.💸
- Gig Micropayments: smart contract templates for issuing micropayments with proof of a verifiable credential, i.e. streaming payments and proof-of-work. Credential the actual tasks connected to a todo list; tracked with PVCs feeds reputation, ability to access things, ability to get paid autonomously.💰