Wallets

Wallets are the main entity of the API. They contain the subject's DIDs credentials and handle credential exchanges (See next section).

Wallet creation can happen implicitly after creating an organization or a request to create a DPP. However explicit wallet creation is still possible.

Creating a wallet triggers the creation of an identifier (DID) which is assigned to that wallet.

Identifiers

Identifiers (DIDs) are unique identifiers that are used to identify a wallet. They are created using the method specified in the wallet profile. A keypair is generated and the public key is used to create the DID.

DIDs are used to identify wallets and are used in credential exchanges and to issue credentials.

Create an Organization Wallet

The creation of an organization can be done using the following endpoint:

POST: {{host}}/organizations
DATA:
{
    "name": "ACME",
    "externalId": "acme-abcdef1234",
    "data": {
        "walletProfileId": "<string - wallet profile UUID - should be an organization profile>"
    }
}

Creating an organization triggers the creation of an organization wallet with the profile ID defined in data.walletProfileId.

Note: There currently no checks in place to check if the given profile is an organization profile

Note: The created wallet will receive the name <organization.name> Organization Wallet”

Note: When creating a wallet, an identifier is automatically generated using the same DID method specified in the profile.

Explicit Wallet Creation

Creating a wallet be done using the following endpoint:

POST: {{host}}/wallets?organizationId={{organizationId}}
DATA:
{
    "profileId": "<string - uuid of the profile>",
    "name": "<string - display name of the profile>"
    "tags": "<array - tags to be added to the wallet. Tags are used to define the type of the wallet and also for filtering or searching for wallets>",
}

Creating an Identifier

It is possible to create an Identifier for a wallet using the following endpoint

POST: {{host}}/identifiers?organizationId={{organizationId}}
DATA:
{
    "walletId": "<string - UUID of the wallet, owner of the DID>",
    "method": "<string - did method of the identifier>",
    "alias": "<string - alias of the did in the keystore>"
}

Note: **The created identifier will replace the current wallet identifier as default identifier, meaning that newly issued credentials by that wallet will be signed with the new DID. However the old identifier will still be assigned the wallet.

Was this page helpful?