Credential Issuance
Install Dependency
Package: @affinidi-tdk/credential-issuance-client
npm install @affinidi-tdk/credential-issuance-client --saveCheck the latest version on the npm registry or view the source on GitHub.
Classes and Methods
Configuration API
Manages the issuance configuration for the project. Each project supports one issuance configuration.
createIssuanceConfig
Creates an issuance configuration for the project.
Parameters
Example
import {
ConfigurationApi,
Configuration,
CreateIssuanceConfigInput,
} from '@affinidi-tdk/credential-issuance-client'
const api = new ConfigurationApi(
new Configuration({ apiKey: authProvider.fetchProjectScopedToken.bind(authProvider) })
)
const request: CreateIssuanceConfigInput = {
credentialSupported: [
{
credentialTypeId: 'SchemaOne',
jsonSchemaUrl: 'https://schema.affinidi.io/SchemaOneV1R1.json',
jsonLdContextUrl: 'https://schema.affinidi.io/SchemaOneV1R1.jsonld',
},
],
issuerWalletId: '<WALLET_ID>',
credentialOfferDuration: 3600,
format: 'ldp_vc',
}
const { data } = await api.createIssuanceConfig(request)deleteIssuanceConfigById
Deletes an issuance configuration by ID.
Parameters
configurationId
string
RequiredExample
import { ConfigurationApi, Configuration } from '@affinidi-tdk/credential-issuance-client'
const api = new ConfigurationApi(
new Configuration({ apiKey: authProvider.fetchProjectScopedToken.bind(authProvider) })
)
const configurationId = '<CONFIG_ID>'
const result = await api.deleteIssuanceConfigById(configurationId)getIssuanceConfigById
Retrieves an issuance configuration by ID.
Parameters
configurationId
string
RequiredExample
import { ConfigurationApi, Configuration } from '@affinidi-tdk/credential-issuance-client'
const api = new ConfigurationApi(
new Configuration({ apiKey: authProvider.fetchProjectScopedToken.bind(authProvider) })
)
const configurationId = '<CONFIG_ID>'
const result = await api.getIssuanceConfigById(configurationId)getIssuanceConfigList
Returns the list of issuance configurations for the current project.
Parameters
No parameters required.
Example
import { ConfigurationApi, Configuration } from '@affinidi-tdk/credential-issuance-client'
const api = new ConfigurationApi(
new Configuration({ apiKey: authProvider.fetchProjectScopedToken.bind(authProvider) })
)
const { data } = await api.getIssuanceConfigList()updateIssuanceConfigById
Updates an existing issuance configuration by ID.
Parameters
configurationId
string
RequiredExample
import {
ConfigurationApi,
Configuration,
UpdateIssuanceConfigInput,
} from '@affinidi-tdk/credential-issuance-client'
const api = new ConfigurationApi(
new Configuration({ apiKey: authProvider.fetchProjectScopedToken.bind(authProvider) })
)
const configurationId = '<CONFIG_ID>'
const request: UpdateIssuanceConfigInput = {
credentialSupported: [
{
credentialTypeId: 'SchemaOne',
jsonSchemaUrl: 'https://schema.affinidi.io/SchemaOneV1R1.json',
jsonLdContextUrl: 'https://schema.affinidi.io/SchemaOneV1R1.jsonld',
},
],
issuerWalletId: '<WALLET_ID>',
credentialOfferDuration: 3600,
format: 'ldp_vc',
}
const { data } = await api.updateIssuanceConfigById(configurationId, request)Issuance API
Initiates credential issuance and checks issuance status.
issuanceState
Retrieves the status of an issuance.
Parameters
issuanceId
string
RequiredprojectId
string
RequiredExample
import { IssuanceApi, Configuration } from '@affinidi-tdk/credential-issuance-client'
const api = new IssuanceApi(
new Configuration({ apiKey: authProvider.fetchProjectScopedToken.bind(authProvider) })
)
const issuanceId = '<ISSUANCE_ID>'
const projectId = '<PROJECT_ID>'
const { data } = await api.issuanceState(issuanceId, projectId)listIssuance
Returns the list of issuances initiated in the project.
Parameters
projectId
string
RequiredExample
import { IssuanceApi, Configuration } from '@affinidi-tdk/credential-issuance-client'
const api = new IssuanceApi(
new Configuration({ apiKey: authProvider.fetchProjectScopedToken.bind(authProvider) })
)
const projectId = '<PROJECT_ID>'
const { data } = await api.listIssuance(projectId)startIssuance
Initiates the issuance of a credential.
Parameters
projectId
string
RequiredExample
import {
IssuanceApi,
Configuration,
StartIssuanceInput,
} from '@affinidi-tdk/credential-issuance-client'
const api = new IssuanceApi(
new Configuration({ apiKey: authProvider.fetchProjectScopedToken.bind(authProvider) })
)
const projectId = '<PROJECT_ID>'
const request: StartIssuanceInput = {
data: [
{
credentialTypeId: 'SchemaOne',
credentialData: {
first_name: 'FirstName',
last_name: 'LastName',
dob: '1970-01-01',
},
},
],
holderDid: 'did:key:holder-did-value',
claimMode: 'FIXED_HOLDER',
}
const { data } = await api.startIssuance(projectId, request)Credentials API
Issues Verifiable Credentials to users.
batchCredential
Allows digital wallets to claim multiple credentials at once.
Parameters
projectId
string
RequiredExample
import {
CredentialsApi,
Configuration,
BatchCredentialInput,
BatchCredentialInputCredentialRequestsInner,
} from '@affinidi-tdk/credential-issuance-client'
const api = new CredentialsApi(
new Configuration({ apiKey: authProvider.fetchProjectScopedToken.bind(authProvider) })
)
const projectId = '<PROJECT_ID>'
const credentialRequests: Array<BatchCredentialInputCredentialRequestsInner> = [
{
credential_identifier: 'credentialIdentifier1',
proof: {
proof_type: 'proof',
jwt: '<PROOF_JWT>',
},
},
]
const request: BatchCredentialInput = { credential_requests: credentialRequests }
const { data } = await api.batchCredential(projectId, request)generateCredentials
Generates and issues a credential to the user.
Parameters
projectId
string
RequiredExample
import {
CredentialsApi,
Configuration,
CreateCredentialInput,
} from '@affinidi-tdk/credential-issuance-client'
const api = new CredentialsApi(
new Configuration({ apiKey: authProvider.fetchProjectScopedToken.bind(authProvider) })
)
const projectId = '<PROJECT_ID>'
const request: CreateCredentialInput = {
credential_identifier: 'UniversityDegree-2024',
proof: {
proof_type: 'jwt',
jwt: '<PROOF_JWT>',
},
}
const { data } = await api.generateCredentials(projectId, request)getClaimedCredentials
Returns claimed credentials within a specified time range.
Parameters
project_id
string
Requiredconfiguration_id
string
Requiredrange_start_time
string
Optionalrange_end_time
string
Optionalexclusive_start_key
string
Optionallimit
number
Optional20.Example
import { CredentialsApi, Configuration } from '@affinidi-tdk/credential-issuance-client'
const api = new CredentialsApi(
new Configuration({ apiKey: authProvider.fetchProjectScopedToken.bind(authProvider) })
)
const project_id = '<PROJECT_ID>'
const configuration_id = '<CONFIG_ID>'
const range_start_time = '<START_DATE>'
const range_end_time = '<END_DATE>'
const exclusive_start_key = '<EXCLUSIVE_START_KEY>'
const limit = 20
const { data } = await api.getClaimedCredentials(
project_id,
configuration_id,
range_start_time,
range_end_time,
exclusive_start_key,
limit,
)Default API
Revokes Verifiable Credentials issued to users.
changeCredentialStatus
Updates the status of a credential, for example to revoke it.
Parameters
projectId
string
RequiredconfigurationId
string
RequiredExample
import {
DefaultApi,
Configuration,
ChangeCredentialStatusInput,
} from '@affinidi-tdk/credential-issuance-client'
const api = new DefaultApi(
new Configuration({ apiKey: authProvider.fetchProjectScopedToken.bind(authProvider) })
)
const projectId = '<PROJECT_ID>'
const configId = '<CONFIG_ID>'
const request: ChangeCredentialStatusInput = {
changeReason: 'INVALID_CREDENTIAL',
issuanceRecordId: '<RECORD_ID>',
}
const { data } = await api.changeCredentialStatus(projectId, configId, request)listIssuanceDataRecords
Returns the list of revocable credential records, including status and record ID.
Parameters
projectId
string
RequiredconfigurationId
string
Requiredlimit
number
OptionalexclusiveStartKey
string
OptionalExample
import { DefaultApi, Configuration } from '@affinidi-tdk/credential-issuance-client'
const api = new DefaultApi(
new Configuration({ apiKey: authProvider.fetchProjectScopedToken.bind(authProvider) })
)
const projectId = '<PROJECT_ID>'
const configId = '<CONFIG_ID>'
const { data } = await api.listIssuanceDataRecords(projectId, configId)Offer API
Retrieves the credential offer created by the Issuance API.
getCredentialOffer
Retrieves the credential offer details.
Parameters
projectId
string
RequiredissuanceId
string
RequiredExample
import { OfferApi, Configuration } from '@affinidi-tdk/credential-issuance-client'
const api = new OfferApi(
new Configuration({ apiKey: authProvider.fetchProjectScopedToken.bind(authProvider) })
)
const projectId = '<PROJECT_ID>'
const issuanceId = '<ISSUANCE_ID>'
const result = await api.getCredentialOffer(projectId, issuanceId)WellKnown API
Retrieves OpenID Connect credential issuer configuration.
getWellKnownOpenIdCredentialIssuer
Retrieves the well-known credential issuer configuration for OpenID Connect.
Parameters
projectId
string
RequiredExample
import { WellKnownApi, Configuration } from '@affinidi-tdk/credential-issuance-client'
const api = new WellKnownApi(
new Configuration({ apiKey: authProvider.fetchProjectScopedToken.bind(authProvider) })
)
const projectId = '<PROJECT_ID>'
const result = await api.getWellKnownOpenIdCredentialIssuer(projectId)Glad to hear it! Please tell us how we can improve more.
Sorry to hear that. Please tell us how we can improve.
Thank you for sharing your feedback so we can improve your experience.