Three small apps pass a verifiable credential between them over the OpenID standards. An issuer signs your contact details, a web wallet keeps them, and a verifier asks for just the parts it needs. Each app shows every protocol step and the checks behind it.
Enter a full name, email and phone number. The issuer signs them as an SD-JWT VC and offers it to your wallet, with no login needed.
Open the issuerAccept the credential and it is stored in this browser, bound to a key that never leaves it. Later the wallet asks your consent before sharing anything.
Open the walletChoose which details to ask for. You approve in the wallet, and the verifier checks the issuer's signature, each disclosure and the key binding.
Open the verifierStart at the issuer and follow the buttons: each app sends you on to the next. Use the same browser throughout, because the wallet keeps credentials in that browser's storage. It works on a phone too.
urn:vc-lab:contact:1, signed with ES256name, email and phone_number, each disclosed on its owncnf.jwk)Issuer, wallet and verifier are separate sites, as they would be in real life. The wallet names a verifier by its address, and the browser keeps the wallet's storage apart from the other two.
Standards: OpenID4VCI 1.0, OpenID4VP 1.0, SD-JWT VC. This is a demonstration: the credentials it issues are trusted by nothing outside the lab.