Skip to content

Verify SD-JWT-based Verifiable Credentials (issuer JWKS URI)

This guide shows how to verify an SD-JWT-based digital credential that follows draft-ietf-oauth-sd-jwt-vc-13 with the Vidos Verifier service.

Before you start, complete the setup guide so your verifier endpoint and API key are ready.


The credential is a compact SD-JWT string that combines the issuer-signed payload, the selective disclosure sections, and the key-binding JWT. This example relies on issuer metadata that points to a jwks_uri.

draft-ietf-oauth-sd-jwt-vc-13 credential sample
eyJhbGciOiJFUzI1NiIsImtpZCI6IjYwY2ExMmM5MjUxZjRkNTU4NDBiN2MwMDczNTk0OTE1IiwidHlwIjoiZGMrc2Qtand0In0.eyJpYXQiOiAxNzQwMTM3Mjg4LCAibmJmIjogMTc0MDEzNzI4OCwgImV4cCI6IDE3NDI3MjkyODgsICJzdWIiOiAiZGlkOmtleTp6MmRtekQ4MWNnUHg4VmtpN0pidXVNbUZZcldQZ1lveXR5a1VaM2V5cWh0MWo5S2JzY0dEQlJHd0NwVFo5RnZRZzNjenduTDhUZDkyNHlHQnBCcXptY3lUTEh4ZEFhU3ZjUTlxa0xKVGVqekVCMU4xMlVHWUo5TGhVUnBwZWJlZGtrWGpzNkRMdEEyVEpYY3puN2EzTjVYNDNFcmtOSlhzVHNQQVkyMU1yZmc4RDY3Q3FKIiwgImlzcyI6ICJodHRwczovL29pZDR2Yy5pZ3JhbnQuaW8vb3JnYW5pc2F0aW9uLzA0NzgzZTNlLWY5ODQtNDM5My04NmE3LWUzNzcxYzkzMjdmZi9zZXJ2aWNlIiwgInZjdCI6ICJWZXJpZmlhYmxlUG9ydGFibGVEb2N1bWVudEExIiwgIl9zZCI6IFsiblY4Y2dmS2w2Mlk4VlNrQUg3ZGhRZUFleEtJZG9ZcERhNkplbXlKOVBuOCIsICIxX2NLa2ZjWGZpLThpem43d2RnRjROYlFCaHo4STJ2QmRQSkNHRE80QzNnIiwgIm91dkcxTHp4c0F0bFNFc3M1bHNTcHVMS0NXZUlhZHBHS2lMSzFqSm9fMEkiLCAiSE4xQmc3TUx1M3dhWjJNcUxIeUlKb25fNmxoa3BmY1lKUmIyQ3RFSUZYQSIsICJDMmVRTGNKN0ljWVVIY3dlRUZ3dGZkamwyOVRDYnBZRFdseDl5bVB1VlU4IiwgImxsajV5RlYwSkdwODZEbmRSb3gxZU4yN3ZDdnh0TXgwVDdpa09weXlqd1UiXSwgImp0aSI6ICJ1cm46ZGlkOjgzMDg3MDJmLWM4N2MtNDg5OC1iYmZjLTM2NGExODRjOTdiOCIsICJjbmYiOiB7Imp3ayI6IHsiY3J2IjogIlAtMjU2IiwgImt0eSI6ICJFQyIsICJ4IjogInMzX0JTTWN2aXU3eG9HZ3ZtTm1WZG52Q21Ld0FkbGdlOGdNZGtiV24xcU0iLCAieSI6ICJYUWs2UGYtWWdSTFE5TXdaZEFPRjdEQWJZMG1jYUE3Q29qZGMwMy1nTEQ4In19fQ.83MKQ12hE2JWJMTNGTDX_06nU4oh6FlFrDgeTEv6H0XCAPGZuUe88JAvNFLA6_baOeIUWoNBZd9X14ZoQk7JCw~WyI5NDkyMmE1MjNkZTg3MDU4MDA2ZWNkYWRkN2NmMzc2YWRiODEyMDE1NjBmMmU1YTVjMTRlODRkODE4MmNlMmE5Iiwic2VjdGlvbjEiLHsiZGF0ZUJpcnRoIjoiMTk2OC0xMi0yOSIsImZvcmVuYW1lcyI6IkNoYXJsb3R0ZSIsIm5hdGlvbmFsaXRpZXMiOlsiU0UiXSwicGVyc29uYWxJZGVudGlmaWNhdGlvbk51bWJlciI6IjE5NjgxMjI5LTE0MTIiLCJwbGFjZUJpcnRoIjp7ImNvdW50cnlDb2RlIjoiU0UiLCJyZWdpb24iOiJTdG9ja2hvbG0iLCJ0b3duIjoiU3RvY2tob2xtIn0sInNleCI6IkZlbWFsZSIsInN0YXRlT2ZSZXNpZGVuY2VBZGRyZXNzIjp7ImNvdW50cnlDb2RlIjoiU0UiLCJwb3N0Q29kZSI6IjQxOCA3OCIsInN0cmVldE5vIjoiR3VubmFyIEVuZ2VsbGF1cyB2YWcgOCwgOTEgMUIiLCJ0b3duIjoiU3RvY2tob2xtIn0sInN0YXRlT2ZTdGF5QWRkcmVzcyI6eyJjb3VudHJ5Q29kZSI6IlNFIiwicG9zdENvZGUiOiI0MTggNzgiLCJzdHJlZXRObyI6Ikd1bm5hciBFbmdlbGxhdXMgdmFnIDgsIDkxIDFCIiwidG93biI6IlN0b2NraG9sbSJ9LCJzdXJuYW1lIjoiQW5kZXJzb24iLCJzdXJuYW1lQXRCaXJ0aCI6IkFuZGVyc29uIn1d~WyIzMjUwYTdmODhiODUyYTEzNTFjNmNhNmUwZDRhZjdkZTRmYzYyMjFkNTBiYjFhMDM3MDM1NGZiYjg1MjAzNWExIiwic2VjdGlvbjIiLHsiY2VydGlmaWNhdGVGb3JEdXJhdGlvbkFjdGl2aXR5Ijp0cnVlLCJkZXRlcm1pbmF0aW9uUHJvdmlzaW9uYWwiOmZhbHNlLCJlbmRpbmdEYXRlIjoiMjAyNC0wNy0wMyIsIm1lbWJlclN0YXRlV2hpY2hMZWdpc2xhdGlvbkFwcGxpZXMiOiJJVCIsInN0YXJ0aW5nRGF0ZSI6IjIwMjMtMDktMjEiLCJ0cmFuc2l0aW9uUnVsZXNBcHBseUFzRUM4ODMyMDA0IjpmYWxzZX1d~WyI0MGUxZGEwOGUyNzk0MTUyMWQ3ZDJhZDgxOTIxMTdhNzVjZDdkMmI3NjIxZmFhZmRmZDJmMDg0NWUxZjk0YjkyIiwic2VjdGlvbjMiLHsiY2l2aWxBbmRFbXBsb3llZFNlbGZFbXBsb3llZCI6ZmFsc2UsImNpdmlsU2VydmFudCI6ZmFsc2UsImNvbnRyYWN0U3RhZmYiOmZhbHNlLCJlbXBsb3llZEFuZFNlbGZFbXBsb3llZCI6ZmFsc2UsImVtcGxveWVkVHdvT3JNb3JlU3RhdGVzIjpmYWxzZSwiZXhjZXB0aW9uIjpmYWxzZSwiZXhjZXB0aW9uRGVzY3JpcHRpb24iOiJuaWwiLCJmbGlnaHRDcmV3TWVtYmVyIjpmYWxzZSwibWFyaW5lciI6ZmFsc2UsInBvc3RlZEVtcGxveWVkUGVyc29uIjpmYWxzZSwicG9zdGVkU2VsZkVtcGxveWVkUGVyc29uIjp0cnVlLCJzZWxmRW1wbG95ZWRUd29Pck1vcmVTdGF0ZXMiOmZhbHNlLCJ3b3JraW5nSW5TdGF0ZVVuZGVyMjEiOmZhbHNlfV0~WyIwODkzNjU2YzhiNGUzZmIyYmU0N2VhYWE3NDQzYzU3YzMyZjQwYTAyNjM5YmVkYTBiNGFiYjIwMzQ1MzZkZjIzIiwic2VjdGlvbjQiLHsiZW1wbG95ZWUiOmZhbHNlLCJlbXBsb3llclNlbGZFbXBsb3llZEFjdGl2aXR5Q29kZXMiOlsiMTg4OTExMzI0NCJdLCJuYW1lQnVzaW5lc3NOYW1lIjoiVm9sdm8iLCJyZWdpc3RlcmVkQWRkcmVzcyI6eyJjb3VudHJ5Q29kZSI6IlNFIiwicG9zdENvZGUiOiI0MTggNzgiLCJzdHJlZXRObyI6Ikd1bm5hciBFbmdlbGxhdXMgdlx1MDBlNGcgOCwgMTY0IEEiLCJ0b3duIjoiR290ZWJvcmcifSwic2VsZkVtcGxveWVkQWN0aXZpdHkiOnRydWV9XQ~WyJiYmVjNjg2ZDljM2RiMjYyOWUwNGVlNTkwNGRkOTVkZmY4NWViOTJmZDhlMmQ4NGFkNGQyZTBlODJmYjQ2ZWExIiwic2VjdGlvbjUiLHsibm9GaXhlZEFkZHJlc3MiOmZhbHNlLCJ3b3JrUGxhY2VBZGRyZXNzZXMiOlt7ImFkZHJlc3MiOnsiY291bnRyeUNvZGUiOiJJVCIsInBvc3RDb2RlIjoiMzQxMzIiLCJzdHJlZXRObyI6IlBpYXp6YSBEdWNhIGRlZ2xpIEFicnV6emkgMiwgNDQwIiwidG93biI6IlRyaWVzdGUifSwic2Vxbm8iOjF9XSwid29ya1BsYWNlTmFtZXMiOlt7ImNvbXBhbnlOYW1lVmVzc2VsTmFtZSI6IkFzc2ljdXJhemlvbmkgR2VuZXJhbGkgUy5wLkEiLCJzZXFubyI6MX1dfV0~WyIzM2VkOWI2MzE1NjAwZDFlZTA2NzAzZTlmMDNmODVkMmYyZTU5ODY4ZGM5NTJmMmQ0OWNjZTQzNTk2YjI4ODEzIiwic2VjdGlvbjYiLHsiYWRkcmVzcyI6eyJjb3VudHJ5Q29kZSI6IkJFIiwicG9zdENvZGUiOiIxMDAwIiwic3RyZWV0Tm8iOiJNYWluIFN0cmVldCAxIiwidG93biI6IkJydXNzZWxzIn0sImRhdGUiOiIyMDIzLTA5LTA3IiwiZW1haWwiOiJpbmZvQG5zc2ktYmUuZXUiLCJpbnN0aXR1dGlvbklEIjoiTlNTSS1CRS0wMSIsIm5hbWUiOiJOYXRpb25hbCBTb2NpYWwgU2VjdXJpdHkgT2ZmaWNlIiwib2ZmaWNlRmF4Tm8iOiIwODAwIDk4NzY1Iiwib2ZmaWNlUGhvbmVObyI6IjA4MDAgMTIzNDUiLCJzaWduYXR1cmUiOiJPZmZpY2lhbCBzaWduYXR1cmUifV0~eyJhbGciOiJFUzI1NiIsInR5cCI6ImtiK2p3dCJ9.eyJhdWQiOiJyZWRpcmVjdF91cmk6aHR0cHM6Ly9lYmE0MDc4YWYwMzcubmdyb2suYXBwL2F1dGhvcml6ZXIxL29wZW5pZDQvdnAvdjFfMCIsInNkX2hhc2giOiJLRUlWenF1YkdXU2lBUndRbUJ4T3JyejA5Qzc1WEM4RElNQXdoTXZrVXRNIiwibm9uY2UiOiJuLWU5YmM5OTc2LTY0NDItNDk4Mi04MjU3LTc2NmI0MGEyMjIyOCIsImlhdCI6MTc0MDY3NzAyMn0.CAdiPW4F16RPbEy2KbapfLHC6rBupfIhqJNm2-vqljcn48whcWfp4SVXVPxh7eErpVV8dLWInMTVfV_2yhvrog

The Verifier uses the supplied options to evaluate time-based policies. For this example, provide an at timestamp to control the reference time used by the notBefore and notAfter policies.

Verification options
{
"at": "2025-02-22T00:00:00.000Z"
}

Send the credential and options.

Verify the SD-JWT credential
curl \
--request POST -i "$VIDOS_VERIFIER_ENDPOINT/vidos/verifier/v1/verify" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer $VIDOS_API_KEY" \
--data '{
"credential": "eyJhbGciOiJFUzI1NiIsImtpZCI6IjYwY2ExMmM5MjUxZjRkNTU4NDBiN2MwMDczNTk0OTE1IiwidHlwIjoiZGMrc2Qtand0In0.eyJpYXQiOiAxNzQwMTM3Mjg4LCAibmJmIjogMTc0MDEzNzI4OCwgImV4cCI6IDE3NDI3MjkyODgsICJzdWIiOiAiZGlkOmtleTp6MmRtekQ4MWNnUHg4VmtpN0pidXVNbUZZcldQZ1lveXR5a1VaM2V5cWh0MWo5S2JzY0dEQlJHd0NwVFo5RnZRZzNjenduTDhUZDkyNHlHQnBCcXptY3lUTEh4ZEFhU3ZjUTlxa0xKVGVqekVCMU4xMlVHWUo5TGhVUnBwZWJlZGtrWGpzNkRMdEEyVEpYY3puN2EzTjVYNDNFcmtOSlhzVHNQQVkyMU1yZmc4RDY3Q3FKIiwgImlzcyI6ICJodHRwczovL29pZDR2Yy5pZ3JhbnQuaW8vb3JnYW5pc2F0aW9uLzA0NzgzZTNlLWY5ODQtNDM5My04NmE3LWUzNzcxYzkzMjdmZi9zZXJ2aWNlIiwgInZjdCI6ICJWZXJpZmlhYmxlUG9ydGFibGVEb2N1bWVudEExIiwgIl9zZCI6IFsiblY4Y2dmS2w2Mlk4VlNrQUg3ZGhRZUFleEtJZG9ZcERhNkplbXlKOVBuOCIsICIxX2NLa2ZjWGZpLThpem43d2RnRjROYlFCaHo4STJ2QmRQSkNHRE80QzNnIiwgIm91dkcxTHp4c0F0bFNFc3M1bHNTcHVMS0NXZUlhZHBHS2lMSzFqSm9fMEkiLCAiSE4xQmc3TUx1M3dhWjJNcUxIeUlKb25fNmxoa3BmY1lKUmIyQ3RFSUZYQSIsICJDMmVRTGNKN0ljWVVIY3dlRUZ3dGZkamwyOVRDYnBZRFdseDl5bVB1VlU4IiwgImxsajV5RlYwSkdwODZEbmRSb3gxZU4yN3ZDdnh0TXgwVDdpa09weXlqd1UiXSwgImp0aSI6ICJ1cm46ZGlkOjgzMDg3MDJmLWM4N2MtNDg5OC1iYmZjLTM2NGExODRjOTdiOCIsICJjbmYiOiB7Imp3ayI6IHsiY3J2IjogIlAtMjU2IiwgImt0eSI6ICJFQyIsICJ4IjogInMzX0JTTWN2aXU3eG9HZ3ZtTm1WZG52Q21Ld0FkbGdlOGdNZGtiV24xcU0iLCAieSI6ICJYUWs2UGYtWWdSTFE5TXdaZEFPRjdEQWJZMG1jYUE3Q29qZGMwMy1nTEQ4In19fQ.83MKQ12hE2JWJMTNGTDX_06nU4oh6FlFrDgeTEv6H0XCAPGZuUe88JAvNFLA6_baOeIUWoNBZd9X14ZoQk7JCw~WyI5NDkyMmE1MjNkZTg3MDU4MDA2ZWNkYWRkN2NmMzc2YWRiODEyMDE1NjBmMmU1YTVjMTRlODRkODE4MmNlMmE5Iiwic2VjdGlvbjEiLHsiZGF0ZUJpcnRoIjoiMTk2OC0xMi0yOSIsImZvcmVuYW1lcyI6IkNoYXJsb3R0ZSIsIm5hdGlvbmFsaXRpZXMiOlsiU0UiXSwicGVyc29uYWxJZGVudGlmaWNhdGlvbk51bWJlciI6IjE5NjgxMjI5LTE0MTIiLCJwbGFjZUJpcnRoIjp7ImNvdW50cnlDb2RlIjoiU0UiLCJyZWdpb24iOiJTdG9ja2hvbG0iLCJ0b3duIjoiU3RvY2tob2xtIn0sInNleCI6IkZlbWFsZSIsInN0YXRlT2ZSZXNpZGVuY2VBZGRyZXNzIjp7ImNvdW50cnlDb2RlIjoiU0UiLCJwb3N0Q29kZSI6IjQxOCA3OCIsInN0cmVldE5vIjoiR3VubmFyIEVuZ2VsbGF1cyB2YWcgOCwgOTEgMUIiLCJ0b3duIjoiU3RvY2tob2xtIn0sInN0YXRlT2ZTdGF5QWRkcmVzcyI6eyJjb3VudHJ5Q29kZSI6IlNFIiwicG9zdENvZGUiOiI0MTggNzgiLCJzdHJlZXRObyI6Ikd1bm5hciBFbmdlbGxhdXMgdmFnIDgsIDkxIDFCIiwidG93biI6IlN0b2NraG9sbSJ9LCJzdXJuYW1lIjoiQW5kZXJzb24iLCJzdXJuYW1lQXRCaXJ0aCI6IkFuZGVyc29uIn1d~WyIzMjUwYTdmODhiODUyYTEzNTFjNmNhNmUwZDRhZjdkZTRmYzYyMjFkNTBiYjFhMDM3MDM1NGZiYjg1MjAzNWExIiwic2VjdGlvbjIiLHsiY2VydGlmaWNhdGVGb3JEdXJhdGlvbkFjdGl2aXR5Ijp0cnVlLCJkZXRlcm1pbmF0aW9uUHJvdmlzaW9uYWwiOmZhbHNlLCJlbmRpbmdEYXRlIjoiMjAyNC0wNy0wMyIsIm1lbWJlclN0YXRlV2hpY2hMZWdpc2xhdGlvbkFwcGxpZXMiOiJJVCIsInN0YXJ0aW5nRGF0ZSI6IjIwMjMtMDktMjEiLCJ0cmFuc2l0aW9uUnVsZXNBcHBseUFzRUM4ODMyMDA0IjpmYWxzZX1d~WyI0MGUxZGEwOGUyNzk0MTUyMWQ3ZDJhZDgxOTIxMTdhNzVjZDdkMmI3NjIxZmFhZmRmZDJmMDg0NWUxZjk0YjkyIiwic2VjdGlvbjMiLHsiY2l2aWxBbmRFbXBsb3llZFNlbGZFbXBsb3llZCI6ZmFsc2UsImNpdmlsU2VydmFudCI6ZmFsc2UsImNvbnRyYWN0U3RhZmYiOmZhbHNlLCJlbXBsb3llZEFuZFNlbGZFbXBsb3llZCI6ZmFsc2UsImVtcGxveWVkVHdvT3JNb3JlU3RhdGVzIjpmYWxzZSwiZXhjZXB0aW9uIjpmYWxzZSwiZXhjZXB0aW9uRGVzY3JpcHRpb24iOiJuaWwiLCJmbGlnaHRDcmV3TWVtYmVyIjpmYWxzZSwibWFyaW5lciI6ZmFsc2UsInBvc3RlZEVtcGxveWVkUGVyc29uIjpmYWxzZSwicG9zdGVkU2VsZkVtcGxveWVkUGVyc29uIjp0cnVlLCJzZWxmRW1wbG95ZWRUd29Pck1vcmVTdGF0ZXMiOmZhbHNlLCJ3b3JraW5nSW5TdGF0ZVVuZGVyMjEiOmZhbHNlfV0~WyIwODkzNjU2YzhiNGUzZmIyYmU0N2VhYWE3NDQzYzU3YzMyZjQwYTAyNjM5YmVkYTBiNGFiYjIwMzQ1MzZkZjIzIiwic2VjdGlvbjQiLHsiZW1wbG95ZWUiOmZhbHNlLCJlbXBsb3llclNlbGZFbXBsb3llZEFjdGl2aXR5Q29kZXMiOlsiMTg4OTExMzI0NCJdLCJuYW1lQnVzaW5lc3NOYW1lIjoiVm9sdm8iLCJyZWdpc3RlcmVkQWRkcmVzcyI6eyJjb3VudHJ5Q29kZSI6IlNFIiwicG9zdENvZGUiOiI0MTggNzgiLCJzdHJlZXRObyI6Ikd1bm5hciBFbmdlbGxhdXMgdlx1MDBlNGcgOCwgMTY0IEEiLCJ0b3duIjoiR290ZWJvcmcifSwic2VsZkVtcGxveWVkQWN0aXZpdHkiOnRydWV9XQ~WyJiYmVjNjg2ZDljM2RiMjYyOWUwNGVlNTkwNGRkOTVkZmY4NWViOTJmZDhlMmQ4NGFkNGQyZTBlODJmYjQ2ZWExIiwic2VjdGlvbjUiLHsibm9GaXhlZEFkZHJlc3MiOmZhbHNlLCJ3b3JrUGxhY2VBZGRyZXNzZXMiOlt7ImFkZHJlc3MiOnsiY291bnRyeUNvZGUiOiJJVCIsInBvc3RDb2RlIjoiMzQxMzIiLCJzdHJlZXRObyI6IlBpYXp6YSBEdWNhIGRlZ2xpIEFicnV6emkgMiwgNDQwIiwidG93biI6IlRyaWVzdGUifSwic2Vxbm8iOjF9XSwid29ya1BsYWNlTmFtZXMiOlt7ImNvbXBhbnlOYW1lVmVzc2VsTmFtZSI6IkFzc2ljdXJhemlvbmkgR2VuZXJhbGkgUy5wLkEiLCJzZXFubyI6MX1dfV0~WyIzM2VkOWI2MzE1NjAwZDFlZTA2NzAzZTlmMDNmODVkMmYyZTU5ODY4ZGM5NTJmMmQ0OWNjZTQzNTk2YjI4ODEzIiwic2VjdGlvbjYiLHsiYWRkcmVzcyI6eyJjb3VudHJ5Q29kZSI6IkJFIiwicG9zdENvZGUiOiIxMDAwIiwic3RyZWV0Tm8iOiJNYWluIFN0cmVldCAxIiwidG93biI6IkJydXNzZWxzIn0sImRhdGUiOiIyMDIzLTA5LTA3IiwiZW1haWwiOiJpbmZvQG5zc2ktYmUuZXUiLCJpbnN0aXR1dGlvbklEIjoiTlNTSS1CRS0wMSIsIm5hbWUiOiJOYXRpb25hbCBTb2NpYWwgU2VjdXJpdHkgT2ZmaWNlIiwib2ZmaWNlRmF4Tm8iOiIwODAwIDk4NzY1Iiwib2ZmaWNlUGhvbmVObyI6IjA4MDAgMTIzNDUiLCJzaWduYXR1cmUiOiJPZmZpY2lhbCBzaWduYXR1cmUifV0~eyJhbGciOiJFUzI1NiIsInR5cCI6ImtiK2p3dCJ9.eyJhdWQiOiJyZWRpcmVjdF91cmk6aHR0cHM6Ly9lYmE0MDc4YWYwMzcubmdyb2suYXBwL2F1dGhvcml6ZXIxL29wZW5pZDQvdnAvdjFfMCIsInNkX2hhc2giOiJLRUlWenF1YkdXU2lBUndRbUJ4T3JyejA5Qzc1WEM4RElNQXdoTXZrVXRNIiwibm9uY2UiOiJuLWU5YmM5OTc2LTY0NDItNDk4Mi04MjU3LTc2NmI0MGEyMjIyOCIsImlhdCI6MTc0MDY3NzAyMn0.CAdiPW4F16RPbEy2KbapfLHC6rBupfIhqJNm2-vqljcn48whcWfp4SVXVPxh7eErpVV8dLWInMTVfV_2yhvrog",
"options": {
"at": "2025-02-22T00:00:00.000Z"
}
}'

A successful verification returns HTTP 200 with individual policy outcomes. You should see format, notBefore, notAfter, and proof entries for draft-ietf-oauth-sd-jwt-vc-13 credentials.

{
"results": [
{
"data": {
"credentialType": "dc",
"format": "ietf.dc-sd-jwt",
"version": "draft-ietf-oauth-sd-jwt-vc-13"
},
"path": [],
"policy": "format",
"service": "verifier",
"status": "success"
},
{
"data": {
"reference": "2025-03-23T11:28:08.000Z",
"status": "success",
"target": "2025-02-22T00:00:00.000Z"
},
"path": [],
"policy": "notAfter",
"service": "verifier",
"status": "success"
},
{
"data": {
"reference": "2025-02-21T11:28:08.000Z",
"status": "success",
"target": "2025-02-22T00:00:00.000Z"
},
"path": [],
"policy": "notBefore",
"service": "verifier",
"status": "success"
},
{
"data": {
"type": "ietf"
},
"path": [],
"policy": "proof",
"service": "verifier",
"status": "success"
}
]
}

You have verified the credential when:

  • The HTTP status is 200.
  • All policy entries report status: "success".
  • The format policy identifies the credential as ietf.dc-sd-jwt with the expected draft version.
  • Expired credential: Update the at timestamp if you are verifying historical credentials, or issue a fresh credential if it has expired.
  • Issuer metadata not reachable: Ensure the verifier can reach the issuer /.well-known/jwt-vc-issuer endpoint and its jwks_uri.