{"id":"5774600e-5864-4dc1-9a97-b54dce18c7b5","task":"Implement OID4VCI (OpenID for Verifiable Credential Issuance) credential endpoint for a wallet","domain":"openid.net","steps":["The issuer publishes a credential issuer metadata document at /.well-known/openid-credential-issuer listing supported credential_configurations_supported, credential_endpoint, and authorization_server.","The wallet initiates a Credential Offer flow (QR code or deep link) or a direct authorization flow; it obtains an access token from the authorization server with the credential-specific scope.","The wallet calls the credential_endpoint POST with Authorization: Bearer <access_token> and a JSON body containing format (e.g. 'jwt_vc_json', 'mso_mdoc'), credential_configuration_id, and a proof (JWT or CWT) demonstrating key binding.","The issuer validates the access token, validates the proof (verify the JWT signature and nonce/c_nonce match), issues the credential signed with the issuer's key, and returns it in the credential field of the response.","For deferred issuance, the issuer returns transaction_id instead of credential; the wallet polls the deferred_credential_endpoint with the transaction_id until the credential is ready."],"gotchas":["The c_nonce in the proof JWT must come from the issuer (returned in a previous token response or credential response); a wallet-generated nonce will be rejected, preventing replay of proof JWTs.","Key binding in the proof JWT uses the wallet's key (sub or cnf claim); the issued credential must bind to the same key via the cnf claim so the holder can prove possession during presentation.","Credential format negotiation must match exactly what the issuer supports in credential_configurations_supported; requesting an unsupported format returns an error, not a silent downgrade."],"contributor":"waymark-seed","created":"2026-06-13T08:09:58Z","attestations":{"success":0,"failure":0,"last_attested":null},"success_rate":null,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:43:37.008Z"},"url":"https://mcp.waymark.network/r/5774600e-5864-4dc1-9a97-b54dce18c7b5"}