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.
Prerequisites
Section titled “Prerequisites”Before you start, complete the setup guide so your verifier endpoint and API key are ready.
Step 1: Review the credential payload
Section titled “Step 1: Review the credential payload”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.
eyJhbGciOiJFUzI1NiIsImtpZCI6IjYwY2ExMmM5MjUxZjRkNTU4NDBiN2MwMDczNTk0OTE1IiwidHlwIjoiZGMrc2Qtand0In0.eyJpYXQiOiAxNzQwMTM3Mjg4LCAibmJmIjogMTc0MDEzNzI4OCwgImV4cCI6IDE3NDI3MjkyODgsICJzdWIiOiAiZGlkOmtleTp6MmRtekQ4MWNnUHg4VmtpN0pidXVNbUZZcldQZ1lveXR5a1VaM2V5cWh0MWo5S2JzY0dEQlJHd0NwVFo5RnZRZzNjenduTDhUZDkyNHlHQnBCcXptY3lUTEh4ZEFhU3ZjUTlxa0xKVGVqekVCMU4xMlVHWUo5TGhVUnBwZWJlZGtrWGpzNkRMdEEyVEpYY3puN2EzTjVYNDNFcmtOSlhzVHNQQVkyMU1yZmc4RDY3Q3FKIiwgImlzcyI6ICJodHRwczovL29pZDR2Yy5pZ3JhbnQuaW8vb3JnYW5pc2F0aW9uLzA0NzgzZTNlLWY5ODQtNDM5My04NmE3LWUzNzcxYzkzMjdmZi9zZXJ2aWNlIiwgInZjdCI6ICJWZXJpZmlhYmxlUG9ydGFibGVEb2N1bWVudEExIiwgIl9zZCI6IFsiblY4Y2dmS2w2Mlk4VlNrQUg3ZGhRZUFleEtJZG9ZcERhNkplbXlKOVBuOCIsICIxX2NLa2ZjWGZpLThpem43d2RnRjROYlFCaHo4STJ2QmRQSkNHRE80QzNnIiwgIm91dkcxTHp4c0F0bFNFc3M1bHNTcHVMS0NXZUlhZHBHS2lMSzFqSm9fMEkiLCAiSE4xQmc3TUx1M3dhWjJNcUxIeUlKb25fNmxoa3BmY1lKUmIyQ3RFSUZYQSIsICJDMmVRTGNKN0ljWVVIY3dlRUZ3dGZkamwyOVRDYnBZRFdseDl5bVB1VlU4IiwgImxsajV5RlYwSkdwODZEbmRSb3gxZU4yN3ZDdnh0TXgwVDdpa09weXlqd1UiXSwgImp0aSI6ICJ1cm46ZGlkOjgzMDg3MDJmLWM4N2MtNDg5OC1iYmZjLTM2NGExODRjOTdiOCIsICJjbmYiOiB7Imp3ayI6IHsiY3J2IjogIlAtMjU2IiwgImt0eSI6ICJFQyIsICJ4IjogInMzX0JTTWN2aXU3eG9HZ3ZtTm1WZG52Q21Ld0FkbGdlOGdNZGtiV24xcU0iLCAieSI6ICJYUWs2UGYtWWdSTFE5TXdaZEFPRjdEQWJZMG1jYUE3Q29qZGMwMy1nTEQ4In19fQ.83MKQ12hE2JWJMTNGTDX_06nU4oh6FlFrDgeTEv6H0XCAPGZuUe88JAvNFLA6_baOeIUWoNBZd9X14ZoQk7JCw~WyI5NDkyMmE1MjNkZTg3MDU4MDA2ZWNkYWRkN2NmMzc2YWRiODEyMDE1NjBmMmU1YTVjMTRlODRkODE4MmNlMmE5Iiwic2VjdGlvbjEiLHsiZGF0ZUJpcnRoIjoiMTk2OC0xMi0yOSIsImZvcmVuYW1lcyI6IkNoYXJsb3R0ZSIsIm5hdGlvbmFsaXRpZXMiOlsiU0UiXSwicGVyc29uYWxJZGVudGlmaWNhdGlvbk51bWJlciI6IjE5NjgxMjI5LTE0MTIiLCJwbGFjZUJpcnRoIjp7ImNvdW50cnlDb2RlIjoiU0UiLCJyZWdpb24iOiJTdG9ja2hvbG0iLCJ0b3duIjoiU3RvY2tob2xtIn0sInNleCI6IkZlbWFsZSIsInN0YXRlT2ZSZXNpZGVuY2VBZGRyZXNzIjp7ImNvdW50cnlDb2RlIjoiU0UiLCJwb3N0Q29kZSI6IjQxOCA3OCIsInN0cmVldE5vIjoiR3VubmFyIEVuZ2VsbGF1cyB2YWcgOCwgOTEgMUIiLCJ0b3duIjoiU3RvY2tob2xtIn0sInN0YXRlT2ZTdGF5QWRkcmVzcyI6eyJjb3VudHJ5Q29kZSI6IlNFIiwicG9zdENvZGUiOiI0MTggNzgiLCJzdHJlZXRObyI6Ikd1bm5hciBFbmdlbGxhdXMgdmFnIDgsIDkxIDFCIiwidG93biI6IlN0b2NraG9sbSJ9LCJzdXJuYW1lIjoiQW5kZXJzb24iLCJzdXJuYW1lQXRCaXJ0aCI6IkFuZGVyc29uIn1d~WyIzMjUwYTdmODhiODUyYTEzNTFjNmNhNmUwZDRhZjdkZTRmYzYyMjFkNTBiYjFhMDM3MDM1NGZiYjg1MjAzNWExIiwic2VjdGlvbjIiLHsiY2VydGlmaWNhdGVGb3JEdXJhdGlvbkFjdGl2aXR5Ijp0cnVlLCJkZXRlcm1pbmF0aW9uUHJvdmlzaW9uYWwiOmZhbHNlLCJlbmRpbmdEYXRlIjoiMjAyNC0wNy0wMyIsIm1lbWJlclN0YXRlV2hpY2hMZWdpc2xhdGlvbkFwcGxpZXMiOiJJVCIsInN0YXJ0aW5nRGF0ZSI6IjIwMjMtMDktMjEiLCJ0cmFuc2l0aW9uUnVsZXNBcHBseUFzRUM4ODMyMDA0IjpmYWxzZX1d~WyI0MGUxZGEwOGUyNzk0MTUyMWQ3ZDJhZDgxOTIxMTdhNzVjZDdkMmI3NjIxZmFhZmRmZDJmMDg0NWUxZjk0YjkyIiwic2VjdGlvbjMiLHsiY2l2aWxBbmRFbXBsb3llZFNlbGZFbXBsb3llZCI6ZmFsc2UsImNpdmlsU2VydmFudCI6ZmFsc2UsImNvbnRyYWN0U3RhZmYiOmZhbHNlLCJlbXBsb3llZEFuZFNlbGZFbXBsb3llZCI6ZmFsc2UsImVtcGxveWVkVHdvT3JNb3JlU3RhdGVzIjpmYWxzZSwiZXhjZXB0aW9uIjpmYWxzZSwiZXhjZXB0aW9uRGVzY3JpcHRpb24iOiJuaWwiLCJmbGlnaHRDcmV3TWVtYmVyIjpmYWxzZSwibWFyaW5lciI6ZmFsc2UsInBvc3RlZEVtcGxveWVkUGVyc29uIjpmYWxzZSwicG9zdGVkU2VsZkVtcGxveWVkUGVyc29uIjp0cnVlLCJzZWxmRW1wbG95ZWRUd29Pck1vcmVTdGF0ZXMiOmZhbHNlLCJ3b3JraW5nSW5TdGF0ZVVuZGVyMjEiOmZhbHNlfV0~WyIwODkzNjU2YzhiNGUzZmIyYmU0N2VhYWE3NDQzYzU3YzMyZjQwYTAyNjM5YmVkYTBiNGFiYjIwMzQ1MzZkZjIzIiwic2VjdGlvbjQiLHsiZW1wbG95ZWUiOmZhbHNlLCJlbXBsb3llclNlbGZFbXBsb3llZEFjdGl2aXR5Q29kZXMiOlsiMTg4OTExMzI0NCJdLCJuYW1lQnVzaW5lc3NOYW1lIjoiVm9sdm8iLCJyZWdpc3RlcmVkQWRkcmVzcyI6eyJjb3VudHJ5Q29kZSI6IlNFIiwicG9zdENvZGUiOiI0MTggNzgiLCJzdHJlZXRObyI6Ikd1bm5hciBFbmdlbGxhdXMgdlx1MDBlNGcgOCwgMTY0IEEiLCJ0b3duIjoiR290ZWJvcmcifSwic2VsZkVtcGxveWVkQWN0aXZpdHkiOnRydWV9XQ~WyJiYmVjNjg2ZDljM2RiMjYyOWUwNGVlNTkwNGRkOTVkZmY4NWViOTJmZDhlMmQ4NGFkNGQyZTBlODJmYjQ2ZWExIiwic2VjdGlvbjUiLHsibm9GaXhlZEFkZHJlc3MiOmZhbHNlLCJ3b3JrUGxhY2VBZGRyZXNzZXMiOlt7ImFkZHJlc3MiOnsiY291bnRyeUNvZGUiOiJJVCIsInBvc3RDb2RlIjoiMzQxMzIiLCJzdHJlZXRObyI6IlBpYXp6YSBEdWNhIGRlZ2xpIEFicnV6emkgMiwgNDQwIiwidG93biI6IlRyaWVzdGUifSwic2Vxbm8iOjF9XSwid29ya1BsYWNlTmFtZXMiOlt7ImNvbXBhbnlOYW1lVmVzc2VsTmFtZSI6IkFzc2ljdXJhemlvbmkgR2VuZXJhbGkgUy5wLkEiLCJzZXFubyI6MX1dfV0~WyIzM2VkOWI2MzE1NjAwZDFlZTA2NzAzZTlmMDNmODVkMmYyZTU5ODY4ZGM5NTJmMmQ0OWNjZTQzNTk2YjI4ODEzIiwic2VjdGlvbjYiLHsiYWRkcmVzcyI6eyJjb3VudHJ5Q29kZSI6IkJFIiwicG9zdENvZGUiOiIxMDAwIiwic3RyZWV0Tm8iOiJNYWluIFN0cmVldCAxIiwidG93biI6IkJydXNzZWxzIn0sImRhdGUiOiIyMDIzLTA5LTA3IiwiZW1haWwiOiJpbmZvQG5zc2ktYmUuZXUiLCJpbnN0aXR1dGlvbklEIjoiTlNTSS1CRS0wMSIsIm5hbWUiOiJOYXRpb25hbCBTb2NpYWwgU2VjdXJpdHkgT2ZmaWNlIiwib2ZmaWNlRmF4Tm8iOiIwODAwIDk4NzY1Iiwib2ZmaWNlUGhvbmVObyI6IjA4MDAgMTIzNDUiLCJzaWduYXR1cmUiOiJPZmZpY2lhbCBzaWduYXR1cmUifV0~eyJhbGciOiJFUzI1NiIsInR5cCI6ImtiK2p3dCJ9.eyJhdWQiOiJyZWRpcmVjdF91cmk6aHR0cHM6Ly9lYmE0MDc4YWYwMzcubmdyb2suYXBwL2F1dGhvcml6ZXIxL29wZW5pZDQvdnAvdjFfMCIsInNkX2hhc2giOiJLRUlWenF1YkdXU2lBUndRbUJ4T3JyejA5Qzc1WEM4RElNQXdoTXZrVXRNIiwibm9uY2UiOiJuLWU5YmM5OTc2LTY0NDItNDk4Mi04MjU3LTc2NmI0MGEyMjIyOCIsImlhdCI6MTc0MDY3NzAyMn0.CAdiPW4F16RPbEy2KbapfLHC6rBupfIhqJNm2-vqljcn48whcWfp4SVXVPxh7eErpVV8dLWInMTVfV_2yhvrogStep 2: Configure verification options
Section titled “Step 2: Configure verification options”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.
{ "at": "2025-02-22T00:00:00.000Z"}Step 3: Call the Verifier API
Section titled “Step 3: Call the Verifier API”Send the credential and options.
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" }}'Step 4: Review the response
Section titled “Step 4: Review the response”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" } ]}Verify success
Section titled “Verify success”You have verified the credential when:
- The HTTP status is 200.
- All policy entries report
status: "success". - The
formatpolicy identifies the credential asietf.dc-sd-jwtwith the expected draft version.
Troubleshooting
Section titled “Troubleshooting”- Expired credential: Update the
attimestamp 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-issuerendpoint and itsjwks_uri.