---
title: "Overview"
description: "Receive and present verifiable credentials via OID4VCI/VP 1.0 using the walt.id Enterprise Wallet2 Service."
stack: "Enterprise Stack (commercial) — version 1.1.1"
stack_version: "1.1.1"
stack_comparison: https://docs.walt.id/community-vs-enterprise.md
canonical_url: https://docs.walt.id/enterprise-stack/services/wallet2-service/overview
generated: 2026-10-01
---
# Overview

The **Wallet2 Service** is walt.id's Enterprise wallet for receiving and presenting verifiable digital credentials using the finalized [OID4VCI 1.0](https://docs.walt.id/concepts/data-exchange-protocols/openid4vci.md) and [OID4VP 1.0](https://docs.walt.id/concepts/data-exchange-protocols.md) specifications (with DCQL). It supports consumer wallets for end users as well as organizational wallets for companies.

**Note:**

The original [Wallet Service](https://docs.walt.id/enterprise-stack/services/wallet-service/overview.md), which supports draft OpenID4VCI / OpenID4VP protocols (resource type `wallet`, `/v1` API), is deprecated and disabled by default. It remains available for existing integrations by enabling the `wallet-draft-routes` [feature](https://docs.walt.id/enterprise-stack/setup/configurations/config-files/features.md). For new projects, we recommend the **Wallet2 Service** with OID4VCI/VP 1.0.

## Supported Standards

|                          |                                                                                                                                                                                                                                                              |
|:-------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **Credential Formats:**  | [SD-JWT VC (IETF)](https://docs.walt.id/concepts/digital-credentials/sd-jwt-vc.md), [W3C VC (v1.1+, v2.0)](https://docs.walt.id/concepts/digital-credentials/verifiable-credentials-w3c.md), [ISO 18013-5 mDL](https://docs.walt.id/concepts/digital-credentials/mdoc-mdl-iso.md) | ISO 23220 PhotoID
| **Credential Exchange:** | [OID4VCI](https://docs.walt.id/concepts/data-exchange-protocols.md) (v1.0), [OID4VP](https://docs.walt.id/concepts/data-exchange-protocols.md) (v1.0, DCQL), [ISO/IEC 18013-7](https://docs.walt.id/concepts/data-exchange-protocols.md)                                                                                                   |
| **Signing Algorithms:**  | ed25519, secp256k1, secp256r1, RSA                                                                                                                                                                                                                           |

---

## Service Type and API

Wallet2 is a **distinct service type** in the organization tree:

| | |
|:---|:---|
| **Resource type** | `"wallet2"` |
| **API base** | `/v2/{target}/wallet-service-api/...` |
| **Feature flag** | Always available (no special feature required) |

Existing nodes with type `"wallet"` are **not** served by the Wallet2 `/v2` API. Create new wallets as `"wallet2"`, or run the optional manual migration (`_t: wallet` → `wallet2`) before switching clients to `/v2`.

For end-to-end flows, pair Wallet2 with [Issuer2](https://docs.walt.id/enterprise-stack/services/issuer2-service/overview.md) and [Verifier2](https://docs.walt.id/enterprise-stack/services/verifier2-service/overview.md).

---

## Core Features

### KMS & Identifiers

- **Holder Keys** — Storage is configured via the [KMS Service](https://docs.walt.id/enterprise-stack/services/key-management-service/overview.md). Keys may reside in the Enterprise database for non-production setups or be delegated to providers such as AWS KMS, HashiCorp Vault, or Azure Key Vault.
- **DIDs** — Create and store DIDs with the [DID Service](https://docs.walt.id/enterprise-stack/services/did-service/overview.md) and [DID Store](https://docs.walt.id/enterprise-stack/services/did-store-service/overview.md).

### Credential Storage

- Persist received credentials using the [Credential Store Service](https://docs.walt.id/enterprise-stack/services/credential-store-service/overview.md).

### Credential Exchange

- Supports OID4VCI/VP 1.0 flows and ISO/IEC 18013‑7 for receiving and presenting credentials.
- Authenticates signed OpenID4VP Request Objects and encrypts VP responses when the verifier requests `direct_post.jwt` or `dc_api.jwt`. Pin X.509 trust anchors with `requestObjectX509Trust`, and/or link a [Trust Registry](https://docs.walt.id/enterprise-stack/services/trust-registry-service/wallet2-integration.md) so relying-party identities become JAR anchors — see [Setup](https://docs.walt.id/enterprise-stack/services/wallet2-service/setup.md).
- Matches stored credentials against DCQL requests.
- Automatically proves key and DID ownership during exchanges.
- Supports [attestation-based client authentication](https://docs.walt.id/enterprise-stack/services/client-attestation-service/overview.md) when the issuer’s authorization server metadata advertises `attest_jwt_client_auth` (see [wallet integration](https://docs.walt.id/enterprise-stack/services/client-attestation-service/wallet-integration.md)). Obtain/current attestation endpoints are available on the wallet; receive flows can auto-apply attestation when a client-attester dependency is linked.

### Dependencies

Supported dependency service types: `kms`, `did-store`, `credential-store`, `client-attester`, `policy-store` ([Holder Policy Store](https://docs.walt.id/enterprise-stack/services/holder-policy-store-service/overview.md)), and `trust-registry` ([Trust Registry](https://docs.walt.id/enterprise-stack/services/trust-registry-service/wallet2-integration.md)). The policy store is always available and is **not** gated by `wallet-draft-routes`.

Optional static configuration (`staticDid`, `staticKey`, `requestObjectX509Trust`, `requestObjectAudience`) can be set on the wallet when you do not attach a KMS / DID store.

---

## Getting Started

- [Setup](https://docs.walt.id/enterprise-stack/services/wallet2-service/setup.md) — Create a Wallet2 service (`type: wallet2`) via composable init or resource create.

**Receive, manage & present credentials**

- [Accept credentials via OID4VCI 1.0](https://docs.walt.id/enterprise-stack/services/wallet2-service/credential-receiving/overview.md) — Receive and store W3C, SD-JWT VC, and mDL credentials.
- [Manage credentials](https://docs.walt.id/enterprise-stack/services/wallet2-service/management.md) — List and retrieve the keys, DIDs, and credentials stored in a wallet.
- [Share credentials via OID4VP 1.0](https://docs.walt.id/enterprise-stack/services/wallet2-service/credential-presenting/overview.md) — Present stored credentials to any OID4VP verifier using DCQL, including signed Request Objects and encrypted responses.
- [Silent issuance & verification](https://docs.walt.id/enterprise-stack/services/wallet2-service/silent-issuance-verification/overview.md) — Programmatic credential exchange without interactive UX.
