Skip to content

Build a wallet app

The Wallet SDK gives your app everything a holder needs: receive credentials from an issuer, keep them behind the phone’s secure hardware, show them, and present them when asked. Ready-made screens cover the card list, the details, presenting over QR + Bluetooth, and scanning credential offers.

Card list in the demo wallet
The card list. Cards are drawn from the signed data.
Card details
A card and its fields.
sequenceDiagram
    autonumber
    participant I as Issuer
    participant A as Your wallet app
    actor H as Holder
    participant V as Verifier (site or app)
    I->>A: Credential offer (QR or link)
    A->>H: Preview of the offer
    H->>A: Confirms: new key in secure hardware
    I->>A: Credential, signed by the issuer, bound to that key
    V->>A: Request: document + fields (QR, link, or system sheet)
    A->>H: Names the verifier, lists the fields
    H->>A: Approves
    A->>V: Approved fields, signed with the device key
  • One SDK object with the holder API: list, details, issue, present.
  • The wallet screen (WalletScreen on Android, WalletViewController on iOS): the whole wallet UI, with permissions handled.
  • Card designs per document type: the wallet draws each card from the signed data.
  • Entry points websites and issuers use: deep links, App Links and Universal Links, the browser’s Digital Credentials API (Safari’s “share your ID” sheet on iOS 26, Chrome on Android).

The Wallet app is the demo: Android and iOS, three document types with card designs, every entry point wired. The Quickstart builds a holder app from the same pieces.

Next: Quickstart.