Credential Management
Credential management allows you to issue, retrieve, and manage verifiable credentials using templates defined in the system. These methods support formats such as AnonCreds and JSON-LD, enabling secure credential issuance and tracking across multiple ecosystems (OpenID, Privado ID, Indicio, Cheqd). This section covers methods to retrieve credentials and offer them to connections.
Get All Credentials
Retrieves a list of all credentials associated with a tenant.
import { OpenIDEcosystem } from '@openid/core-sdk';
const openid = new OpenIDEcosystem({
  apiKey: 'your-ecosystem-api-key',
});
const credentials = await openid.getAllCredentials({
  tenantId: 'a1b2c3d4-5678-4def-90ab-c12d34e5f6g7',
});
Params
| Parameter | Type | Description | 
|---|---|---|
| tenantId | string (Required) | The ID of the tenant to query. | 
- Use this to audit or manage all issued credentials for a tenant.
 - Response size may vary; consider implementing pagination if supported in future updates.
 
Get Credential by ID
Retrieves a specific credential by its ID.
import { OpenIDEcosystem } from '@openid/core-sdk';
const openid = new OpenIDEcosystem({
  apiKey: 'your-ecosystem-api-key',
});
const credential = await openid.getCredentialById({
  tenantId: 'a1b2c3d4-5678-4def-90ab-c12d34e5f6g7',
  credentialId: 'g8h9i0j1-k2l3-4pqr-stuv-wxyzabcdefhi',
});
Params
| Parameter | Type | Description | 
|---|---|---|
| tenantId | string (Required) | The ID of the tenant owning the credential. | 
| credentialId | string (Required) | The ID of the credential to retrieve. | 
- Ensure the 
credentialIdexists, or the method will return an error. - Useful for verifying or updating individual credentials.
 
Offer Credential (AnonCreds)
Offers a new AnonCreds credential to a connection.
import { OpenIDEcosystem } from '@openid/core-sdk';
const openid = new OpenIDEcosystem({
  apiKey: 'your-ecosystem-api-key',
});
const credential = await openid.offerCredentialAnoncreds({
  tenantId: 'your-tenant-id',
  credentialTemplateId: 'your-credential-template-id',
  connectionId: 'conn-789',
  credentialValues: {
    firstName: 'John',
    lastName: 'Doe',
  },
});
Params
| Parameter | Type | Description | 
|---|---|---|
| tenantId | string (Required) | The ID of the tenant initiating the offer. | 
| credentialTemplateId | string (Required) | The ID of the credential template to use. | 
| connectionId | string (Required) | The ID of the connection to send the offer to. | 
| credentialValues | CredentialValue (Required) | The values for the credential attributes. | 
| comment | string (Optional) | A comment or message for the offer. | 
- The 
credentialValuesmust match the attributes defined in the template. - Ensure the 
connectionIdis valid and active. 
Offer Credential (mDoc)
Offers a credential in mDoc format to a holder using the specified credential template.
import { OpenIDEcosystem } from '@openid/core-sdk';
const openid = new OpenIDEcosystem({
  apiKey: 'your-ecosystem-api-key',
});
const credential = await openid.offerCredentialMdoc({
  tenantId: 'a1b2c3d4-5678-4def-90ab-c12d34e5f6g7',
  credentialTemplateId: 'a1b2c3d4-5678-4def-90ab-c12d34e5f6g7',
  credentialValues: {
    firstName: 'John',
    lastName: 'Doe',
  },
});
Params
| Parameter | Type | Description | 
|---|---|---|
| tenantId | string (Required) | The ID of the tenant issuing the credential. | 
| credentialTemplateId | string (Required) | The ID of the credential template to use. | 
| credentialValues | CredentialValue (Required) | An object containing the credential’s attribute values. | 
| codeflow | string (Optional) | The code flow type for issuance (e.g., pre-authorized). | 
| preAuthorizedCodeflowConfig | { useTransactionCode?: boolean; transactionCode?: { description?: string; length?: number; } } (Optional) | Configuration for pre-authorized code flow. | 
- The 
docTypefrom the template determines the mDoc format (e.g., mDL). - Use 
preAuthorizedCodeflowConfigfor secure, transaction-based issuance. 
Offer Credential (JSON-LD)
Offers a new JSON-LD credential to a connection or holder.
import { OpenIDEcosystem } from '@openid/core-sdk';
const openid = new OpenIDEcosystem({
  apiKey: 'your-ecosystem-api-key',
});
const credential = await openid.offerCredentialJsonld({
  tenantId: 'your-tenant-id',
  credentialTemplateId: 'your-credential-template-id',
  connectionId: 'conn-789',
  credentialValues: {
      firstName: 'John',
      lastName: 'Doe',
  },
  holderDid: 'did:example:holder123',
});
Params
| Parameter | Type | Description | 
|---|---|---|
| tenantId | string (Required) | The ID of the tenant initiating the offer. | 
| credentialTemplateId | string (Required) | The ID of the credential template to use. | 
| connectionId | string (Optional) | The ID of the connection to send the offer to. | 
| credentialValues | CredentialValue (Required) | The values for the credential attributes. | 
| holderDid | string (Optional) | The DID of the holder. | 
| comment | string (Optional) | A comment or message for the offer. | 
| codeflow | string (Optional) | The code flow type (e.g., `pre-authorized`). | 
| preAuthorizedCodeflowConfig | { useTransactionCode?: boolean; transactionCode?: { description?: string; length?: number; } } (Optional) | Configuration for pre-authorized code flow. | 
- Either 
connectionIdorholderDidmust be provided to identify the recipient. - Use 
preAuthorizedCodeflowConfigfor secure credential issuance with transaction codes. 
Offer Credential (SD-JWT)
Offers a credential in SD-JWT format to a holder using the specified credential template.
import { OpenIDEcosystem } from '@openid/core-sdk';
const openid = new OpenIDEcosystem({
  apiKey: 'your-ecosystem-api-key',
});
const credential = await openid.offerCredentialSdJwt({
  tenantId: 'a1b2c3d4-5678-4def-90ab-c12d34e5f6g7',
  credentialTemplateId: 'a1b2c3d4-5678-4def-90ab-c12d34e5f6g7',
  credentialValues: {
    firstName: 'John',
    lastName: 'Doe',
  },
});
Params
| Parameter | Type | Description | 
|---|---|---|
| tenantId | string (Required) | The ID of the tenant issuing the credential. | 
| credentialTemplateId | string (Required) | The ID of the credential template to use. | 
| credentialValues | CredentialValue (Required) | An object containing the credential’s attribute values. | 
| codeflow | string (Optional) | The code flow type for issuance (e.g., pre-authorized). | 
| preAuthorizedCodeflowConfig | { useTransactionCode?: boolean; transactionCode?: { description?: string; length?: number; } } (Optional) | Configuration for pre-authorized code flow. | 
- SD-JWT supports selective disclosure; ensure 
credentialValuesalign with the template. - Use 
codeflowandpreAuthorizedCodeflowConfigfor secure issuance options.