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 is deprecated. It remains available for existing projects. For new projects, we recommend Wallet API v2 with its OID4VCI and OID4VP 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/OID4VP 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.

Wallet API v2 listens on port 7006 by default, whether run standalone or via Docker Compose (Issuer2 on 7005, Verifier2 on 7004).

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 Isolated Flow.
  • Presenting Credentials — Share credentials with a verifier over OID4VP 1.0 via a one-call full flow or step-by-step Isolated Flow.
  • Persistence and auth — The default configuration provided via the waltid-identity repo enables SQLite persistence (data survives restarts); authentication is off unless you enable the auth feature and configure auth.conf. Manage these via Configurations — e.g. switch persistence to in-memory.

Next Steps

Last updated on August 26, 2026