API Reference
This page contains the complete auto-generated API reference for the Issuer SDK. The API is organized by the role of each component.
Core Components
The primary entry points for creating and using the SDK.
Function: createCredentialIssuer()
createCredentialIssuer<
Handlers>(options): link:../interfaces/CredentialIssuer.md<Handlers>
Defined in: packages/issuer/src/credential-issuer.ts:173
Factory function to create a new credential issuer.
Returns
link:../interfaces/CredentialIssuer.md<Handlers>
A new instance of a CredentialIssuer with format-driven type inference
Typeparam
Handlers - Array of handler types that define supported credential formats
@the-hashgraph-group-ag/issuer / createCredentialIssuer
Function: createCredentialIssuer()
createCredentialIssuer<
Handlers>(options): link:../interfaces/CredentialIssuer.md<Handlers>
Defined in: packages/issuer/src/credential-issuer.ts:173
Factory function to create a new credential issuer.
Interface: CredentialIssuer<Handlers>
Main interface for credential issuance operations.
Methods
generateIssuanceRequest()
generateIssuanceRequest<
Format>(request):Promise<link:SigningRequest.md<link:../type-aliases/UnsignedCredentialForFormat.md<Handlers,Format>,string[]>>
Generates an issuance request that can be signed externally. This prepares the unsigned credential and creates a signing request.
Parameters
======= request
link:CredentialIssuanceRequest.md<ClaimsForFormat<Handlers,
Format>, CredentialOptionsForFormat<Handlers,
Format>, Format>
The issuance request containing claims, format, and options
issue()
issue<
Format>(request):Promise<link:../type-aliases/IssuanceResult.md<CredentialResultForFormat<Handlers,Format>>>
Issues a verifiable credential based on the provided request. The format parameter determines which handler is used and what types are expected.
Parameters
======= request
link:CredentialIssuanceRequest.md<ClaimsForFormat<Handlers,
Format>, CredentialOptionsForFormat<Handlers,
Format>, Format>
The issuance request containing claims, format, and options
Handlers
Handlers are responsible for creating credentials in a specific format (e.g., LDP, JWT).
@the-hashgraph-group-ag/issuer / LdpHandler
Class: LdpHandler<ClaimData, CredentialResult, PresentationResult, CredentialOptions, PresentationOptions, Format>
Defined in: packages/issuer/src/handlers/ldp/handler.ts:59
Handler for Linked Data Proof (LDP) verifiable credentials.
This handler processes issuance requests for LDP format credentials, generating signed credentials that conform to the W3C Verifiable Credentials Data Model with Linked Data Proofs.
Type Parameters
CredentialResult
CredentialResult =
link:../type-aliases/LdpCredential.md<ClaimDataWithId<ClaimData>>
PresentationResult
PresentationResult =
LdpPresentation
CredentialOptions
CredentialOptions extends
LdpCredentialIssuanceOptions
=
LdpCredentialIssuanceOptions
PresentationOptions
PresentationOptions extends
LdpPresentationIssuanceOptions
=
LdpPresentationIssuanceOptions
Implements
-
link:../interfaces/IssuanceHandler.md<
CredentialResult,PresentationResult,ClaimData,CredentialOptions,PresentationOptions,LdpCredential,Format>
Constructors
Constructor
new LdpHandler<
ClaimData,CredentialResult,PresentationResult,CredentialOptions,PresentationOptions,Format>(options):LdpHandler<ClaimData,CredentialResult,PresentationResult,CredentialOptions,PresentationOptions,Format>
Defined in: packages/issuer/src/handlers/ldp/handler.ts:87
Creates a new LDP handler instance.
Properties
Methods
canHandle()
canHandle(
format):boolean
Defined in: packages/issuer/src/handlers/ldp/handler.ts:95
Determines if this handler can process the specified format.
handleCredential()
handleCredential(
request,handlerOptions):Promise<CredentialResult>
Defined in: packages/issuer/src/handlers/ldp/handler.ts:114
Processes an LDP issuance request and generates a signed credential.
Parameters
======= request
link:../interfaces/CredentialIssuanceRequest.md<ClaimData,
CredentialOptions, Format>
The issuance request containing claims and options.
======= handlerOptions
Optional configuration for the handler.
Remarks
This method reuses handlePrepareSigningRequest and handleAttachSignature to avoid code duplication. It performs the following steps: 1. Prepares the signing request (validates, loads schema, creates unsigned credential) 2. Signs the material using the signer 3. Attaches the signature to complete the credential
handlePrepareSigningRequestCredential()
handlePrepareSigningRequestCredential(
request,handlerOptions):Promise<link:../interfaces/SigningRequest.md<link:../interfaces/LdpUnsignedCredential.md<ClaimDataWithId<ClaimData>>,string[]>>
Defined in: packages/issuer/src/handlers/ldp/handler.ts:158
Prepares a signing request for external signing. This creates the unsigned credential and generates the proof signing request.
Parameters
======= request
link:../interfaces/CredentialIssuanceRequest.md<ClaimData,
CredentialOptions, Format>
The issuance request containing claims and options.
======= handlerOptions
Optional configuration for the handler.
handlePrepareSigningRequestPresentation()
handlePrepareSigningRequestPresentation(
request,handlerOptions):Promise<<link:../interfaces/LdpUnsignedPresentation.md">LdpUnsignedPresentation,string[]>>
Defined in: packages/issuer/src/handlers/ldp/handler.ts:267
Prepares a signing request for external signing. This creates the unsigned presentation and generates the proof signing request.
Parameters
======= request
<link:../type-aliases/LdpCredential.md">LdpCredential,
PresentationOptions, Format>
The issuance request containing claims and format information.
======= handlerOptions
Returns
Promise<<link:../interfaces/LdpUnsignedPresentation.md">LdpUnsignedPresentation,
string[]>>
A promise that resolves to a signing request containing the unsigned presentation and proof signing request.
handlePresentation()
handlePresentation(
request,handlerOptions):Promise<PresentationResult>
Defined in: packages/issuer/src/handlers/ldp/handler.ts:228
Processes an issuance request and generates a signed presentation.
Parameters
======= request
<link:../type-aliases/LdpCredential.md">LdpCredential,
PresentationOptions, Format>
The issuance request containing claims and format information.
======= handlerOptions
Interface: IssuanceHandler<CredentialResult, PresentationResult, ClaimData, CredentialOptions, PresentationOptions, CredentialsData, Format>
Interface for issuance format handlers.
Handlers are responsible for processing specific issuance formats and generating signed credentials or presentations in those formats.
Type Parameters
CredentialsData
CredentialsData extends
Credentials =
Credentials
Methods
handleCredential()
handleCredential(
request,options):CredentialResult|Promise<CredentialResult>
Processes an issuance request and generates a signed credential.
handlePrepareSigningRequestCredential()
handlePrepareSigningRequestCredential(
request,options):Promise<link:SigningRequest.md<object,string[]>>
Prepares a signing request for external signing. This creates the unsigned credential and generates the proof signing request.
handlePrepareSigningRequestPresentation()
handlePrepareSigningRequestPresentation(
request,options):Promise<link:SigningRequest.md<object,string[]>>
Prepares a signing request for external signing. This creates the unsigned presentation and generates the proof signing request.
handlePresentation()
handlePresentation(
request,options):PresentationResult|Promise<PresentationResult>
Processes an issuance request and generates a signed presentation.
Policies
Policies are reusable classes that enforce business rules on the credential claims before issuance.
@the-hashgraph-group-ag/issuer / RequiredClaimsPolicy
Class: RequiredClaimsPolicy<Context>
A policy that checks for the presence of a specific set of claims.
This policy validates that all required claim keys exist on the claims object. It does not validate the values of the claims, only their presence.
Example
const policy = new RequiredClaimsPolicy(['name', 'dateOfBirth', 'email']);
// This would pass
const result1 = await policy.check({ claims: { name: 'John', dateOfBirth: '1990-01-01', email: 'john@example.com' } });
// This would fail
const result2 = await policy.check({ claims: { name: 'John', dateOfBirth: '1990-01-01' } }); // missing email
Constructors
Properties
Methods
check()
check(
context):PolicyResult
Validates that all required claims are present in the claims object.
Parameters
======= context
link:../interfaces/PolicyContext.md<Context>
The policy context containing the claims to validate.
Example
const result = await policy.check({
claims: { name: 'John', dateOfBirth: '1990-01-01' },
logger: console
});
if (result.compliant) {
console.log('All required claims are present');
} else {
console.log('Missing claims:', result.reason);
}
Interface: IssuancePolicy<Data>
Interface for issuance policies that validate data before issuance.
Policies are used to enforce business rules and validate that data meet the requirements before a credential or presentation is issued.
Type Parameters
Data
Data extends Credentials
| Presentations =
Credentials |
Presentations
Properties
Methods
check()
check(
input):PolicyResult|Promise<link:PolicyResult.md>
Validates the data against this policy.
Returns
PolicyResult |
Promise<link:PolicyResult.md>
A promise that resolves to the policy validation result.
Services
Services are helper classes that provide utility functions to other components.
Unresolved include directive in modules/ROOT/pages/api-reference.adoc - include::../partials/api/classes/SchemaLoader.adoc[]
Type Definitions
These interfaces define the shape of the data structures used throughout the SDK, such as requests, results, and options.
@the-hashgraph-group-ag/issuer / IssuerOptions
Interface: IssuerOptions<Handlers>
Configuration options for creating an issuer.
Properties
issuanceDecorators?
optionalissuanceDecorators?: link:../classes/IssuanceDecorator.md<object>[]
Array of issuance decorators that can decorate the data
policies?
optionalpolicies?: link:IssuancePolicy.md<object>[]
Array of policies that can validate claims before issuance
Unresolved include directive in modules/ROOT/pages/api-reference.adoc - include::../partials/api/interfaces/IssuanceRequest.adoc[]
@the-hashgraph-group-ag/issuer / IssuanceResult
Type Alias: IssuanceResult<Result>
IssuanceResult<
Result> = link:../interfaces/IssuanceSuccess.md<Result>
Union type representing the result of a credential issuance operation.
Typeparam
Result - The type of the issued credential
Unresolved include directive in modules/ROOT/pages/api-reference.adoc - include::../partials/api/interfaces/PolicyEngineOptions.adoc[]
Unresolved include directive in modules/ROOT/pages/api-reference.adoc - include::../partials/api/interfaces/PolicyEngineResult.adoc[]