Tutorial Purpose

This is a tutorial to help you learn the IBM Verify Credentials Agency Account APIs.

You will learn how to manage agents, establish relationships, issue and verify credentials, and more.

Terms and Resources

An IBM Verify Credentials Agency Account will be referred to as simply an account.

Swagger is a specification for documenting REST APIs. It specifies the format (URL, method, and representation) to describe REST web services. The latest Swagger documentation for the account APIs is available here.

Tutorial Overview

This tutorial will help you learn the basic concepts necessary for working with agents.

This section will give you a high-level overview of what you will learn, but you don't you need to follow the links just yet. At the end of this section, you will be led step-by-step through this tutorial.

You will begin by creating an account. Your account may contain multiple agents. Each agent manages a single wallet which contains cryptographic material associated with a single identity (e.g. a person, organization, thing, etc). As a normal end user, you will typically only need a single agent; however, as a developer, you may want to create multiple agents in order to simulate and test flows involving multiple identities.

The Managing Agents section describes how to create, update, list, and delete agents.

The Managing Invitations section describes how two agents begin to interact with one another. A long-term relationship between two agents can be established as described in the Connection Management section, or short-term interactions are also possible using invitations.

The two most common interactions are issuance and verification.

  1. Issuance

    One agent issues a credential to another agent.

    For example, an agent associated with a DMV may issue a credential (i.e. your digital driver's license) to your agent.

    In order for an agent to issue credentials, it must first perform issuer initialization.

    The issuance section describes how to issue credentials.

  2. Verification

    One agent verifies a proof from another agent. A proof is generated from credentials held in the wallet of an agent.

    For example, an agent associated with a car rental agency verifies that you are at least 25 years old according to the DMV credential that is in the wallet of your agent. This verification process uses zero-knowledge proof technology to minimize what one agent is required to share with another.

    In order for an agent to verify a proof, it must first perform verifier initialization.

    The verification section describes how to perform verification.

In this tutorial, you will create three agents named user1, issuer1, and verifier1. You will use the curl command to interact with these agents in order to perform issuance, verification, and more.

Before you begin, you must setup your development environment.