Import the necessary modules at the beginning of your script:
import { Credential, DIDAccount } from "@didpass/issuer-sdk";
import { QRTypes } from "@didpass/issuer-sdk/lib/types/QRTypes";
import {
JwksEndpoint,
TokenizePayload,
} from "@didpass/issuer-sdk/lib/types/JWSDetailsDTO";
Step 2: Set Up Credential Payload
Replace the placeholder values with your actual Credential payload:
// this is the payload sent by wallet
const credentialPayload = {
credentialId: "YOUR_CREDENTIAL_ID",
did: "USER_DID",
qrType: QRTypes.TYPE_CREDENTIAL_JWT,
message: "MESSAGE_FROM_WALLET",
signature: "SIGNATURE_FROM_WALLET",
};
Step 3: Set Up Credential Verification Key
Prepare your key for signing the credential, and the endpoint for verifying the token:
// Your private key in pem format
const keyPem = "-----BEGIN PRIVATE KEY-----\nYOUR_PRIVATE_KEY_PEM\n-----END PRIVATE KEY-----\n";
const verifyEndpoint: JwksEndpoint = {
jku: "http://localhost:3000/.well-known/jwks.json", // Replace this with your endpoint
kid: "key-100" // Replace with your actual kid
}
Step 4: Set Up JWS Credential Data
Replace the placeholder values with your actual credential details:
const credentialSubject = {
// Replace with user's data for credential (based on credentialId)
};
const type = "YOUR_CREDENTIAL_TYPE"; // ex: KtpCred
Step 5: Claim JWS Credential
Claim and sign the credential using the provided payload and details: