UNPKG

@sphereon/oid4vci-client

Version:

OpenID for Verifiable Credential Issuance (OpenID4VCI) client

951 lines (947 loc) • 66.1 kB
import { CredentialSupportedFormatV1_0_08, IssuerCredentialSubjectDisplay, IssuerMetadataV1_0_08, IssuerMetadataV1_0_13, PRE_AUTH_GRANT_LITERAL, } from '@sphereon/oid4vci-common'; import { ICredentialStatus, W3CVerifiableCredential } from '@sphereon/ssi-types'; export function getMockData(issuerName: string): IssuerMockData | null { if (issuerName in mockData) { return mockData[issuerName]; } return null; } export interface VciMockDataStructure { [issuerName: string]: IssuerMockData; } export interface IssuerMockData { metadata: { issuer?: string; token_endpoint: string; credential_endpoint: string; openid4vci_metadata: IssuerMetadataV1_0_08 | IssuerMetadataV1_0_13; }; auth: { url: string; method?: string; request: { client_id: string; grant_type: 'urn:ietf:params:oauth:grant-type:pre-authorized_code' | 'authorization_code' | 'password'; 'pre-authorized_code'?: string; }; response: { access_token: string; token_type: string; expires_in: number; c_nonce?: string; c_nonce_expires_in?: number; refresh_token?: string; id_token?: string; scope?: string; }; }; credential: { url: string; deeplink: string; request: { types?: [string]; type?: string; format: 'jwt_vc' | 'ldp_vc' | 'jwt_vc_json-ld' | string; proof: { proof_type: 'jwt' | string; jwt: string; }; }; response: { format?: 'jwt_vc' | 'w3cvc-jsonld' | string; credential: W3CVerifiableCredential; acceptance_token?: string; c_nonce?: string; c_nonce_expires_in?: number; }; }; } const mockData: VciMockDataStructure = { spruce: { metadata: { issuer: 'https://ngi-oidc4vci-test.spruceid.xyz', token_endpoint: 'https://ngi-oidc4vci-testspruceid.xyz/token', credential_endpoint: 'https://ngi-oidc4vci-test.spruceid.xyz/credential', openid4vci_metadata: { issuer: 'https://ngi-oidc4vci-test.spruceid.xyz', credential_endpoint: 'https://ngi-oidc4vci-test.spruceid.xyz/credential', token_endpoint: 'https://ngi-oidc4vci-test.spruceid.xyz/token', jwks_uri: 'https://ngi-oidc4vci-test.spruceid.xyz/jwks', grant_types_supported: [PRE_AUTH_GRANT_LITERAL], credentials_supported: { OpenBadgeCredential: { formats: { jwt_vc: { types: ['VerifiableCredential', 'OpenBadgeCredential'], cryptographic_binding_methods_supported: ['did'], credential_signing_alg_values_supported: ['ES256', 'ES256K'], }, ldp_vc: { types: ['VerifiableCredential', 'OpenBadgeCredential'], cryptographic_binding_methods_supported: ['did'], credential_signing_alg_values_supported: ['Ed25519Signature2018'], }, }, }, }, }, }, auth: { url: 'https://ngi-oidc4vci-test.spruceid.xyz/token', method: 'POST', request: { client_id: 'sphereon:ssi-wallet', grant_type: PRE_AUTH_GRANT_LITERAL, 'pre-authorized_code': 'eyJhbGciOiJFUzI1NiJ9.eyJjcmVkZW50aWFsX3R5cGUiOlsiT3BlbkJhZGdlQ3JlZGVudGlhbCJdLCJleHAiOiIyMDIzLTA0LTE5VDExOjUzOjM4WiIsIm5vbmNlIjoiN3F4YldMcktpNTZjNjRlWjljaHJZeVUxbFVVQzMzV1YifQ.tDxAC8CsqN-DALOmY5ANEVf96fZfTzqHL4Aiq4IZzMJ-zSCrNkNBeuOK5D3RsJhSZcDMu2XvuG1RrSXJV0zHRg', }, response: { access_token: 'eyJhbGciOiJFUzI1NiJ9.eyJvcF9zdGF0ZSI6eyJjcmVkZW50aWFsX3R5cGUiOlsiT3BlbkJhZGdlQ3JlZGVudGlhbCJdfSwiaWF0IjoxNjgxOTA0OTUwLjAsImV4cCI6MTY4MTk5MTM1MC4wfQ.0CT_o2woWAQf_8mcPfC7uVtp_Cu8N4BLNOAgJGcQc-IcoS61QL2pArp7KdZGXGjqRmx9u4JjoVZuZHJSaDIyDg', token_type: 'bearer', expires_in: 84600, }, }, credential: { url: 'https://ngi-oidc4vci-test.spruceid.xyz/credential', deeplink: 'openid-initiate-issuance://?issuer=https%3A%2F%2Fngi%2Doidc4vci%2Dtest%2Espruceid%2Exyz&credential_type=OpenBadgeCredential&pre-authorized_code=eyJhbGciOiJFUzI1NiJ9.eyJjcmVkZW50aWFsX3R5cGUiOlsiT3BlbkJhZGdlQ3JlZGVudGlhbCJdLCJleHAiOiIyMDIzLTA0LTIwVDA5OjA0OjM2WiIsIm5vbmNlIjoibWFibmVpT0VSZVB3V3BuRFFweEt3UnRsVVRFRlhGUEwifQ.qOZRPN8sTv_knhp7WaWte2-aDULaPZX--2i9unF6QDQNUllqDhvxgIHMDCYHCV8O2_Gj-T2x1J84fDMajE3asg&user_pin_required=false', request: { type: 'OpenBadgeCredential', format: 'jwt_vc', proof: { proof_type: 'jwt', jwt: 'eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NksiLCJraWQiOiJkaWQ6andrOmV5SmhiR2NpT2lKRlV6STFOa3NpTENKMWMyVWlPaUp6YVdjaUxDSnJkSGtpT2lKRlF5SXNJbU55ZGlJNkluTmxZM0F5TlRack1TSXNJbmdpT2lKclpuVmpTa0V0VEhKck9VWjBPRmx5TFVkMlQzSmpia3N3YjNkc2RqUlhNblUwU3pJeFNHZHZTVlIzSWl3aWVTSTZJalozY0ZCUE1rOUNRVXBTU0ZFMVRXdEtXVlJaV0dsQlJFUXdOMU5OTlV0amVXcDNYMkUzVUUxWmVGa2lmUSMwIn0.eyJhdWQiOiJodHRwczovL25naS1vaWRjNHZjaS10ZXN0LnNwcnVjZWlkLnh5eiIsImlhdCI6MTY4MTkxMTA2MC45NDIsImV4cCI6MTY4MTkxMTcyMC45NDIsImlzcyI6InNwaGVyZW9uOnNzaS13YWxsZXQiLCJqdGkiOiJhNjA4MzMxZi02ZmE0LTQ0ZjAtYWNkZWY5NmFjMjdmNmQ3MCJ9.NwF3_41gwnlIdd_6Uk9CczeQHzIQt6UcvTT5Cxv72j9S1vNwiY9annA2kLsjsTiR5-WMBdUhJCO7wYCtZ15mxw', }, }, response: { format: 'jwt_vc', credential: 'eyJhbGciOiJFUzI1NiIsImtpZCI6ImRpZDpqd2s6ZXlKamNuWWlPaUpRTFRJMU5pSXNJbXQwZVNJNklrVkRJaXdpZUNJNklrUTNXblZZUldKRWF6bFFURzFDYkVGZldEVnVOa3N3V1dOSVdrRlZTbHBLZDFkYVVFNDBhRVppYlhjaUxDSjVJam9pYkY5b1F6Y3liREkyTFVnMlFrMURWVEp3TWxReVIxWkRSWGxoYUVWRFIyaFVaMnB2VDBkRmRESlJSU0o5IzAifQeyJleHAiOjE2ODE5OTc1MTguMCwiaXNzIjoiZGlkOmp3azpleUpqY25ZaU9pSlFMVEkxTmlJc0ltdDBlU0k2SWtWRElpd2llQ0k2SWtRM1duVllSV0pFYXpsUVRHMUNiRUZmV0RWdU5rc3dXV05JV2tGVlNscEtkMWRhVUU0MGFFWmliWGNpTENKNUlqb2liRjlvUXpjeWJESTJMVWcyUWsxRFZUSndNbFF5UjFaRFJYbGhhRVZEUjJoVVoycHZUMGRGZERKUlJTSjkiLCJuYmYiOjE2ODE5MTExMTguMCwianRpIjoidXJuOnV1aWQ6MDVhMThiMTMtYjA5Mi00MTZhLWI4OTgtY2I1OTU4N2IxNzNiIiwic3ViIjoiZGlkOmp3azpleUpoYkdjaU9pSkZVekkxTmtzaUxDSjFjMlVpT2lKemFXY2lMQ0pyZEhraU9pSkZReUlzSW1OeWRpSTZJbk5sWTNBeU5UWnJNU0lzSW5naU9pSnJablZqU2tFdFRISnJPVVowT0ZseUxVZDJUM0pqYmtzd2IzZHNkalJYTW5VMFN6SXhTR2R2U1ZSM0lpd2llU0k2SWpaM2NGQlBNazlDUVVwU1NGRTFUV3RLV1ZSWldHbEJSRVF3TjFOTk5VdGplV3AzWDJFM1VFMVplRmtpZlEiLCJ2YyI6eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvMjAxOC9jcmVkZW50aWFscy92MSIsImh0dHBzOi8vcHVybC5pbXNnbG9iYWwub3JnL3NwZWMvb2IvdjNwMC9jb250ZXh0Lmpzb24iXSwiaWQiOiJ1cm46dXVpZDowNWExOGIxMy1iMDkyLTQxNmEtYjg5OC1jYjU5NTg3YjE3M2IiLCJ0eXBlIjpbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwiT3BlbkJhZGdlQ3JlZGVudGlhbCJdLCJjcmVkZW50aWFsU3ViamVjdCI6eyJpZCI6ImRpZDpqd2s6ZXlKaGJHY2lPaUpGVXpJMU5rc2lMQ0oxYzJVaU9pSnphV2NpTENKcmRIa2lPaUpGUXlJc0ltTnlkaUk2SW5ObFkzQXlOVFpyTVNJc0luZ2lPaUpyWm5WalNrRXRUSEpyT1VaME9GbHlMVWQyVDNKamJrc3diM2RzZGpSWE1uVTBTekl4U0dkdlNWUjNJaXdpZVNJNklqWjNjRkJQTWs5Q1FVcFNTRkUxVFd0S1dWUlpXR2xCUkVRd04xTk5OVXRqZVdwM1gyRTNVRTFaZUZraWZRIiwidHlwZSI6WyJBY2hpZXZlbWVudFN1YmplY3QiXSwiYWNoaWV2ZW1lbnQiOnsiaWQiOiJ1cm46dXVpZDo1YTNmODE3Mi0zMjJiLTRhNzEtYTI1Ny1iMTFjMTA5MGI4YjkiLCJ0eXBlIjpbIkFjaGlldmVtZW50Il0sIm5hbWUiOiJKRkYgeCB2Yy1lZHUgUGx1Z0Zlc3QgMiBJbnRlcm9wZXJhYmlsaXR5IiwiZGVzY3JpcHRpb24iOiJUaGlzIGNyZWRlbnRpYWwgc29sdXRpb24gc3VwcG9ydHMgdGhlIHVzZSBvZiBPQnYzIGFuZCB3M2MgVmVyaWZpYWJsZSBDcmVkZW50aWFscyBhbmQgaXMgaW50ZXJvcGVyYWJsZSB3aXRoIGF0IGxlYXN0IHR3byBvdGhlciBzb2x1dGlvbnMuICBUaGlzIHdhcyBkZW1vbnN0cmF0ZWQgc3VjY2Vzc2Z1bGx5IGR1cmluZyBKRkYgeCB2Yy1lZHUgUGx1Z0Zlc3QgMi4iLCJjcml0ZXJpYSI6eyJuYXJyYXRpdmUiOiJTb2x1dGlvbnMgcHJvdmlkZXJzIGVhcm5lZCB0aGlzIGJhZGdlIGJ5IGRlbW9uc3RyYXRpbmcgaW50ZXJvcGVyYWJpbGl0eSBiZXR3ZWVuIG11bHRpcGxlIHByb3ZpZGVycyBiYXNlZCBvbiB0aGUgT0J2MyBjYW5kaWRhdGUgZmluYWwgc3RhbmRhcmQsIHdpdGggc29tZSBhZGRpdGlvbmFsIHJlcXVpcmVkIGZpZWxkcy4gQ3JlZGVudGlhbCBpc3N1ZXJzIGVhcm5pbmcgdGhpcyBiYWRnZSBzdWNjZXNzZnVsbHkgaXNzdWVkIGEgY3JlZGVudGlhbCBpbnRvIGF0IGxlYXN0IHR3byB3YWxsZXRzLiAgV2FsbGV0IGltcGxlbWVudGVycyBlYXJuaW5nIHRoaXMgYmFkZ2Ugc3VjY2Vzc2Z1bGx5IGRpc3BsYXllZCBjcmVkZW50aWFscyBpc3N1ZWQgYnkgYXQgbGVhc3QgdHdvIGRpZmZlcmVudCBjcmVkZW50aWFsIGlzc3VlcnMuIn0sImltYWdlIjp7ImlkIjoiaHR0cHM6Ly93M2MtY2NnLmdpdGh1Yi5pby92Yy1lZC9wbHVnZmVzdC0yLTIwMjIvaW1hZ2VzL0pGRi1WQy1FRFUtUExVR0ZFU1QyLWJhZGdlLWltYWdlLnBuZyIsInR5cGUiOiJJbWFnZSJ9fX0sImlzc3VlciI6eyJpZCI6ImRpZDpqd2s6ZXlKamNuWWlPaUpRTFRJMU5pSXNJbXQwZVNJNklrVkRJaXdpZUNJNklrUTNXblZZUldKRWF6bFFURzFDYkVGZldEVnVOa3N3V1dOSVdrRlZTbHBLZDFkYVVFNDBhRVppYlhjaUxDSjVJam9pYkY5b1F6Y3liREkyTFVnMlFrMURWVEp3TWxReVIxWkRSWGxoYUVWRFIyaFVaMnB2VDBkRmRESlJSU0o5IiwibmFtZSI6IkpvYnMgZm9yIHRoZSBGdXR1cmUgKEpGRikiLCJpbWFnZSI6eyJpZCI6Imh0dHBzOi8vdzNjLWNjZy5naXRodWIuaW8vdmMtZWQvcGx1Z2Zlc3QtMi0yMDIyL2ltYWdlcy9KRkYtVkMtRURVLVBMVUdGRVNUMi1iYWRnZS1pbWFnZS5wbmciLCJ0eXBlIjoiSW1hZ2UifSwidHlwZSI6WyJQcm9maWxlIl0sInVybCI6Imh0dHBzOi8vd3d3LmpmZi5vcmcvIn0sImlzc3VhbmNlRGF0ZSI6IjIwMjMtMDQtMTlUMTM6MzE6NThaIiwiZXhwaXJhdGlvbkRhdGUiOiIyMDIzLTA0LTIwVDEzOjMxOjU4WiIsIm5hbWUiOiJKRkYgeCB2Yy1lZHUgUGx1Z0Zlc3QgMiBJbnRlcm9wZXJhYmlsaXR5In19.8GQEtIZGTApWBpyOC3dFX8heAo3nKxb6RXzZroM3YtLVIIzWP60adgXk5IYsgsHgvoVRq9UP9igJpycH4Rxa8w', }, }, }, walt: { metadata: { issuer: 'https://jff.walt.id/issuer-api/default/oidc/', token_endpoint: 'https://jff.walt.id/issuer-api/default/oidc/token', credential_endpoint: 'https://jff.walt.id/issuer-api/default/oidc/credential', openid4vci_metadata: { authorization_endpoint: 'https://jff.walt.id/issuer-api/default/oidc/fulfillPAR', token_endpoint: 'https://jff.walt.id/issuer-api/default/oidc/token', pushed_authorization_request_endpoint: 'https://jff.walt.id/issuer-api/default/oidc/par', issuer: 'https://jff.walt.id/issuer-api/default', jwks_uri: 'https://jff.walt.id/issuer-api/default/oidc', grant_types_supported: ['authorization_code', PRE_AUTH_GRANT_LITERAL], request_uri_parameter_supported: true, credentials_supported: { VerifiableId: { display: [ { name: 'VerifiableId', }, ], formats: { ldp_vc: { cryptographic_binding_methods_supported: ['did'], credential_signing_alg_values_supported: [ 'Ed25519Signature2018', 'Ed25519Signature2020', 'EcdsaSecp256k1Signature2019', 'RsaSignature2018', 'JsonWebSignature2020', 'JcsEd25519Signature2020', ], types: ['VerifiableCredential', 'VerifiableAttestation', 'VerifiableId'], }, jwt_vc: { cryptographic_binding_methods_supported: ['did'], credential_signing_alg_values_supported: ['ES256', 'ES256K', 'EdDSA', 'RS256', 'PS256'], types: ['VerifiableCredential', 'VerifiableAttestation', 'VerifiableId'], }, }, }, VerifiableDiploma: { display: [ { name: 'VerifiableDiploma', }, ], formats: { ldp_vc: { cryptographic_binding_methods_supported: ['did'], credential_signing_alg_values_supported: [ 'Ed25519Signature2018', 'Ed25519Signature2020', 'EcdsaSecp256k1Signature2019', 'RsaSignature2018', 'JsonWebSignature2020', 'JcsEd25519Signature2020', ], types: ['VerifiableCredential', 'VerifiableAttestation', 'VerifiableDiploma'], }, jwt_vc: { cryptographic_binding_methods_supported: ['did'], credential_signing_alg_values_supported: ['ES256', 'ES256K', 'EdDSA', 'RS256', 'PS256'], types: ['VerifiableCredential', 'VerifiableAttestation', 'VerifiableDiploma'], }, }, }, VerifiableVaccinationCertificate: { display: [ { name: 'VerifiableVaccinationCertificate', }, ], formats: { ldp_vc: { cryptographic_binding_methods_supported: ['did'], credential_signing_alg_values_supported: [ 'Ed25519Signature2018', 'Ed25519Signature2020', 'EcdsaSecp256k1Signature2019', 'RsaSignature2018', 'JsonWebSignature2020', 'JcsEd25519Signature2020', ], types: ['VerifiableCredential', 'VerifiableAttestation', 'VerifiableVaccinationCertificate'], }, jwt_vc: { cryptographic_binding_methods_supported: ['did'], credential_signing_alg_values_supported: ['ES256', 'ES256K', 'EdDSA', 'RS256', 'PS256'], types: ['VerifiableCredential', 'VerifiableAttestation', 'VerifiableVaccinationCertificate'], }, }, }, ProofOfResidence: { display: [ { name: 'ProofOfResidence', }, ], formats: { ldp_vc: { cryptographic_binding_methods_supported: ['did'], credential_signing_alg_values_supported: [ 'Ed25519Signature2018', 'Ed25519Signature2020', 'EcdsaSecp256k1Signature2019', 'RsaSignature2018', 'JsonWebSignature2020', 'JcsEd25519Signature2020', ], types: ['VerifiableCredential', 'VerifiableAttestation', 'ProofOfResidence'], }, jwt_vc: { cryptographic_binding_methods_supported: ['did'], credential_signing_alg_values_supported: ['ES256', 'ES256K', 'EdDSA', 'RS256', 'PS256'], types: ['VerifiableCredential', 'VerifiableAttestation', 'ProofOfResidence'], }, }, }, ParticipantCredential: { display: [ { name: 'ParticipantCredential', }, ], formats: { ldp_vc: { cryptographic_binding_methods_supported: ['did'], credential_signing_alg_values_supported: [ 'Ed25519Signature2018', 'Ed25519Signature2020', 'EcdsaSecp256k1Signature2019', 'RsaSignature2018', 'JsonWebSignature2020', 'JcsEd25519Signature2020', ], types: ['VerifiableCredential', 'ParticipantCredential'], }, jwt_vc: { cryptographic_binding_methods_supported: ['did'], credential_signing_alg_values_supported: ['ES256', 'ES256K', 'EdDSA', 'RS256', 'PS256'], types: ['VerifiableCredential', 'ParticipantCredential'], }, }, }, Europass: { display: [ { name: 'Europass', }, ], formats: { ldp_vc: { cryptographic_binding_methods_supported: ['did'], credential_signing_alg_values_supported: [ 'Ed25519Signature2018', 'Ed25519Signature2020', 'EcdsaSecp256k1Signature2019', 'RsaSignature2018', 'JsonWebSignature2020', 'JcsEd25519Signature2020', ], types: ['VerifiableCredential', 'VerifiableAttestation', 'Europass'], }, jwt_vc: { cryptographic_binding_methods_supported: ['did'], credential_signing_alg_values_supported: ['ES256', 'ES256K', 'EdDSA', 'RS256', 'PS256'], types: ['VerifiableCredential', 'VerifiableAttestation', 'Europass'], }, }, }, OpenBadgeCredential: { display: [ { name: 'OpenBadgeCredential', }, ], formats: { ldp_vc: { cryptographic_binding_methods_supported: ['did'], credential_signing_alg_values_supported: [ 'Ed25519Signature2018', 'Ed25519Signature2020', 'EcdsaSecp256k1Signature2019', 'RsaSignature2018', 'JsonWebSignature2020', 'JcsEd25519Signature2020', ], types: ['VerifiableCredential', 'OpenBadgeCredential'], }, jwt_vc: { cryptographic_binding_methods_supported: ['did'], credential_signing_alg_values_supported: ['ES256', 'ES256K', 'EdDSA', 'RS256', 'PS256'], types: ['VerifiableCredential', 'OpenBadgeCredential'], }, }, }, }, credential_issuer: { display: [ { name: 'https://jff.walt.id/issuer-api/default', }, ], }, credential_endpoint: 'https://jff.walt.id/issuer-api/default/oidc/credential', subject_types_supported: ['public'], }, }, auth: { url: 'https://jff.walt.id/issuer-api/default/oidc/token', method: 'POST', request: { client_id: 'sphereon:ssi-wallet', grant_type: PRE_AUTH_GRANT_LITERAL, 'pre-authorized_code': 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI1NzhkZWZjOS0wMTFlLTQ3ZTAtYmQ5YS03MWFlOGU4ZTJjYzYiLCJwcmUtYXV0aG9yaXplZCI6dHJ1ZX0.uh1rX4qVqlp-YW-itLON8Zmov8t-xugCFDXlUSPuTSQ', }, response: { access_token: '578defc9-011e-47e0-bd9a-71ae8e8e2cc6', refresh_token: 'zx6cildNnkqLpdCoCVnr5d77OJ6m0ugl-0sVSoEb3go', c_nonce: 'f06a3105-a2ed-44fc-954b-4a259703493b', id_token: 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI1NzhkZWZjOS0wMTFlLTQ3ZTAtYmQ5YS03MWFlOGU4ZTJjYzYifQ.MlWL2L-YucfugV573GbGFI8UHiDrGQatlekpgPq5nBY', token_type: 'Bearer', expires_in: 300, }, }, credential: { deeplink: 'openid-initiate-issuance://?issuer=https%3A%2F%2Fjff.walt.id%2Fissuer-api%2Fdefault%2Foidc%2F&credential_type=OpenBadgeCredential&pre-authorized_code=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIwMTc4OTNjYy04ZTY3LTQxNzItYWZlOS1lODcyYmYxNDBlNWMiLCJwcmUtYXV0aG9yaXplZCI6dHJ1ZX0.ODfq2AIhOcB61dAb3zMrXBJjPJaf53zkeHh_AssYyYA&user_pin_required=false', url: 'https://jff.walt.id/issuer-api/default/oidc/credential', request: { types: ['OpenBadgeCredential'], format: 'jwt_vc', proof: { proof_type: 'jwt', jwt: 'eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NksiLCJraWQiOiJkaWQ6andrOmV5SmhiR2NpT2lKRlV6STFOa3NpTENKMWMyVWlPaUp6YVdjaUxDSnJkSGtpT2lKRlF5SXNJbU55ZGlJNkluTmxZM0F5TlRack1TSXNJbmdpT2lKclpuVmpTa0V0VEhKck9VWjBPRmx5TFVkMlQzSmpia3N3YjNkc2RqUlhNblUwU3pJeFNHZHZTVlIzSWl3aWVTSTZJalozY0ZCUE1rOUNRVXBTU0ZFMVRXdEtXVlJaV0dsQlJFUXdOMU5OTlV0amVXcDNYMkUzVUUxWmVGa2lmUSMwIn0.eyJhdWQiOiJodHRwczovL2pmZi53YWx0LmlkL2lzc3Vlci1hcGkvZGVmYXVsdC9vaWRjLyIsImlhdCI6MTY4MTkxMTk0Mi4yMzgsImV4cCI6MTY4MTkxMjYwMi4yMzgsIm5vbmNlIjoiZjA2YTMxMDUtYTJlZC00NGZjLTk1NGItNGEyNTk3MDM0OTNiIiwiaXNzIjoic3BoZXJlb246c3NpLXdhbGxldCIsImp0aSI6IjA1OWM3ODA5LTlmOGYtNGE3ZS1hZDI4YTNhMTNhMGIzNmViIn0.RfiWyybxpe3nkx3b0yIsqDHQtvB1WwhDW4t0X-kijy2dsSfv2cYhSEmAzs1shg7OV4EW8fSzt_Te79xiVl6jCw', }, }, response: { credential: 'eyJraWQiOiJkaWQ6andrOmV5SnJkSGtpT2lKUFMxQWlMQ0oxYzJVaU9pSnphV2NpTENKamNuWWlPaUpGWkRJMU5URTVJaXdpYTJsa0lqb2lOMlEyWTJKbU1qUTRPV0l6TkRJM05tSXhOekl4T1RBMU5EbGtNak01TVRnaUxDSjRJam9pUm01RlZWVmhkV1J0T1RsT016QmlPREJxY3poV2REUkJiazk0ZGxKM1dIUm5VbU5MY1ROblFrbDFPQ0lzSW1Gc1p5STZJa1ZrUkZOQkluMCMwIiwidHlwIjoiSldUIiwiYWxnIjoiRWREU0EifQ.eyJpc3MiOiJkaWQ6andrOmV5SnJkSGtpT2lKUFMxQWlMQ0oxYzJVaU9pSnphV2NpTENKamNuWWlPaUpGWkRJMU5URTVJaXdpYTJsa0lqb2lOMlEyWTJKbU1qUTRPV0l6TkRJM05tSXhOekl4T1RBMU5EbGtNak01TVRnaUxDSjRJam9pUm01RlZWVmhkV1J0T1RsT016QmlPREJxY3poV2REUkJiazk0ZGxKM1dIUm5VbU5MY1ROblFrbDFPQ0lzSW1Gc1p5STZJa1ZrUkZOQkluMCIsInN1YiI6ImRpZDpqd2s6ZXlKaGJHY2lPaUpGVXpJMU5rc2lMQ0oxYzJVaU9pSnphV2NpTENKcmRIa2lPaUpGUXlJc0ltTnlkaUk2SW5ObFkzQXlOVFpyTVNJc0luZ2lPaUpyWm5WalNrRXRUSEpyT1VaME9GbHlMVWQyVDNKamJrc3diM2RzZGpSWE1uVTBTekl4U0dkdlNWUjNJaXdpZVNJNklqWjNjRkJQTWs5Q1FVcFNTRkUxVFd0S1dWUlpXR2xCUkVRd04xTk5OVXRqZVdwM1gyRTNVRTFaZUZraWZRIiwibmJmIjoxNjgxOTExOTk5LCJpYXQiOjE2ODE5MTE5OTksInZjIjp7InR5cGUiOlsiVmVyaWZpYWJsZUNyZWRlbnRpYWwiLCJPcGVuQmFkZ2VDcmVkZW50aWFsIl0sIkBjb250ZXh0IjpbImh0dHBzOi8vd3d3LnczLm9yZy8yMDE4L2NyZWRlbnRpYWxzL3YxIiwiaHR0cHM6Ly9wdXJsLmltc2dsb2JhbC5vcmcvc3BlYy9vYi92M3AwL2NvbnRleHQuanNvbiJdLCJpZCI6InVybjp1dWlkOmM0YTA4MDYzLTc4ZTUtNDdkNS04NGY5LTg2YTFmNjNiYzNkYSIsImlzc3VlciI6eyJpZCI6ImRpZDpqd2s6ZXlKcmRIa2lPaUpQUzFBaUxDSjFjMlVpT2lKemFXY2lMQ0pqY25ZaU9pSkZaREkxTlRFNUlpd2lhMmxrSWpvaU4yUTJZMkptTWpRNE9XSXpOREkzTm1JeE56SXhPVEExTkRsa01qTTVNVGdpTENKNElqb2lSbTVGVlZWaGRXUnRPVGxPTXpCaU9EQnFjemhXZERSQmJrOTRkbEozV0hSblVtTkxjVE5uUWtsMU9DSXNJbUZzWnlJNklrVmtSRk5CSW4wIiwiaW1hZ2UiOnsiaWQiOiJodHRwczovL3czYy1jY2cuZ2l0aHViLmlvL3ZjLWVkL3BsdWdmZXN0LTItMjAyMi9pbWFnZXMvSkZGLVZDLUVEVS1QTFVHRkVTVDItYmFkZ2UtaW1hZ2UucG5nIiwidHlwZSI6IkltYWdlIn0sIm5hbWUiOiJKb2JzIGZvciB0aGUgRnV0dXJlIChKRkYpIiwidHlwZSI6IlByb2ZpbGUiLCJ1cmwiOiJodHRwczovL3czYy1jY2cuZ2l0aHViLmlvL3ZjLWVkL3BsdWdmZXN0LTItMjAyMi9pbWFnZXMvSkZGLVZDLUVEVS1QTFVHRkVTVDItYmFkZ2UtaW1hZ2UucG5nIn0sImlzc3VhbmNlRGF0ZSI6IjIwMjMtMDQtMTlUMTM6NDY6MzlaIiwiaXNzdWVkIjoiMjAyMy0wNC0xOVQxMzo0NjozOVoiLCJ2YWxpZEZyb20iOiIyMDIzLTA0LTE5VDEzOjQ2OjM5WiIsImNyZWRlbnRpYWxTdWJqZWN0Ijp7ImlkIjoiZGlkOmp3azpleUpoYkdjaU9pSkZVekkxTmtzaUxDSjFjMlVpT2lKemFXY2lMQ0pyZEhraU9pSkZReUlzSW1OeWRpSTZJbk5sWTNBeU5UWnJNU0lzSW5naU9pSnJablZqU2tFdFRISnJPVVowT0ZseUxVZDJUM0pqYmtzd2IzZHNkalJYTW5VMFN6SXhTR2R2U1ZSM0lpd2llU0k2SWpaM2NGQlBNazlDUVVwU1NGRTFUV3RLV1ZSWldHbEJSRVF3TjFOTk5VdGplV3AzWDJFM1VFMVplRmtpZlEiLCJhY2hpZXZlbWVudCI6eyJjcml0ZXJpYSI6eyJuYXJyYXRpdmUiOiJUaGUgY29ob3J0IG9mIHRoZSBKRkYgUGx1Z2Zlc3QgMiBpbiBBdWd1c3QtTm92ZW1iZXIgb2YgMjAyMiBjb2xsYWJvcmF0ZWQgdG8gcHVzaCBpbnRlcm9wZXJhYmlsaXR5IG9mIFZDcyBpbiBlZHVjYXRpb24gZm9yd2FyZC4iLCJ0eXBlIjoiQ3JpdGVyaWEifSwiZGVzY3JpcHRpb24iOiJUaGlzIHdhbGxldCBjYW4gZGlzcGxheSB0aGlzIE9wZW4gQmFkZ2UgMy4wIiwiaWQiOiIwIiwiaW1hZ2UiOnsiaWQiOiJodHRwczovL3czYy1jY2cuZ2l0aHViLmlvL3ZjLWVkL3BsdWdmZXN0LTItMjAyMi9pbWFnZXMvSkZGLVZDLUVEVS1QTFVHRkVTVDItYmFkZ2UtaW1hZ2UucG5nIiwidHlwZSI6IkltYWdlIn0sIm5hbWUiOiJPdXIgV2FsbGV0IFBhc3NlZCBKRkYgUGx1Z2Zlc3QgIzIgMjAyMiIsInR5cGUiOiJBY2hpZXZlbWVudCJ9LCJ0eXBlIjoiQWNoaWV2ZW1lbnRTdWJqZWN0In0sIm5hbWUiOiJBY2hpZXZlbWVudCBDcmVkZW50aWFsIn0sImp0aSI6InVybjp1dWlkOmM0YTA4MDYzLTc4ZTUtNDdkNS04NGY5LTg2YTFmNjNiYzNkYSJ9.AM-lAUjCjcuQgy1QhQXctd3YrUoC2UdXvOwDHcHsi_UuHX0nt__QrYlfcwUutc9gSsz-U9SZ1e6iAGarTNVbDQ', format: 'jwt_vc_json-ld', }, }, }, uniissuer: { metadata: { issuer: 'https://oidc4vc.uniissuer.io/', token_endpoint: 'https://oidc4vc.uniissuer.io/1.0/token', credential_endpoint: 'https: //oidc4vc.uniissuer.io/1.0/credential', openid4vci_metadata: { response_types_supported: ['code', 'token'], credentials_supported: { OpenBadgeCredential: { display: [ { name: 'Open Badge V3', locale: 'en-US', logo: { url: 'https: //uniissuer.io/images/logo.jpg', }, }, ], formats: { ldp_vc: { types: ['VerifiableCredential', 'OpenBadgeCredential'], cryptographic_binding_methods_supported: ['did'], credential_signing_alg_values_supported: [ 'Ed25519Signature2018', 'Ed25519Signature2020', 'EcdsaSecp256k1Signature2019', 'JsonWebSignature2020', ], }, jwt_vc: { types: ['VerifiableCredential', 'OpenBadgeCredential'], cryptographic_binding_methods_supported: ['did'], credential_signing_alg_values_supported: ['ES256', 'EdDSA', 'ES256K', 'RS256', 'PS256'], }, }, claims: { achievement: { mandatory: true, value_type: 'object', } as IssuerCredentialSubjectDisplay, }, }, VaccinationCertificate: { formats: { ldp_vc: { types: ['VerifiableCredential', 'VaccinationCertificate'], cryptographic_binding_methods_supported: ['did'], credential_signing_alg_values_supported: [ 'Ed25519Signature2018', 'Ed25519Signature2020', 'EcdsaSecp256k1Signature2019', 'JsonWebSignature2020', ], }, jwt_vc: { types: ['VerifiableCredential', 'VaccinationCertificate'], cryptographic_binding_methods_supported: ['did'], credential_signing_alg_values_supported: ['ES256', 'EdDSA', 'ES256K', 'RS256', 'PS256'], }, }, }, }, credential_issuer: { display: [ { name: 'Danube Tech', locale: 'en-US', logo: { url: 'https: //uniissuer.io/images/logo.jpg', }, }, ], }, code_challenge_methods_supported: ['plain', 'S256'], grant_types_supported: ['authorization_code', PRE_AUTH_GRANT_LITERAL], token_endpoint_auth_methods_supported: ['client_secret_post', 'client_secret_basic'], issuer: 'https: //oidc4vc.uniissuer.io/', authorization_endpoint: 'https://oidc4vc.uniissuer.io/1.0/authorize', token_endpoint: 'https://oidc4vc.uniissuer.io/1.0/token', credential_endpoint: 'https: //oidc4vc.uniissuer.io/1.0/credential', }, }, auth: { url: 'https://oidc4vc.uniissuer.io/1.0/token', method: 'POST', request: { client_id: 'sphereon:ssi-wallet', grant_type: PRE_AUTH_GRANT_LITERAL, 'pre-authorized_code': 'rQhxqvmEQef2pFChuedmDWlp6iIifUVI', }, response: { access_token: 'eyJraWQiOiJrZXlfMSIsInR5cCI6IkpXVCIsImFsZyI6IkVTMjU2SyJ9.eyJzdWIiOiJPcGVuV2FsbGV0IiwiYXVkIjoiT3BlbldhbGxldCIsIm5iZiI6MTY4MTkxMjg5NCwic2NvcGUiOiJPcGVuQmFkZ2VDcmVkZW50aWFsIiwiaXNzIjoiaHR0cHM6Ly91bmlpc3N1ZXIuaW8vIiwiZXhwIjoxNjgxOTEzMDc0LCJpYXQiOjE2ODE5MTI4OTQsIm5vbmNlIjoiMzhkMzZmM2ItNzJlMy00ODg2LWI2MGMtMzZiNzcwZDBlNGVhIiwianRpIjoiODkxMjhiODktNWZhMy00MjUwLTgyMGQtMGFkYzc3NjA1MWE5In0.xmR62cbZKQCQkp7aFp3LwLvTX1gV47GdB1hIxmflEZ7ShivnJx0W_bY5aGnEXmP-wSRGaC881zZKMJDDvN7frQ', token_type: 'Bearer', expires_in: 180, c_nonce: '38d36f3b-72e3-4886-b60c-36b770d0e4ea', c_nonce_expires_in: 180, }, }, credential: { deeplink: 'https://oidc4vc.uniissuer.io/&credential_type=OpenBadgeCredential&pre-authorized_code=0ApoI8rxVmdQ44RIpuDbFIURIIkOhyek&user_pin_required=false', url: 'https://oidc4vc.uniissuer.io/1.0/credential', request: { types: ['OpenBadgeCredential'], format: 'jwt_vc', proof: { proof_type: 'jwt', jwt: 'eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NksiLCJraWQiOiJkaWQ6andrOmV5SmhiR2NpT2lKRlV6STFOa3NpTENKMWMyVWlPaUp6YVdjaUxDSnJkSGtpT2lKRlF5SXNJbU55ZGlJNkluTmxZM0F5TlRack1TSXNJbmdpT2lKclpuVmpTa0V0VEhKck9VWjBPRmx5TFVkMlQzSmpia3N3YjNkc2RqUlhNblUwU3pJeFNHZHZTVlIzSWl3aWVTSTZJalozY0ZCUE1rOUNRVXBTU0ZFMVRXdEtXVlJaV0dsQlJFUXdOMU5OTlV0amVXcDNYMkUzVUUxWmVGa2lmUSMwIn0.eyJhdWQiOiJodHRwczovL29pZGM0dmMudW5paXNzdWVyLmlvLyIsImlhdCI6MTY4MTkxMjgzNy40MTQsImV4cCI6MTY4MTkxMzQ5Ny40MTQsIm5vbmNlIjoiMzhkMzZmM2ItNzJlMy00ODg2LWI2MGMtMzZiNzcwZDBlNGVhIiwiaXNzIjoic3BoZXJlb246c3NpLXdhbGxldCIsImp0aSI6ImIzYWEyMmFkLWExZTItNDJjOC1iMGI4ZTdjNDgzZDg4M2U4In0.awwIJ0422HSdOsCIe8k7zjxqY6RVaHK2ItUFqbmVjqLXxWt-Mp7cXF84n9HGgC8fgGOKmjlgXdNLr_Jiio_e3g', }, }, response: { format: 'jwt_vc', credential: 'eyJraWQiOiJkaWQ6a2V5OnpEbmFldEZmbXF5TThkRHBRTml6Q2VmOWs4SEdiSEt4NmQxYm5DdlYxZGFxeW5EUGcjekRuYWV0RmZtcXlNOGREcFFOaXpDZWY5azhIR2JIS3g2ZDFibkN2VjFkYXF5bkRQZyIsInR5cCI6IkpXVCIsImFsZyI6IkVTMjU2In0.eyJzdWIiOiJkaWQ6andrOmV5SmhiR2NpT2lKRlV6STFOa3NpTENKMWMyVWlPaUp6YVdjaUxDSnJkSGtpT2lKRlF5SXNJbU55ZGlJNkluTmxZM0F5TlRack1TSXNJbmdpT2lKclpuVmpTa0V0VEhKck9VWjBPRmx5TFVkMlQzSmpia3N3YjNkc2RqUlhNblUwU3pJeFNHZHZTVlIzSWl3aWVTSTZJalozY0ZCUE1rOUNRVXBTU0ZFMVRXdEtXVlJaV0dsQlJFUXdOMU5OTlV0amVXcDNYMkUzVUUxWmVGa2lmUSIsIm5iZiI6MTY4MTkxMjg5NSwiaXNzIjoiZGlkOmtleTp6RG5hZXRGZm1xeU04ZERwUU5pekNlZjlrOEhHYkhLeDZkMWJuQ3ZWMWRhcXluRFBnIiwidmMiOnsibmFtZSI6IkpGRiB4IHZjLWVkdSBQbHVnRmVzdCAyIEludGVyb3BlcmFiaWxpdHkiLCJ0eXBlIjpbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwiT3BlbkJhZGdlQ3JlZGVudGlhbCJdLCJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvMjAxOC9jcmVkZW50aWFscy92MSIsImh0dHBzOi8vcHVybC5pbXNnbG9iYWwub3JnL3NwZWMvb2IvdjNwMC9jb250ZXh0Lmpzb24iXSwiaXNzdWVyIjp7InR5cGUiOiJQcm9maWxlIiwiaWQiOiJkaWQ6a2V5OnpEbmFldEZmbXF5TThkRHBRTml6Q2VmOWs4SEdiSEt4NmQxYm5DdlYxZGFxeW5EUGciLCJuYW1lIjoiVW5pdmVyc2FsIElzc3VlciIsInVybCI6Imh0dHBzOi8vaWRjNHZjLnVuaWlzc3Vlci5pby8iLCJpbWFnZSI6Imh0dHBzOi8vdW5paXNzdWVyLmlvL2ltYWdlcy9sb2dvLmpwZyJ9LCJjcmVkZW50aWFsU3ViamVjdCI6eyJhY2hpZXZlbWVudCI6eyJpbWFnZSI6eyJpZCI6Imh0dHBzOi8vdzNjLWNjZy5naXRodWIuaW8vdmMtZWQvcGx1Z2Zlc3QtMi0yMDIyL2ltYWdlcy9KRkYtVkMtRURVLVBMVUdGRVNUMi1iYWRnZS1pbWFnZS5wbmciLCJ0eXBlIjoiSW1hZ2UifSwiY3JpdGVyaWEiOnsibmFycmF0aXZlIjoiVGhlIGZpcnN0IGNvaG9ydCBvZiB0aGUgSkZGIFBsdWdmZXN0IDIgaW4gT2N0L05vdiBvZiAyMDIyIGNvbGxhYm9yYXRlZCB0byBwdXNoIGludGVyb3BlcmFiaWxpdHkgb2YgVkNzIGluIGVkdWNhdGlvbiBmb3J3YXJkLiIsInR5cGUiOiJDcml0ZXJpYSJ9LCJuYW1lIjoiVW5pdmVyc2FsIElzc3VlciBpc3N1ZWQgT3BlbiBCYWRnZSB2MyBjcmVkZW50aWFsIiwiZGVzY3JpcHRpb24iOiJXYWxsZXQgY2FuIHN0b3JlIGFuZCBkaXNwbGF5IEJhZGdlIHYzIGNyZWRlbnRpYWwiLCJ0eXBlIjoiQWNoaWV2ZW1lbnQifSwidHlwZSI6IkFjaGlldmVtZW50U3ViamVjdCJ9fX0.MEQCIENGRXVx49P1gXnRUIzaLKUeZwA9fyQKIhShjeByQDkJAiA3W89GOGUG0K6ynx1A3kpCQr25mPQfGizzVnT08C2ltw', }, }, }, mattr: { metadata: { issuer: 'https://launchpad.mattrlabs.com', token_endpoint: 'https://launchpad.vii.electron.mattrlabs.io/oidc/v1/auth/token', credential_endpoint: 'https://launchpad.vii.electron.mattrlabs.io/oidc/v1/auth/credential', openid4vci_metadata: { authorization_endpoint: 'https://launchpad.vii.electron.mattrlabs.io/oidc/v1/auth/authorize', token_endpoint: 'https://launchpad.vii.electron.mattrlabs.io/oidc/v1/auth/token', jwks_uri: 'https://launchpad.vii.electron.mattrlabs.io/oidc/v1/auth/jwks', token_endpoint_auth_methods_supported: ['none', 'client_secret_basic', 'client_secret_jwt', 'client_secret_post', 'private_key_jwt'], code_challenge_methods_supported: ['S256'], grant_types_supported: ['authorization_code', PRE_AUTH_GRANT_LITERAL], response_modes_supported: ['form_post', 'fragment', 'query'], response_types_supported: ['code id_token', 'code', 'id_token', 'none'], scopes_supported: ['PermanentResidentCard', 'AcademicAward', 'LearnerProfile', 'OpenBadgeCredential'], token_endpoint_auth_signing_alg_values_supported: ['HS256', 'RS256', 'PS256', 'ES256', 'EdDSA'], credential_endpoint: 'https://launchpad.vii.electron.mattrlabs.io/oidc/v1/auth/credential', credentials_supported: { PermanentResidentCard: { formats: { ldp_vc: { name: 'Permanent Resident Card', description: 'Government of Kakapo PRC.', types: ['PermanentResidentCard'], binding_methods_supported: ['did'], credential_signing_alg_values_supported: ['Ed25519Signature2018'], } as CredentialSupportedFormatV1_0_08, }, }, AcademicAward: { formats: { ldp_vc: { name: 'Academic Award', description: 'Microcredential from the MyCreds Network.', types: ['AcademicAward'], binding_methods_supported: ['did'], credential_signing_alg_values_supported: ['Ed25519Signature2018'], } as CredentialSupportedFormatV1_0_08, }, }, LearnerProfile: { formats: { ldp_vc: { name: 'Digitary Learner Profile', description: 'Example', types: ['LearnerProfile'], binding_methods_supported: ['did'], credential_signing_alg_values_supported: ['Ed25519Signature2018'], } as CredentialSupportedFormatV1_0_08, }, }, OpenBadgeCredential: { formats: { ldp_vc: { name: 'JFF x vc-edu PlugFest 2', description: "MATTR's submission for JFF Plugfest 2", types: ['OpenBadgeCredential'], binding_methods_supported: ['did'], credential_signing_alg_values_supported: ['Ed25519Signature2018'], } as CredentialSupportedFormatV1_0_08, }, }, }, }, }, auth: { url: 'https://launchpad.vii.electron.mattrlabs.io/oidc/v1/auth/token', method: 'POST', request: { client_id: 'sphereon:ssi-wallet', grant_type: PRE_AUTH_GRANT_LITERAL, 'pre-authorized_code': 'kI_19c0PtisCJBG-ngd9mA47UCKx4uoKglUp0gqmxKt', }, response: { access_token: 'DYaZrXQ3lCgwdU7Te93N5q1OovKXnfPDWm9Rq7fC5Ws', expires_in: 3600, scope: 'OpenBadgeCredential', token_type: 'Bearer', }, }, credential: { deeplink: 'openid-initiate-issuance://?issuer=https://launchpad.mattrlabs.com&credential_type=OpenBadgeCredential&pre-authorized_code=g0UCOj6RAN5AwHU6gczm_GzB4_lH6GW39Z0Dl2DOOiO', url: 'https://launchpad.vii.electron.mattrlabs.io/oidc/v1/auth/credential', request: { type: 'OpenBadgeCredential', format: 'ldp_vc', proof: { proof_type: 'jwt', jwt: 'eyJ0eXAiOiJKV1QiLCJhbGciOiJFZERTQSIsImtpZCI6ImRpZDprZXk6ejZNa3AxM3N6QUFMVFN0cDV1OGtMcnl5YW5vYWtrVWtFUGZXazdvOHY3dms0RW1KI3o2TWtwMTNzekFBTFRTdHA1dThrTHJ5eWFub2Fra1VrRVBmV2s3bzh2N3ZrNEVtSiJ9.eyJhdWQiOiJodHRwczovL2xhdW5jaHBhZC5tYXR0cmxhYnMuY29tIiwiaWF0IjoxNjgxOTE0NDgyLjUxOSwiZXhwIjoxNjgxOTE1MTQyLjUxOSwiaXNzIjoic3BoZXJlb246c3NpLXdhbGxldCIsImp0aSI6ImI5NDY1ZGE5LTY4OGYtNDdjNi04MjUwNDA0ZGNiOWI5Y2E5In0.uQ8ewOfIjy_1p_Gk6PjeEWccBJnjOca1pwbTWiCAFMQX9wlIsfeUdGtXUoHjH5_PQtpwytodx7WU456_CT9iBQ', }, }, response: { format: 'w3cvc-jsonld', credential: { type: ['VerifiableCredential', 'VerifiableCredentialExtension', 'OpenBadgeCredential'], issuer: { id: 'did:web:launchpad.vii.electron.mattrlabs.io', name: 'Jobs for the Future (JFF)', iconUrl: 'https://w3c-ccg.github.io/vc-ed/plugfest-1-2022/images/JFF_LogoLockup.png', image: 'https://w3c-ccg.github.io/vc-ed/plugfest-1-2022/images/JFF_LogoLockup.png', }, name: 'JFF x vc-edu PlugFest 2', description: "MATTR's submission for JFF Plugfest 2", credentialBranding: { backgroundColor: '#464c49', }, issuanceDate: '2023-04-19T14:29:00.232Z', credentialSubject: { id: 'did:key:z6Mkp13szAALTStp5u8kLryyanoakkUkEPfWk7o8v7vk4EmJ', type: ['AchievementSubject'], achievement: { id: 'urn:uuid:bd6d9316-f7ae-4073-a1e5-2f7f5bd22922', name: 'JFF x vc-edu PlugFest 2 Interoperability', type: ['Achievement'], image: { id: 'https://w3c-ccg.github.io/vc-ed/plugfest-2-2022/images/JFF-VC-EDU-PLUGFEST2-badge-image.png', type: 'Image', }, criteria: { type: 'Criteria', narrative: 'Solutions providers earned this badge by demonstrating interoperability between multiple providers based on the OBv3 candidate final standard, with some additional required fields. Credential issuers earning this badge successfully issued a credential into at least two wallets. Wallet implementers earning this badge successfully displayed credentials issued by at least two different credential issuers.', }, description: 'This credential solutionsupports the use of OBv3 and w3c Verifiable Credentials and is interoperable with at least two other solutions. This was demonstrated successfully during JFF x vc-edu PlugFest 2.', }, }, '@context': [ 'https://www.w3.org/2018/credentials/v1', { '@vocab': 'https://w3id.org/security/undefinedTerm#', }, 'https://mattr.global/contexts/vc-extensions/v1', 'https://purl.imsglobal.org/spec/ob/v3p0/context.json', 'https://w3id.org/vc-revocation-list-2020/v1', ], credentialStatus: { id: 'https://launchpad.vii.electron.mattrlabs.io/core/v1/revocation-lists/25ce0f22-975a-43f8-8936-b93983b3e8f0#39', type: 'RevocationList2020Status', revocationListIndex: '39', revocationListCredential: 'https://launchpad.vii.electron.mattrlabs.io/core/v1/revocation-lists/25ce0f22-975a-43f8-8936-b93983b3e8f0', } as ICredentialStatus, proof: { type: 'Ed25519Signature2018', created: '2023-04-19T14:29:01Z', jws: 'eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..hz5x6dCdV4C0YmpEjJx8XzpwJdD78CnEkuhx5AxfNTZavAL3HnW1m4s8nQXgejYu_a6m79Fbbakm6PZ1yEd8CA', proofPurpose: 'assertionMethod', verificationMethod: 'did:web:launchpad.vii.electron.mattrlabs.io#6BhFMCGTJg', }, }, }, }, }, diwala: { metadata: { issuer: 'https://oidc4vc.diwala.io', token_endpoint: 'https://oidc4vc.diwala.io/token', credential_endpoint: 'https://oidc4vc.diwala.io/credential', openid4vci_metadata: { issuer: 'https://oidc4vc.diwala.io', credential_endpoint: 'https://oidc4vc.diwala.io/credential', token_endpoint: 'https://oidc4vc.diwala.io/token', jwks_uri: 'https://oidc4vc.diwala.io/jwks', grant_types_supported: [PRE_AUTH_GRANT_LITERAL], credentials_supported: { OpenBadgeCredential: { formats: { ldp_vc: { types: ['VerifiableCredential', 'OpenBadgeCredential'], credential_signing_alg_values_supported: ['Ed25519Signature2018'], cryptographic_binding_methods_supported: ['did'], }, }, }, }, }, }, auth: { url: 'https://oidc4vc.diwala.io/token', method: 'POST', request: { client_id: 'sphereon:ssi-wallet', grant_type: PRE_AUTH_GRANT_LITERAL, 'pre-authorized_code': 'eyJhbGciOiJIUzI1NiJ9.eyJjcmVkZW50aWFsX3R5cGUiOiJPcGVuQmFkZ2VDcmVkZW50aWFsIiwiZXhwIjoxNjgxOTE1NzI5fQ.JmhU1jhMfw3f_DaIqnxurPyIW1makcwUs49Fm253z5Q', }, response: { access_token: 'eyJhbGciOiJIUzI1NiJ9.eyJub25jZSI6ImJNV1JnODlRTjljeVkwbTBHWW9FaWQ1YVEwcGQzUlNCM2FFUGJnZWciLCJtc0lhdCI6MTY4MTkxNjk1MjEzOSwiaWF0IjoxNjgxOTE2OTUyLCJpc3MiOiJkaXdhbGEuaW8iLCJhdWQiOiJodHRwczovL29pZGM0dmMuZGl3YWxhLmlvIiwiZXhwIjoxNzEzNDcyNzUyfQ.ERukn43tgQ-elNSZAIHo7oXLnalzHDqVh7HcDQSy6sY', token_type: 'bearer', expires_in: 31555800, }, }, credential: { deeplink: 'openid-initiate-issuance://?issuer=https://oidc4vc.diwala.io&credential_type=OpenBadgeCredential&pre-authorized_code=eyJhbGciOiJIUzI1NiJ9.eyJjcmVkZW50aWFsX3R5cGUiOiJPcGVuQmFkZ2VDcmVkZW50aWFsIiwiZXhwIjoxNjgxOTg0NDY3fQ.fEAHKz2nuWfiYHw406iNxr-81pWkNkbi31bWsYSf6Ng', url: 'https://oidc4vc.diwala.io/credential', request: { type: 'OpenBadgeCredential', format: 'ldp_vc', proof: { proof_type: 'jwt', jwt: 'eyJ0eXAiOiJKV1QiLCJhbGciOiJFZERTQSIsImtpZCI6ImRpZDprZXk6ejZNa3AxM3N6QUFMVFN0cDV1OGtMcnl5YW5vYWtrVWtFUGZXazdvOHY3dms0RW1KI3o2TWtwMTNzekFBTFRTdHA1dThrTHJ5eWFub2Fra1VrRVBmV2s3bzh2N3ZrNEVtSiJ9.eyJhdWQiOiJodHRwczovL29pZGM0dmMuZGl3YWxhLmlvIiwiaWF0IjoxNjgxOTE1MDk1LjIwMiwiZXhwIjoxNjgxOTE1NzU1LjIwMiwiaXNzIjoic3BoZXJlb246c3NpLXdhbGxldCIsImp0aSI6IjYxN2MwM2EzLTM3MTUtNGJlMy1hYjkxNzM4MTlmYzYxNTYzIn0.KA-cHjecaYp9FSaWHkz5cqtNyhBIVT_0I7cJnpHn03T4UWFvdhjhn8Hpe-BU247enFyWOWJ6v3NQZyZgle7xBA', }, }, response: { credential: { '@context': ['https://www.w3.org/2018/credentials/v1', 'https://purl.imsglobal.org/spec/ob/v3p0/context.json'], id: 'urn:uuid:38beb3c1-611e-42b4-99b8-cf3e8b0fd9ae', type: ['VerifiableCredential', 'OpenBadgeCredential'], name: 'JFF x vc-edu PlugFest 2 Interoperability', issuer: { type: ['Profile'], id: 'did:key:z6MkrzXCdarP1kaZcJb3pmNi295wfxerDrmTqPv5c6MkP2r9', name: 'Jobs for the Future (JFF)', url: 'https://www.jff.org/', image: { id: 'https://w3c-ccg.github.io/vc-ed/plugfest-1-2022/images/JFF_LogoLockup.png', type: 'Image', }, }, issuanceDate: '2023-04-19T14:39:13Z', credentialSubject: { type: ['AchievementSubject'], id: 'did:key:z6Mkp13szAALTStp5u8kLryyanoakkUkEPfWk7o8v7vk4EmJ', achievement: { id: 'urn:uuid:7e202d65-4286-4e7b-aa34-e018f05a5341', type: ['Achievement'], name: 'Diwala issued JFF x vc-edu PlugFest 2 Interoperability', description: 'This credential solution supports the use of OBv3 and w3c Verifiable Credentials and is interoperable with at least two other solutions. This was demonstrated successfully during JFF x vc-edu PlugFest 2.', criteria: { narrative: 'Solutions providers earned this badge by demonstrating interoperability between multiple providers based on the OBv3 candidate final standard, with some additional required fields. Credential issuers earning this badge successfully issued a credential into at least two wallets. Wallet implementers earning this badge successfully displayed credentials issued by at least two different credential issuers.', }, image: { id: 'https://w3c-ccg.github.io/vc-ed/plugfest-2-2022/images/JFF-VC-EDU-PLUGFEST2-badge-image.png', type: 'Image', }, }, }, proof: { type: 'Ed25519Signature2018', created: '2023-04-19T14:39:13Z', verificationMethod: 'did:key:z6MkrzXCdarP1kaZcJb3pmNi295wfxerDrmTqPv5c6MkP2r9#z6MkrzXCdarP1kaZcJb3pmNi295wfxerDrmTqPv5c6MkP2r9', proofPurpose: 'assertionMethod', jws: 'eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..QDxjecY7YazXD6z3lsWeQ6DTGDw4KDWphzKFmkOo8DCr4ctGH7wB9ZW2EAz4qRv7s0g0O1-fXGIbAjPXfETKBw', }, }, }, }, }, credenco: { metadata: { issuer: 'https://mijnkvk.acc.credenco.com', token_endpoint: 'https://mijnkvk.acc.credenco.com/token', credential_endpoint: 'https://mijnkvk.acc.credenco.com/credential', openid4vci_metadata: { authorization_endpoint: 'https://mijnkvk.acc.credenco.com/authorize', authorization_server: 'https://mijnkvk.acc.credenco.com', batch_credential_endpoint: 'https://mijnkvk.acc.credenco.com/batch_credential', credential_configurations_supported: { BevoegdheidUittreksel_jwt_vc_json: { credential_definition: { credentialSubject: { functie: { display: [ { name: 'Functie', }, { locale: 'nl-NL', name: 'Functie', }, { locale: 'en-US', name: 'Function', }, ], }, functionarisNaam: { display: [ { name: 'Functionaris naam', }, { locale: 'nl-NL', name: 'Functionaris naam', }, { locale: 'en-US', name: 'Officer name', }, ], mandatory: true, }, kvkNummer: { display: [ { name: 'KVK nummer', }, { locale: 'nl-NL', name: 'KVK nummer', }, { locale: 'en-US', name: 'CoC number', }, ], mandatory: true, }, naam: { display: [ { name: 'Naam', }, { locale: 'nl-NL', name: 'Naam', }, { locale: 'en-US', name: 'Name', }, ], mandatory: true, }, persoonRechtsvorm: { display: [ { name: 'Rechtsvorm', }, { locale: 'nl-NL', name: 'Rechtsvorm', }, { locale: 'en-US', name: 'Legal form', }, ], }, soortBevoegdheid: { display: [ { name: 'Soort bevoegdheid', }, { locale: 'nl-NL', name: 'Soort bevoegdheid', }, { locale: 'en-US', name: 'Type of authority', }, ], }, }, type: ['VerifiableCredential', 'BevoegdheidUittreksel'], }, credential_signing_alg_values_supported: ['EdDSA', 'ES256', 'ES256K', 'RSA'], cryptographic_binding_methods_supported: ['did:web', 'did:jwk', 'did:ebsi'], display: [ { background_color: '#21436f', background_image: { alt_text: 'KvK styled card Background', url: 'https://mijnkvk.acc.credenco.com/kvk_card_background.png', }, name: 'BevoegdheidUittreksel', text_color: '#ffffff', }, { background_color: '#21436f', background_image: { alt_text: 'KvK gestylede achtergrond', url: 'https://mijnkvk.acc.credenco.com/kvk_card_background.png', }, locale: 'nl-NL', name: 'Bevoegdheid uittreksel', text_color: '#ffffff', }, { background_color: '#21436f', background_image: { alt_text: 'KvK styled card Background', url: 'https://mijnkvk.acc.credenco.com/kvk_card_background.png', }, locale: 'en-US', name: 'Authorized representative', text_color: '#ffffff', }, ], format: 'jwt_vc_json', }, KVKRegistration_jwt_vc_json: { credential_definition: { credentialSubject: { einddatum: { display: [ { name: 'Einddatum', }, { locale: 'nl-NL', name: 'Einddatum', }, { locale: 'en-US', name: 'End date', }, ], }, kvkNummer: { display: [ { name: 'KVK nummer', }, { locale: 'nl-NL', name: 'KVK nummer', }, { locale: 'en-US', name: 'CoC number', }, ], mandatory: true, }, naam: { display: [ { name: 'Naam', }, { locale: 'nl-NL', name: 'Naam', }, { locale: 'en-US', name: 'Name', }, ], mandatory: true, }, rechtsvorm: { display: [ { name: 'Rechtsvorm', }, { locale: 'nl-NL',