🔰Using LearnCard to Interact with a CHAPI Wallet
Learn How to Store an Issued Verifiable Credential into a CHAPI compliant Wallet with LearnCard!
Overview
Using CHAPI, Wallet software can register itself for a user, allowing it to become easily discoverable by a third party that would like to send a credential into that Wallet software. The result is a shared interface where issuers can simply send a credential off to CHAPI and allow the wallet to take care of everything else. The wallet software can then report back to the issuer whether or not it successfully stored the credential.
Let's use LearnCard to build out the issuer side of this flow together!
Instantiating a LearnCard
As an issuer, we will need an identity in the form of a did. LearnCard allows us to determinstically create a did from a simple string. In a real application, you will want to use a true random source to generate one of these strings, and then store it somewhere very secure. However, for the purposes of this documentation, we will get by with the string 'a'
😉
Generating a Credential
Before we can ask a wallet to store a credential, we first need to generate a credential! There are many different ways to go about this, but LearnCard
allows us to create a test credential rather easily!
Option 1: Easy DID Auth
Now that our credential is made, we can easily use CHAPI/DIDAuth to ask for the user's did
, sign the credential, and store it all in one go!
Reading the Result
The result
object is a simple object with a success
boolean, and a reason
string. The four possible values it can hold, as well as what they represent are below:
{ success: true }
The credential was successfully stored
{
success: false,
reason: 'did not auth'
}
The user rejected the DIDAuth request
{
success: false,
reason: 'auth failed verification'
}
The user's wallet software failed the verification challenge
{
success: false,
reason: 'did not store'
}
The user passed DID Authentication, but did not store the credential
Option 2: Skipping DID Auth
Signing a Credential
With our credential generated, we will need to sign it, which will allow verifying parties to prove that this credential actually came from our did!
Generating/Signing a Presentation
With our credential signed and generated, we will now need to create a presentation that we can send off via CHAPI. This presentation will store the credential inside of it, and we can easily create and sign one with LearnCard!
Storing a Presentation with CHAPI
Now that we've got our presentation made, we can send it off to CHAPI and ask a wallet to store it!
Last updated