Getting Started

Wallet API v2 provides the capabilities to build end-to-end digital ID wallets. It manages wallets, keys, DIDs, and credentials, and implements the latest OID4VCI 1.0 (receiving credentials from issuers) and OID4VP 1.0 (presenting credentials to verifiers) specifications, using DCQL for credential matching. Supported formats include SD-JWT VC (IETF), W3C VC, and ISO 18013-5 mDL.

The original wallet service remains available for existing projects. For new projects, we recommend Wallet API v2 with its OID4VCI/VP 1.0 support. Migrating from v1? See the Migration guide.

Supported Standards

Credential Formats:SD-JWT VC (IETF), W3C VC (v1.1+, v2.0), ISO 18013-5 mDL
Credential Exchange:OID4VCI 1.0, OID4VP 1.0 (DCQL)
Signing Algorithms:Ed25519, secp256k1, secp256r1, RSA

How It Differs from Wallet API v1

FeatureWallet API v1Wallet API v2
OID4VP query languagePresentation ExchangeDCQL
OID4VCI/VP versionDraft 11–201.0
PersistenceBuilt-inOptional, pluggable
AuthenticationBuilt-inOptional, pluggable

Setup

If you are new to the stack, the Docker Compose quick start is the fastest way to get running — it spins up the Issuer, Verifier, and Wallet together in one command, which lets you issue a credential, receive it into the wallet, and present it, end to end. Once running, the Wallet API v2 is available at http://localhost:7006.

When running via Docker Compose, Wallet API v2 runs on port 7006 (Issuer2 on 7005, Verifier2 on 7004). When running Wallet API v2 standalone with Docker, it uses port 7005.

Core Concepts

  • Wallets — A wallet is a container of keys, credentials and DIDs. Learn more on Managing Wallets.
  • Receiving Credentials — Claim credentials from an issuer over OID4VCI 1.0, via a one-call full flow or step-by-step Custom Flow.
  • Presenting Credentials — Share credentials with a verifier over OID4VP 1.0 via a one-call full flow or step-by-step Custom Flow.
  • Persistence and auth — The default configuration provided via the waltid-identity repo enables SQLite persistence (data survives restarts); authentication is off (wallets are open, and the auth feature is not yet available). Manage these via Configurations — e.g. switch persistence to in-memory.

Next Steps

Last updated on July 13, 2026