Summary & Next Steps
What You Achieved:
Deployed an Issuer and Verifier using the One-Click Deployment platform, and authenticated to their APIs with an OIDC
Authorization: Bearer <token>header (usingAUTH_DISABLED=trueas the local-development shortcut).Created a versioned credential schema and assigned it to your Issuer, producing the credential configuration ids your Issuer can advertise (for example
[email protected]:sd-jwt).Issued a "KYC Verifiable Credential" by creating an OpenID4VCI credential offer and claiming it into a wallet — in SD-JWT VC format, so the holder can selectively disclose individual claims.
Verified that credential with an OpenID4VP authorization request that declares which claims it needs, then read the result from the verification session once the holder presented a matching credential.
Built a frontend that lets users request a credential, scan the offer QR code, and later present their credential to unlock a protected dashboard.
Displayed the verified, selectively disclosed credential data on that protected dashboard.
Next Steps:
Try selective disclosure. Add or adjust the
disclosureFrameon your schema (or thedisclosureFrameon a direct sign request) so a holder can reveal onlyagewithout exposingfirst_nameorlast_name.Switch the credential query. Authorization requests accept either a DIF Presentation Exchange
presentationDefinition(as this tutorial sends, paired withversion: "v1.draft24") or a DCQLdcqlQuery(works with the defaultversion: "v1"). Note DCQL cannot express numeric ranges likeage >= 18— with DCQL your app checks the disclosed value itself.Require a PIN on offers. Set
requirePin: truewhen creating a credential offer to add a pre-authorized-code PIN that the holder must enter before claiming.Issue a different format. The same schema can produce both
:sd-jwtand:jwt-vc-jsoncredential configuration ids — try issuing a JWT-VC-JSON credential alongside the SD-JWT VC one.Experiment with schemas and conditions. Define new schemas with different claims and stricter verification requirements, then use the verified credential data to offer personalized experiences in your application.
You now have a solid understanding and a working example of SSI credential issuance and verification within the Empeiria ecosystem.
Last updated