Verifiable Credentials Demonstration: ConfBook
In March 2019, the VON team created AgentBook to demonstrate the interoperability of independently created agents. These agents were able to successfully establish DID-based communication channels. ConfBook Attendance Issuer (ConfBook), extends the core of AgentBook with the ability to exchange verifiable credentials. Even more exciting, through collaboration with Streetcred.id and Spark New Zealand, we have a mobile agent.
In this demo, you’ll see how ConfBook is used to issue a verifiable credential asserting a requester is a conference attendee based on their verified email address. The following is a guide to get started with the ConfBook demo. Grab your phone and let’s get started!
The goal of this demo is to show how Hyperledger Aries-based compatible agents can be used to:
- set up agent-to-agent communication
- verify and issue credentials
- send proofs
Credentials contain a set of claims that refer to a qualification, achievement, personal quality, or aspect of an entity that can be used to establish trust online in countless contexts—including identity. Using a mobile agent called Streetcred: Identity Agent (for Apple or Android), you can collect credentials (in particular, your email and conference attendance record).
This demo steps you through the process of obtaining two credentials—that’s pretty cool in itself. However, keep in mind that by obtaining verifiable credentials and establishing connections with your peers at the conference, you are demonstrating the power of self-sovereign identity. Your credentials prove things about you so others know for certain they are talking to you! Conversely, when you connect to others and they prove who they are, you can be certain they are who they say they are. That is powerful.
The following illustration shows the process involved in obtaining verifiable credentials from the two services (Email Verification & Issuing Service and ConfBook Attendance Verification & Issuing Service) built for this demo. The two services are typical enterprise-style applications but in addition, they each have their own agent and a public DID, which enables them to issue verifiable credentials.
- On your mobile device, install the Streetcred Identity Agent app from the Apple App Store or Google Play Store.
- Initialize the Streetcred app and then configure it to use the “BCovrin Test” instead of the default “Sovrin” from the app “Settings” screen.
- Get an email address verifiable credential: https://email-verification.vonx.io
- Get a conference (Hyperledger Global Forum) attendee verifiable credential: https://confbook.vonx.io
Installing Streetcred and Creating Your Agent
To get started, you’ll need a compatible agent. For these instructions, you’ll need to get the Streetcred mobile agent . It’s possible that other agents could be used for this demonstration, but we’ll only cover Streetcred here.
- Go to one of the following URLs and download/install the Streetcred app (“Streetcred Identity Wallet**”) **onto your phone or tablet from the Apple App Store or Google Play Store.
- Open Streetcred. The first time you run Streetcred you will be asked to setup a few things to get started.
- Click Create My Agent and follow the prompts.
- For this demo, the Streetcred app must use the BC Government’s BCovrin Test Hyperledger Indy network instance. To set the network, to go to the Streetcred Home tab and tap the hamburger icon (horizontal lines, top left) to go to the app’s settings screen. On the settings screen, edit the Network Selection setting and select “BCovrin Test.”
Getting Your Email Credential
With Streetcred up and running, the next thing you’ll do is get your email verifiable credential.
To do this:
- In a browser, go to the following URL, read the instructions, input your email address and click Submit. \ https://email-verification.vonx.io \
You will receive an email from
email@example.com with an embedded one-time use link back to the Email Verification Service.
- Click on the link provided in the email. This does two things:
- Opens up a page on the Email Verification site with an invitation (in various forms) to connect to the Email Verification Service’s agent.
- Proves to the Email Verification Service that the current user controls the email address to which the message was sent.
**NOTE: The latter point is important—this is the basis for the verifiable credential that the service will issue to the agent that connects to it via the invitation.
The following window is displayed:
- Use one of the invitations:
- If the invitation is on your mobile device, click the link to open the Streetcred app.
- If the invitation is on a desktop device, use your Streetcred app to scan the QR code.
- If you are using some other agent, copy the invitation and paste as appropriate into that agent.
- In the Streetcred app the following window is displayed:
- Click Accept to complete the connection. \ You will receive a notification—the Email Verification Service has sent you an offer for a verifiable credential, and the website will update to show your progress.
- Click the Credentials icon to see your email credential. It might take a few moments to arrive.
Whoohoo!! You have your first verifiable credential and you can prove ownership of your email address whenever it’s needed.
Getting Your Conference Attendance Credential
You have been issued one credential—let’s use it to get another. This credential is only for attendees of the conference (Hyperledger Global Forum), so you’ll have to provide a verified email address that will be checked against the attendee list. Meet both of these requirements and you’ll get your conference attendee credential.
- In a browser, go to ConfBook: https://confbook.vonx.io.
- Click Connect to ConfBook and connect to ConfBook as you did with the email verification service.
- Once you have connected, you will be asked for proof of your email verification credential. In Streetcred, that will look like this:
- On the ConfBook website, you will be asked for your name and to select the conference you attended. If you are doing this all on a mobile phone, switch back to the website in your browser from the Streetcred app.
- Once you submit that data and you will again go through the flow of being issued a credential, just like when you got your verified email credential.
- In the Streetcred app, you will be notified of an offer for a conference attendee verifiable credential—just like when you received your verified email credential.
There you go! You have been issued a credential, had it verified and based on that verification, been offered another credential. You should now have two credentials in your wallet:
ConfBook was coordinated by the VON team of the Government of British Columbia. The following GitHub repositories were created/used as the basis of the ConfBook demo:
- The Streetcred identity agent is based on the open source aries-framework-dotnet project.
- The email verification service and ConfBook are instances of the open source aries-cloud-agent-python (ACA-Py) project.
- The repos for the services are:
- The protocols used in the demo are part of Aries Interop Profile 1.0, as defined in the Aries RFC repository.