Skip to main content

Wallet API

Truvity Wallet API (1.0.0)

Download OpenAPI specification:Download

Introduction

The Truvity Wallet API provides endpoints to manage Self-Sovereign Identity (SSI) Wallets, Verifiable Credentials, Verifiable Presentations, and interactions between different Wallets.

You can check out some examples on how to call this API at Working with the API

Some functionalities include:

  • Creating a wallet
  • Issuing a credential
  • Present a credential to another wallet

Authentication

Authentication with the Truvity platform uses API keys. You can get an API key from the Admin Panel.

API Key

API keys used to authorize access to Truvity APIs, managed at Admin Panel.

Security Scheme Type: API Key
Header parameter name: X-API-KEY

Entity

Operations related to managing entities, which represent individuals or organizations in the SSI ecosystem and have unique decentralized identifiers (DIDs) that allow them to interact and share verifiable credentials with other entities.

Returns a list of Entities

This endpoint returns a list of entities that have being previously created.

Authorizations:
API Key
query Parameters
labelSelector
string (LabelSelector)

The value for label selector follows the Kubernetes pattern as it follows implementation. Examples:

Equality-based requirement:
release=sc-29364,app.kubernetes.io/component!=gallery
Set-based requirement:
release in (sc-29364),kubernetes.io/component notin (gallery)
Equality and set-based requirements combined: release in (sc-29364),app.kubernetes.io/component=gallery
Set-based exists requirement:
!release (attribute not exists) or release (attribute exists)

Caution: For both equality-based and set-based conditions there is no logical OR (||) operator. Ensure your filter statements are structured accordingly.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve an Entity

Endpoint to retrieve an entity by its DID (Decentralized Identifier).

Authorizations:
API Key
path Parameters
entityDid
required
string (EntityDid)
Example: did:key:zDnaeTXk5sZm29ZnCZMgCPpjsxwgKJFjQC68SeUw53emVZbt9

The DID (Decentralized Identifier) of the entity to be retrieved.

Responses

Response samples

Content type
application/json
{
  • "Created": "2023-08-11T15:08:01Z",
  • "EntityDid": "did:key:zDnaeTXk5sZm29ZnCZMgCPpjsxwgKJFjQC68SeUw53emVZbt9",
  • "MetaData": {
    },
  • "Revision": 1,
  • "Updated": "2023-08-11T15:08:01Z"
}

Update an Entity

Endpoint to update and entity by its DID (Decentralized Identifier). In other to update the entity the revision of the entity must be provided. If the revision does not match an error may be returned.

Authorizations:
API Key
path Parameters
entityDid
required
string (EntityDid)
Example: did:key:zDnaeTXk5sZm29ZnCZMgCPpjsxwgKJFjQC68SeUw53emVZbt9

The DID (Decentralized Identifier) of the entity to be retrieved.

query Parameters
revision
required
integer
Example: revision=1

the current revision of the entity to be updated. This must match or an error may occur.

Request Body schema: application/json

JSON request body used to update the entity. The request body may contain the following properties:

Properties:

  • MetaData: Additional information about the entity.
required
object (MetaData)
object

Provides a key-value container for data that may be used for categorization. Symbols : and # are not permitted.

object

Provides a key-value container for any custom data the API user may need to store along with the associated object. Symbols : and # are not permitted.

Responses

Request samples

Content type
application/json
{
  • "MetaData": {
    }
}

Response samples

Content type
application/json
{
  • "EntityDid": "did:key:zDnaeTXk5sZm29ZnCZMgCPpjsxwgKJFjQC68SeUw53emVZbt9",
  • "MetaData": {
    },
  • "Revision": 0
}

Create an Entity

Endpoint to create a new entity. The entity is created with a DID (Decentralized Identifier).

Authorizations:
API Key
Request Body schema: application/json
object (MetaData)
object

Provides a key-value container for data that may be used for categorization. Symbols : and # are not permitted.

object

Provides a key-value container for any custom data the API user may need to store along with the associated object. Symbols : and # are not permitted.

Responses

Request samples

Content type
application/json
{
  • "MetaData": {
    }
}

Response samples

Content type
application/json
{
  • "EntityDid": "did:key:zDnaeTXk5sZm29ZnCZMgCPpjsxwgKJFjQC68SeUw53emVZbt9",
  • "MetaData": {
    },
  • "Revision": 0
}

Wallet

Operations related to managing SSI wallets, which store and manage digital credentials, private keys, and other identity-related information for individuals or entities in a self-sovereign manner.

Creates a Wallet

This endpoint is used to create a new wallet for an entity.

Authorizations:
API Key
query Parameters
entityDid
required
string (EntityDid)
Example: entityDid=did:key:zDnaeTXk5sZm29ZnCZMgCPpjsxwgKJFjQC68SeUw53emVZbt9

The DID (Decentralized Identifier) of the entity associated with the wallet.

Request Body schema: application/json
object (MetaData)
object

Provides a key-value container for data that may be used for categorization. Symbols : and # are not permitted.

object

Provides a key-value container for any custom data the API user may need to store along with the associated object. Symbols : and # are not permitted.

Responses

Request samples

Content type
application/json
{
  • "MetaData": {
    }
}

Response samples

Content type
application/json
{
  • "EntityDid": "did:key:zDnaeTXk5sZm29ZnCZMgCPpjsxwgKJFjQC68SeUw53emVZbt9",
  • "MetaData": {
    },
  • "Revision": 1,
  • "WalletDid": "did:key:wDnaeU8SMAzx1hNS9UNa2fftbsJRGAvSaAyd3SDNCfJjx5dRc"
}

Retrieves a Wallet

This endpoint retrieves a wallet by its DID (Decentralized Identifier).

Authorizations:
API Key
path Parameters
walletDid
required
string (WalletDid)
Example: did:key:wDnaeU8SMAzx1hNS9UNa2fftbsJRGAvSaAyd3SDNCfJjx5dRc

The DID (Decentralized Identifier) of the wallet to be retrieved.

query Parameters
entityDid
required
string (EntityDid)
Example: entityDid=did:key:zDnaeTXk5sZm29ZnCZMgCPpjsxwgKJFjQC68SeUw53emVZbt9

The DID (Decentralized Identifier) of the entity associated with the wallet.

Responses

Response samples

Content type
application/json
{
  • "Created": "2023-08-11T15:08:01Z",
  • "EntityDid": "did:key:zDnaeTXk5sZm29ZnCZMgCPpjsxwgKJFjQC68SeUw53emVZbt9",
  • "MetaData": {
    },
  • "Revision": 1,
  • "Updated": "2023-08-11T15:08:01Z",
  • "WalletDid": "did:key:wDnaeU8SMAzx1hNS9UNa2fftbsJRGAvSaAyd3SDNCfJjx5dRc"
}

Updates a Wallet

This endpoint is used to update a wallet represented by the walletDid parameter.

Authorizations:
API Key
path Parameters
walletDid
required
string (WalletDid)
Example: did:key:wDnaeU8SMAzx1hNS9UNa2fftbsJRGAvSaAyd3SDNCfJjx5dRc

The DID (Decentralized Identifier) of the wallet to be retrieved.

query Parameters
entityDid
required
string (EntityDid)
Example: entityDid=did:key:zDnaeTXk5sZm29ZnCZMgCPpjsxwgKJFjQC68SeUw53emVZbt9

The DID (Decentralized Identifier) of the entity associated with the wallet.

revision
required
integer
Example: revision=1

The current revision number of the wallet to be updated. Must match the current revision number of the wallet.

Request Body schema: application/json

The request body must contain the following properties:

  • MetaData - The metadata to update the wallet with.
required
object (MetaData)
object

Provides a key-value container for data that may be used for categorization. Symbols : and # are not permitted.

object

Provides a key-value container for any custom data the API user may need to store along with the associated object. Symbols : and # are not permitted.

Responses

Request samples

Content type
application/json
{
  • "MetaData": {
    }
}

Response samples

Content type
application/json
{
  • "EntityDid": "did:key:zDnaeTXk5sZm29ZnCZMgCPpjsxwgKJFjQC68SeUw53emVZbt9",
  • "MetaData": {
    },
  • "Revision": 1,
  • "WalletDid": "did:key:wDnaeU8SMAzx1hNS9UNa2fftbsJRGAvSaAyd3SDNCfJjx5dRc"
}

Lists all Wallets

This endpoint lists all wallets that are associated with the specified entity.

Authorizations:
API Key
query Parameters
entityDid
required
string (EntityDid)
Example: entityDid=did:key:zDnaeTXk5sZm29ZnCZMgCPpjsxwgKJFjQC68SeUw53emVZbt9

The DID (Decentralized Identifier) of the entity to retrieve wallets for.

labelSelector
string (LabelSelector)

The value for label selector follows the Kubernetes pattern as it follows implementation. Examples:

Equality-based requirement:
release=sc-29364,app.kubernetes.io/component!=gallery
Set-based requirement:
release in (sc-29364),kubernetes.io/component notin (gallery)
Equality and set-based requirements combined: release in (sc-29364),app.kubernetes.io/component=gallery
Set-based exists requirement:
!release (attribute not exists) or release (attribute exists)

Caution: For both equality-based and set-based conditions there is no logical OR (||) operator. Ensure your filter statements are structured accordingly.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Verifiable Credential

Operations related to issuing and verifying verifiable credentials, which are tamper-proof, cryptographically secure digital credentials that enable users to prove claims about themselves without revealing unnecessary identity information.

Creates a draft Verifiable Credential

This endpoint allows the creation of a Verifiable Credential for Self-Sovereign Identity (SSI). Verifiable credentials are digital, tamper-proof credentials that can be issued, shared, and verified independently by individuals or entities, enhancing user privacy and data ownership.

Authorizations:
API Key
query Parameters
walletDid
required
string (WalletDid)
Example: walletDid=did:key:wDnaeU8SMAzx1hNS9UNa2fftbsJRGAvSaAyd3SDNCfJjx5dRc

The DID (Decentralized Identifier) of the wallet that the credential is being created in.

entityDid
required
string (EntityDid)
Example: entityDid=did:key:zDnaeTXk5sZm29ZnCZMgCPpjsxwgKJFjQC68SeUw53emVZbt9

The DID (Decentralized Identifier) of the entity creating the credential.

Request Body schema: application/json

Request body containing the verifiable credential draft data represented in JSON-LD format, along with optional MetaData to provide additional semantics and context about the created credential. JSON-LD allows for structured, self-descriptive data with linked semantics, promoting interoperability in Self-Sovereign Identity (SSI) systems. The MetaData, if provided, can include specific information such as the issuer, issuance date, and other relevant details for the verifiable credential.

JsonLd
string <byte> (JsonLd)

JSON-LD representation of data with linked semantics.

object (MetaData)

Responses

Request samples

Content type
application/json
{
  • "JsonLd": "VHJ1dml0eSBsZWFkZXJzIGluIFNTSSBhbmQgZGlnaXRhbCBpZGVudGl0eS4=",
  • "MetaData": {
    }
}

Response samples

Content type
application/json
{
  • "JsonLd": "VHJ1dml0eSBsZWFkZXJzIGluIFNTSSBhbmQgZGlnaXRhbCBpZGVudGl0eS4=",
  • "Credential": {
    }
}

List Credentials

This endpoint is used to list verifiable credentials. Verifiable credentials are digitally signed claims or attributes issued to subjects (entities) by issuers.

Authorizations:
API Key
query Parameters
walletDid
required
string (WalletDid)
Example: walletDid=did:key:wDnaeU8SMAzx1hNS9UNa2fftbsJRGAvSaAyd3SDNCfJjx5dRc

The DID (Decentralized Identifier) of the wallet used to retrieve the verifiable credentials.

entityDid
required
string (EntityDid)
Example: entityDid=did:key:zDnaeTXk5sZm29ZnCZMgCPpjsxwgKJFjQC68SeUw53emVZbt9

The DID (Decentralized Identifier) of the entity associated with the verifiable credentials.

getBodies
boolean
Example: getBodies=true

Indicates whether the verifiable credential bodies should be returned.

queryMode
string (QueryMode)
Enum: "Held" "Presented" "All"
Example: queryMode=All

The query mode used to retrieve the verifiable credentials.

state
Array of strings (State)
Items Enum: "draft" "issued" "abandoned"
Example: state=draft
labelSelector
string (LabelSelector)

The value for label selector follows the Kubernetes pattern as it follows implementation. Examples:

Equality-based requirement:
release=sc-29364,app.kubernetes.io/component!=gallery
Set-based requirement:
release in (sc-29364),kubernetes.io/component notin (gallery)
Equality and set-based requirements combined: release in (sc-29364),app.kubernetes.io/component=gallery
Set-based exists requirement:
!release (attribute not exists) or release (attribute exists)

Caution: For both equality-based and set-based conditions there is no logical OR (||) operator. Ensure your filter statements are structured accordingly.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Verifies the Verifiable Credential

This endpoint allows the verification of the Verifiable Credential for Self-Sovereign Identity (SSI). Verifiable credentials are digital, tamper-proof credentials that can be issued, shared, and verified independently by individuals or entities, enhancing user privacy and data ownership.

Authorizations:
API Key
Request Body schema: application/json

Request body containing the verifiable credential data represented in JSON-LD format. JSON-LD allows for structured, self-descriptive data with linked semantics, promoting interoperability in Self-Sovereign Identity (SSI) systems.

JsonLd
required
string <byte> (JsonLd)

JSON-LD representation of data with linked semantics.

Responses

Request samples

Content type
application/json
{
  • "JsonLd": "VHJ1dml0eSBsZWFkZXJzIGluIFNTSSBhbmQgZGlnaXRhbCBpZGVudGl0eS4="
}

Response samples

Content type
application/json
Example
{
  • "Code": "EINVALIDREQUEST",
  • "Message": "Invalid Request"
}

Delete a verifiable credential by its DID

This endpoint allows the deletion of a specific verifiable credential based on its credential DID (Decentralized Identifier).

Authorizations:
API Key
path Parameters
credentialDid
required
string (CredentialDid)
Example: did:uuid:11c53e8e-4cbd-4950-a4d4-eebf35482321

The Credential DID of the verifiable credential to be retrieved.

query Parameters
walletDid
required
string (WalletDid)
Example: walletDid=did:key:wDnaeU8SMAzx1hNS9UNa2fftbsJRGAvSaAyd3SDNCfJjx5dRc

The DID (Decentralized Identifier) of the wallet containing the credential.

entityDid
required
string (EntityDid)
Example: entityDid=did:key:zDnaeTXk5sZm29ZnCZMgCPpjsxwgKJFjQC68SeUw53emVZbt9

The DID (Decentralized Identifier) of the entity that owns the wallet containing the credential.

Responses

Response samples

Content type
application/json
Example
{
  • "Code": "ENOTFOUND",
  • "Message": "Resource not found."
}

Issue a Verifiable Credential

This endpoint is used to issue a verifiable credential, and return the updated verifiable credential.

Authorizations:
API Key
path Parameters
credentialDid
required
string (CredentialDid)
Example: did:uuid:11c53e8e-4cbd-4950-a4d4-eebf35482321

The Credential DID of the verifiable credential to be retrieved.

query Parameters
walletDid
required
string (WalletDid)
Example: walletDid=did:key:wDnaeU8SMAzx1hNS9UNa2fftbsJRGAvSaAyd3SDNCfJjx5dRc

The DID (Decentralized Identifier) of the wallet containing the credential.

entityDid
required
string (EntityDid)
Example: entityDid=did:key:zDnaeTXk5sZm29ZnCZMgCPpjsxwgKJFjQC68SeUw53emVZbt9

The DID (Decentralized Identifier) of the entity that owns the wallet containing the credential.

revision
required
integer
Example: revision=1

The revision number of the verifiable credential to be issued.

Request Body schema: application/json
object (WalletReadParameters)

The parameters used to read a Wallet.

EntityDid
required
string (EntityDid)

A Decentralized Identifier (DID) is a unique and decentralized identifier that is used to identify an entity within the SSI ecosystem.

Revision
required
integer
WalletDid
required
string (WalletDid)

A Decentralized Identifier (DID) used to uniquely identify a Wallet.

Responses

Request samples

Content type
application/json
{
  • "Issuer": {
    }
}

Response samples

Content type
application/json
{
  • "CredentialDid": "did:uuid:11c53e8e-4cbd-4950-a4d4-eebf35482321",
  • "Created": "2023-08-11T15:08:01Z",
  • "EntityDid": "did:key:zDnaeTXk5sZm29ZnCZMgCPpjsxwgKJFjQC68SeUw53emVZbt9",
  • "MetaData": {
    },
  • "Revision": 3,
  • "State": "issued",
  • "Updated": "2023-08-11T15:08:01Z",
  • "WalletDid": "did:key:zDnaeU8SMAzx1hNS9UNa2fftbsJRGAvSaAyd3SDNCfJjx5dRc"
}

Updates a Verifiable Credential by its DID

This endpoint enables a verifiable credential to be updated based on its DID (Decentralized Identifier). The requestBody contains the the data that will be used to update the verifiable credential. If the credential is updated successfully, a new revision of the credential will be created.

Authorizations:
API Key
path Parameters
credentialDid
required
string (CredentialDid)
Example: did:uuid:11c53e8e-4cbd-4950-a4d4-eebf35482321

The Credential DID of the verifiable credential to be retrieved.

query Parameters
walletDid
required
string (WalletDid)
Example: walletDid=did:key:wDnaeU8SMAzx1hNS9UNa2fftbsJRGAvSaAyd3SDNCfJjx5dRc

The DID (Decentralized Identifier) of the wallet containing the credential.

entityDid
required
string (EntityDid)
Example: entityDid=did:key:zDnaeTXk5sZm29ZnCZMgCPpjsxwgKJFjQC68SeUw53emVZbt9

The DID (Decentralized Identifier) of the entity that owns the wallet containing the credential.

revision
required
integer
Example: revision=1

The current revision of the credential to be updated. This must match or an error may occur.

Request Body schema: application/json

JSON request body used to update the verifiable credential. The request body may contain the following properties:

Properties:

  • JsonLd: Additional information in JSON-LD format additional information that enriches the verifiable credentials with context and semantics.
  • MetaData: Additional information about the verifiable credential.
JsonLd
string <byte> (JsonLd)

JSON-LD representation of data with linked semantics.

object (MetaData)

Responses

Request samples

Content type
application/json
{
  • "JsonLd": "VHJ1dml0eSBsZWFkZXJzIGluIFNTSSBhbmQgZGlnaXRhbCBpZGVudGl0eS4=",
  • "MetaData": {
    }
}

Response samples

Content type
application/json
{
  • "CredentialUpdateParameters": {
    },
  • "CredentialWriteS3Parameters": {
    }
}

Retrieves a Verifiable Credential by its DID

This endpoint allows the retrieve of a specific verifiable credential based on its credential DID (Decentralized Identifier).

Authorizations:
API Key
path Parameters
credentialDid
required
string (CredentialDid)
Example: did:uuid:11c53e8e-4cbd-4950-a4d4-eebf35482321

The Credential DID of the verifiable credential to be retrieved.

query Parameters
walletDid
required
string (WalletDid)
Example: walletDid=did:key:wDnaeU8SMAzx1hNS9UNa2fftbsJRGAvSaAyd3SDNCfJjx5dRc

The DID (Decentralized Identifier) of the wallet containing the credential.

entityDid
required
string (EntityDid)
Example: entityDid=did:key:zDnaeTXk5sZm29ZnCZMgCPpjsxwgKJFjQC68SeUw53emVZbt9

The DID (Decentralized Identifier) of the entity that owns the wallet containing the credential.

Responses

Response samples

Content type
application/json
{
  • "JsonLd": "VHJ1dml0eSBsZWFkZXJzIGluIFNTSSBhbmQgZGlnaXRhbCBpZGVudGl0eS4=",
  • "Credential": {
    }
}

File

Operations related to uploading and downloading files, which are used to store and share data in the SSI ecosystem.

Returns a URL to download a Wallet File

Generates a secure and temporary AWS pre-signed url to download a wallet file belonging to a particular entity

Authorizations:
API Key
query Parameters
fileDid
required
string (FileDid)
Example: fileDid=did:uuid:87c5ce14-7dfd-4d46-99cd-f2b2bc077b9c

The DID (Decentralized Identifier) of the wallet file to download.

walletDid
required
string (WalletDid)
Example: walletDid=did:key:wDnaeU8SMAzx1hNS9UNa2fftbsJRGAvSaAyd3SDNCfJjx5dRc

The DID (Decentralized Identifier) of the wallet containing the file to download.

entityDid
required
string (EntityDid)
Example: entityDid=did:key:zDnaeTXk5sZm29ZnCZMgCPpjsxwgKJFjQC68SeUw53emVZbt9

The DID (Decentralized Identifier) of the entity owning the wallet file to download.

Responses

Response samples

Content type
application/json

Finalize the upload process for a File

This endpoint is used to finalize the upload process for a file represented by given file DID (Decentralized Identifier).

Authorizations:
API Key
query Parameters
fileDid
required
string (FileDid)
Example: fileDid=did:uuid:87c5ce14-7dfd-4d46-99cd-f2b2bc077b9c

The DID (Decentralized Identifier) of the file.

walletDid
required
string (WalletDid)
Example: walletDid=did:key:wDnaeU8SMAzx1hNS9UNa2fftbsJRGAvSaAyd3SDNCfJjx5dRc

The DID (Decentralized Identifier) of the wallet containing the file.

entityDid
required
string (EntityDid)
Example: entityDid=did:key:zDnaeTXk5sZm29ZnCZMgCPpjsxwgKJFjQC68SeUw53emVZbt9

The DID (Decentralized Identifier) of the entity that owns the wallet containing the file.

Request Body schema: application/json
object (MetaData)
object

Provides a key-value container for data that may be used for categorization. Symbols : and # are not permitted.

object

Provides a key-value container for any custom data the API user may need to store along with the associated object. Symbols : and # are not permitted.

Responses

Request samples

Content type
application/json
{
  • "MetaData": {
    }
}

Response samples

Content type
application/json
Example
{
  • "Code": "ENOTFOUND",
  • "Message": "Resource not found."
}

Get a URL to upload a File

This endpoint is used to generate a pres-igned url to upload a file. To a wallet represents by the wallet DID (Decentralized Identifier).

Authorizations:
API Key
query Parameters
fileDid
string (FileDid)
Example: fileDid=did:uuid:87c5ce14-7dfd-4d46-99cd-f2b2bc077b9c

The DID (Decentralized Identifier) of the file.

walletDid
required
string (WalletDid)
Example: walletDid=did:key:wDnaeU8SMAzx1hNS9UNa2fftbsJRGAvSaAyd3SDNCfJjx5dRc

The DID (Decentralized Identifier) of the wallet containing the file.

entityDid
required
string (EntityDid)
Example: entityDid=did:key:zDnaeTXk5sZm29ZnCZMgCPpjsxwgKJFjQC68SeUw53emVZbt9

The DID (Decentralized Identifier) of the entity that is requesting the upload URL.

Responses

Response samples

Content type
application/json
{}

Verifiable Presentation

Operations related to creating and verifying verifiable presentations, which allow users to selectively disclose specific claims from their verifiable credentials to verifiers in a privacy-preserving manner.

List Verifiable Presentations

This endpoint is used to list verifiable Presentations that are held in a particular wallet.

Authorizations:
API Key
query Parameters
walletDid
required
string (WalletDid)
Example: walletDid=did:key:wDnaeU8SMAzx1hNS9UNa2fftbsJRGAvSaAyd3SDNCfJjx5dRc

The DID (Decentralized Identifier) of the wallet containing the verifiable presentations.

entityDid
required
string (EntityDid)
Example: entityDid=did:key:zDnaeTXk5sZm29ZnCZMgCPpjsxwgKJFjQC68SeUw53emVZbt9

The DID (Decentralized Identifier) of the entity associated with the verifiable presentations.

state
Array of strings (State)
Items Enum: "draft" "issued" "abandoned"
Example: state=draft
labelSelector
string (LabelSelector)

The value for label selector follows the Kubernetes pattern as it follows implementation. Examples:

Equality-based requirement:
release=sc-29364,app.kubernetes.io/component!=gallery
Set-based requirement:
release in (sc-29364),kubernetes.io/component notin (gallery)
Equality and set-based requirements combined: release in (sc-29364),app.kubernetes.io/component=gallery
Set-based exists requirement:
!release (attribute not exists) or release (attribute exists)

Caution: For both equality-based and set-based conditions there is no logical OR (||) operator. Ensure your filter statements are structured accordingly.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a Verifiable Presentation draft

This endpoint is used to create a Verifiable Presentation draft. A Verifiable Presentation draft is a Verifiable Presentation that has not yet been issued.

Authorizations:
API Key
query Parameters
walletDid
required
string (WalletDid)
Example: walletDid=did:key:wDnaeU8SMAzx1hNS9UNa2fftbsJRGAvSaAyd3SDNCfJjx5dRc

The DID (Decentralized Identifier) of the wallet containing the verifiable presentations.

entityDid
required
string (EntityDid)
Example: entityDid=did:key:zDnaeTXk5sZm29ZnCZMgCPpjsxwgKJFjQC68SeUw53emVZbt9

The DID (Decentralized Identifier) of the entity associated with the verifiable presentations.

Request Body schema: application/json
object (MetaData)
object

Provides a key-value container for data that may be used for categorization. Symbols : and # are not permitted.

object

Provides a key-value container for any custom data the API user may need to store along with the associated object. Symbols : and # are not permitted.

Responses

Request samples

Content type
application/json
{
  • "MetaData": {
    }
}

Response samples

Content type
application/json
{
  • "EntityDid": "did:key:zDnaeTXk5sZm29ZnCZMgCPpjsxwgKJFjQC68SeUw53emVZbt9",
  • "MetaData": {
    },
  • "Revision": 1,
  • "State": "draft",
  • "VpDid": "did:key:zDnaeTXk5sZm29ZnCZMgCPpjsxwgKJFjQC68SeUw53emVZbt9",
  • "WalletDid": "did:key:wDnaeU8SMAzx1hNS9UNa2fftbsJRGAvSaAyd3SDNCfJjx5dRc"
}

Verifies the Verifiable Presentation

This endpoint allows the verification of the Verifiable Presentation for Self-Sovereign Identity (SSI). Verifiable Presentations are digital, tamper-proof method of sharing the credentials that can be issued, and verified independently by individuals or entities, enhancing user privacy and data ownership.

Authorizations:
API Key
Request Body schema: application/json

Request body containing the verifiable presentation data represented in JSON-LD format. JSON-LD allows for structured, self-descriptive data with linked semantics, promoting interoperability in Self-Sovereign Identity (SSI) systems.

JsonLd
required
string <byte> (JsonLd)

JSON-LD representation of data with linked semantics.

Responses

Request samples

Content type
application/json
{
  • "JsonLd": "VHJ1dml0eSBsZWFkZXJzIGluIFNTSSBhbmQgZGlnaXRhbCBpZGVudGl0eS4="
}

Response samples

Content type
application/json
Example
{
  • "Code": "EINVALIDREQUEST",
  • "Message": "Invalid Request"
}

Issue a Verifiable Presentation

This endpoint is used to issue a Verifiable Presentation.

Authorizations:
API Key
path Parameters
vpDid
required
string (VpDid)
Example: did:key:zDnaeTXk5sZm29ZnCZMgCPpjsxwgKJFjQC68SeUw53emVZbt9

The DID (Decentralized Identifier) of the verifiable presentation to be retrieved.

query Parameters
walletDid
required
string (WalletDid)
Example: walletDid=did:key:wDnaeU8SMAzx1hNS9UNa2fftbsJRGAvSaAyd3SDNCfJjx5dRc

The DID (Decentralized Identifier) of the wallet containing the verifiable presentation.

entityDid
required
string (EntityDid)
Example: entityDid=did:key:zDnaeTXk5sZm29ZnCZMgCPpjsxwgKJFjQC68SeUw53emVZbt9

The DID (Decentralized Identifier) of the entity associated with the verifiable presentation.

revision
required
integer
Example: revision=1

The revision number of the verifiable presentation to be issued.

Responses

Response samples

Content type
application/json
{
  • "Created": "2023-08-11T15:08:01Z",
  • "EntityDid": "did:key:zDnaeTXk5sZm29ZnCZMgCPpjsxwgKJFjQC68SeUw53emVZbt9",
  • "MetaData": {
    },
  • "Revision": 3,
  • "State": "issued",
  • "Updated": "2023-08-11T15:08:01Z",
  • "VpDid": "did:key:zDnaeTXk5sZm29ZnCZMgCPpjsxwgKJFjQC68SeUw53emVZbt9",
  • "WalletDid": "did:key:zDnaeU8SMAzx1hNS9UNa2fftbsJRGAvSaAyd3SDNCfJjx5dRc"
}

Updates a Verifiable Presentation

This endpoint is used to update a Verifiable Presentation stored in a particular wallet.

Authorizations:
API Key
path Parameters
vpDid
required
string (VpDid)
Example: did:key:zDnaeTXk5sZm29ZnCZMgCPpjsxwgKJFjQC68SeUw53emVZbt9

The DID (Decentralized Identifier) of the verifiable presentation to be retrieved.

query Parameters
walletDid
required
string (WalletDid)
Example: walletDid=did:key:wDnaeU8SMAzx1hNS9UNa2fftbsJRGAvSaAyd3SDNCfJjx5dRc

The DID (Decentralized Identifier) of the wallet containing the verifiable presentation.

entityDid
required
string (EntityDid)
Example: entityDid=did:key:zDnaeTXk5sZm29ZnCZMgCPpjsxwgKJFjQC68SeUw53emVZbt9

The DID (Decentralized Identifier) of the entity associated with the verifiable presentation.

revision
required
integer
Example: revision=1

The current revision number of the Verifiable Presentation draft to be updated.

Request Body schema: application/json
JsonLd
string <byte> (JsonLd)

JSON-LD representation of data with linked semantics.

object (MetaData)

Responses

Request samples

Content type
application/json
{
  • "JsonLd": "VHJ1dml0eSBsZWFkZXJzIGluIFNTSSBhbmQgZGlnaXRhbCBpZGVudGl0eS4=",
  • "MetaData": {
    }
}

Response samples

Content type
application/json
{
  • "VpUpdateParameters": {
    },
  • "VpWriteS3Parameters": {
    }
}

Retrieve a particular Verifiable Presentation

This endpoint is used to retrieve a particular Verifiable Presentation using its DID (Decentralized Identifier).

Authorizations:
API Key
path Parameters
vpDid
required
string (VpDid)
Example: did:key:zDnaeTXk5sZm29ZnCZMgCPpjsxwgKJFjQC68SeUw53emVZbt9

The DID (Decentralized Identifier) of the verifiable presentation to be retrieved.

query Parameters
walletDid
required
string (WalletDid)
Example: walletDid=did:key:wDnaeU8SMAzx1hNS9UNa2fftbsJRGAvSaAyd3SDNCfJjx5dRc

The DID (Decentralized Identifier) of the wallet containing the verifiable presentation.

entityDid
required
string (EntityDid)
Example: entityDid=did:key:zDnaeTXk5sZm29ZnCZMgCPpjsxwgKJFjQC68SeUw53emVZbt9

The DID (Decentralized Identifier) of the entity associated with the verifiable presentation.

Responses

Response samples

Content type
application/json
{
  • "JsonLd": "VHJ1dml0eSBsZWFkZXJzIGluIFNTSSBhbmQgZGlnaXRhbCBpZGVudGl0eS4=",
  • "Vp": {
    }
}

Update a Verifiable Presentation

This endpoint is used to update a verifiable presentation from the latest revision of a verifiable credential.

Authorizations:
API Key
path Parameters
vpDid
required
string (VpDid)
Example: did:key:zDnaeTXk5sZm29ZnCZMgCPpjsxwgKJFjQC68SeUw53emVZbt9

The DID (Decentralized Identifier) of the Verifiable Presentation to be updated.

query Parameters
walletDid
required
string (WalletDid)
Example: walletDid=did:key:wDnaeU8SMAzx1hNS9UNa2fftbsJRGAvSaAyd3SDNCfJjx5dRc

The DID (Decentralized Identifier) of the wallet containing the verifiable presentations.

entityDid
required
string (EntityDid)
Example: entityDid=did:key:zDnaeTXk5sZm29ZnCZMgCPpjsxwgKJFjQC68SeUw53emVZbt9

The DID (Decentralized Identifier) of the entity associated with the Verifiable Presentation.

revision
required
integer
Example: revision=1

The revision number of the Verifiable Presentation draft to be updated.

Request Body schema: application/json
object (MetaData)
CredentialDid
required
string (CredentialDid)

A Decentralized Identifier (DID) is a unique and decentralized identifier that is used to uniquely identify a Verifiable Credential.

Responses

Request samples

Content type
application/json
{
  • "MetaData": {
    },
  • "CredentialDid": "did:uuid:11c53e8e-4cbd-4950-a4d4-eebf35482321"
}

Response samples

Content type
application/json
{
  • "EntityDid": "did:key:zDnaeTXk5sZm29ZnCZMgCPpjsxwgKJFjQC68SeUw53emVZbt9",
  • "MetaData": {
    },
  • "Revision": 1,
  • "State": "draft",
  • "VpDid": "did:key:zDnaeTXk5sZm29ZnCZMgCPpjsxwgKJFjQC68SeUw53emVZbt9",
  • "WalletDid": "did:key:wDnaeU8SMAzx1hNS9UNa2fftbsJRGAvSaAyd3SDNCfJjx5dRc"
}

V2

Operations related to sending and receiving DIDComm messages, which are secure, encrypted, and authenticated messages used for secure communication and interaction between entities in the SSI ecosystem.

Compose a Plaintext DIDComm Message

This endpoint is used to compose a plaintext DIDComm message for Self-Sovereign Identity (SSI) purposes, specifically for the transmission of a Verifiable Presentation (VP). A Verifiable Presentation is a type of verifiable credential presentation in the W3C Verifiable Credentials standard. It allows a prover (entity) to share verifiable credentials and associated proofs with a verifier in a tamper-proof, privacy-preserving manner. The VP is often used to provide selective disclosure of specific claims without revealing unnecessary identity information. The composed DIDComm message is in a JSON format, without any encryption or signing, suitable for scenarios where the communication channel provides end-to-end security.

Authorizations:
API Key
query Parameters
entityDid
required
string (EntityDid)
Example: entityDid=did:key:zDnaeTXk5sZm29ZnCZMgCPpjsxwgKJFjQC68SeUw53emVZbt9

The decentralized identifier (DID) of the entity owning the verifiable presentation.

walletDid
required
string (WalletDid)
Example: walletDid=did:key:wDnaeU8SMAzx1hNS9UNa2fftbsJRGAvSaAyd3SDNCfJjx5dRc

The decentralized identifier (DID) of the wallet containing the the verifiable presentation.

Request Body schema: application/json

JSON object containing the properties required to compose a DIDComm message with a Verifiable Presentation (VP).

Properties:

  • VpDid: The decentralized identifier (DID) representing the Verifiable Presentation (VP) to be included in the message.
  • Target: The decentralized identifier (DID) representing the target wallet where the message will be sent.
Target
required
string (WalletDid)

A Decentralized Identifier (DID) used to uniquely identify a Wallet.

VpDid
required
string (VpDid)

A Decentralized Identifier (DID) used to uniquely identify a Verifiable Presentation.

Responses

Request samples

Content type
application/json
{
  • "Target": "did:key:wDnaeU8SMAzx1hNS9UNa2fftbsJRGAvSaAyd3SDNCfJjx5dRc",
  • "VpDid": "did:key:zDnaeTXk5sZm29ZnCZMgCPpjsxwgKJFjQC68SeUw53emVZbt9"
}

Response samples

Content type
application/didcomm-plain+json
{
  • "attachments": [
    ],
  • "body": { },
  • "created_time": "2019-08-24",
  • "expires_time": "2019-08-24",
  • "from": "did:key:wDnaeU8SMAzx1hNS9UNa2fftbsJRGAvSaAyd3SDNCfJjx5dRc",
  • "id": "string",
  • "pthid": "string",
  • "thid": "string",
  • "to": [
    ],
  • "type": "string"
}

Receive a Plaintext DIDComm Message

Authorizations:
API Key
query Parameters
entityDid
required
string (EntityDid)
Example: entityDid=did:key:zDnaeTXk5sZm29ZnCZMgCPpjsxwgKJFjQC68SeUw53emVZbt9

The decentralized identifier (DID) of the entity owning the verifiable presentation.

Request Body schema: application/didcomm-plain+json

The plaintext DIDComm message to forward for Verifiable Presentation that was previously composed.

Array of objects (Attachment)

The attachments associated with the message.

body
required
object

The body of the message.

created_time
string <date>

The time the message was created.

expires_time
string <date>

The time the message expires.

from
string (WalletDid)

A Decentralized Identifier (DID) used to uniquely identify a Wallet.

id
required
string

The ID of the message.

pthid
string
thid
string
to
Array of strings (WalletDid)
type
required
string

Responses

Request samples

Content type
application/didcomm-plain+json
{
  • "attachments": [
    ],
  • "body": { },
  • "created_time": "2019-08-24",
  • "expires_time": "2019-08-24",
  • "from": "did:key:wDnaeU8SMAzx1hNS9UNa2fftbsJRGAvSaAyd3SDNCfJjx5dRc",
  • "id": "string",
  • "pthid": "string",
  • "thid": "string",
  • "to": [
    ],
  • "type": "string"
}

Response samples

Content type
application/json
{
  • "Code": "string",
  • "Message": "string"
}

Send a Plaintext DIDComm Message

Authorizations:
API Key
query Parameters
entityDid
required
string (EntityDid)
Example: entityDid=did:key:zDnaeTXk5sZm29ZnCZMgCPpjsxwgKJFjQC68SeUw53emVZbt9

The decentralized identifier (DID) of the entity owning the verifiable presentation.

walletDid
required
string (WalletDid)
Example: walletDid=did:key:wDnaeU8SMAzx1hNS9UNa2fftbsJRGAvSaAyd3SDNCfJjx5dRc

The decentralized identifier (DID) of the source wallet containing the verifiable presentation.

Request Body schema: application/json

JSON object containing the properties required to compose a DIDComm message with a Verifiable Presentation (VP).

Properties:

  • VpDid: The decentralized identifier (DID) representing the Verifiable Presentation (VP) to be included in the message and sent.
  • Target: The recipient of the message.
required
object (Target)

The target / recipient of a message.

VpDid
required
string (VpDid)

A Decentralized Identifier (DID) used to uniquely identify a Verifiable Presentation.

Responses

Request samples

Content type
application/json
{
  • "Target": {
    },
  • "VpDid": "did:key:zDnaeTXk5sZm29ZnCZMgCPpjsxwgKJFjQC68SeUw53emVZbt9"
}

Response samples

Content type
application/json
{
  • "Code": "string",
  • "Message": "string"
}