oid4vcwallet

Receive verifiable credentials and present them from an Android app: over OpenID4VCI and OpenID4VP under HAIP, to Chrome's Digital Credentials API through Credential Manager, and in person over Bluetooth.

OID4VCWallet is the wallet side of OID4VCgo, for Android 8.0 (API 26) and later. It handles SD-JWT VC and ISO mdoc credentials:

The protocols run in OID4VCgo's Go code, compiled into this library: every network request, every protocol message and every check on what comes back. Your app supplies the platform, through three interfaces: a KeyStore whose keys never leave the device's secure hardware (AndroidKeystoreKeyStore), a CredentialStore under the device's protection (FileCredentialStore), and a WalletProvider that attests the wallet. It also owns the UI: every session stops where the holder needs to decide.

Calls that wait on the network or the holder are suspend functions, cancelled with their coroutine. Failures are WalletExceptions, and in-person ones over Bluetooth ProximityExceptions.

OID4VCgo is OpenID Certified for the OpenID4VCI and OpenID4VP wallet roles under HAIP, over links. The Digital Credentials API and in-person presentation aren't covered by that certification.

Start with the guides: getting started, receiving credentials, presenting from a link, to Chrome and in person, handling errors, and going to production.

See also OID4VCgo's mobile README, for what each platform supports and the in-person guide, and the demo wallet app, a complete app on this library.

Packages

Link copied to clipboard

The wallet (Wallet, WalletConfiguration), its sessions (Issuance, Presentation, MdocPresentation, ProximityPresentation), the reader (ProximityReader), the platform interfaces and their standard implementations, and the results they return.