---
title: "Credential Management"
description: "List, view, import, and delete credentials held in a Wallet API v2 wallet."
stack: "Community Stack (open source) — 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/community-stack/wallet2/credential-management
generated: 2026-10-01
---
# Credential Management

Once a wallet has [received](https://docs.walt.id/community-stack/wallet2/credential-receiving/overview.md) credentials, you can list them, inspect a single credential in full, import a raw credential directly, and delete credentials.

**Note:**

**Local Development:** the API is available at `http://localhost:7006` by default, whether Wallet API v2 runs standalone or via the Docker Compose quick start.

---

## List Credentials

List the metadata of every credential in the wallet. This is lightweight — it does **not** include the raw credential data.

**Option: CURL**

**Endpoint:** `GET /wallet/{walletId}/credentials` | [API Reference](https://docs.walt.id/community-stack/wallet2/full-api-reference.md)

##### Example Request

```bash
curl http://localhost:7006/wallet/{walletId}/credentials
```

**Path Parameters**

- **walletId**: _String_ (required) - The wallet whose credentials you want to list. See [Managing Wallets](https://docs.walt.id/community-stack/wallet2/wallets.md).

---

##### Example Response

```json
[
  {
    "id": "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
    "format": "dc+sd-jwt",
    "issuer": "http://localhost:7005/openid4vci",
    "subject": "did:key:z6Mkfriq1MqLBoPWecGoDLjguo1sB9brj6wT3qZ5BxkKpuP6",
    "label": null,
    "addedAt": "2026-07-08T10:15:30Z"
  }
]
```

**Response Fields**

- **id**: _String_ - The credential's ID, used to fetch or delete it.
- **format**: _String_ - Credential format (`dc+sd-jwt`, `jwt_vc_json`, `mso_mdoc`).
- **issuer** / **subject**: _String_ - Issuer and holder identifiers, when available.
- **label**: _String_ - Optional label set on import.
- **addedAt**: _String_ - ISO-8601 timestamp of when the credential was stored.

---

## Get a Credential

Fetch a single credential, including its parsed contents and raw data.

**Option: CURL**

**Endpoint:** `GET /wallet/{walletId}/credentials/{credentialId}` | [API Reference](https://docs.walt.id/community-stack/wallet2/full-api-reference.md)

##### Example Request

```bash
curl http://localhost:7006/wallet/{walletId}/credentials/{credentialId}
```

**Path Parameters**

- **walletId**: _String_ (required) - The wallet holding the credential.
- **credentialId**: _String_ (required) - The credential to fetch. Obtain it from [list credentials](#list-credentials).

---

##### Example Response

```json
{
  "id": "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
  "credential": {
    "format": "dc+sd-jwt",
    "...": "parsed credential contents"
  },
  "label": null,
  "addedAt": "2026-07-08T10:15:30Z",
  "metadata": {
    "issuerDisplay": [
      {
        "name": "Example Issuer",
        "locale": "en-US",
        "logo": {
          "uri": "https://issuer.example.com/logo.png",
          "alt_text": "Example Issuer"
        }
      }
    ]
  }
}
```

**Response Fields**

- **id**: _String_ - The credential's ID.
- **credential**: _Object_ - The parsed credential, including its raw representation.
- **label** / **addedAt**: The optional label and storage timestamp.
- **metadata**: _Object_ (optional) - Sidecar JSON stored with the credential. When the credential was received via [OID4VCI](https://docs.walt.id/concepts/data-exchange-protocols/openid4vci.md), this may include **`issuerDisplay`** — an array of issuer display entries (`name`, `locale`, optional `logo` with `uri` / `alt_text`) captured from issuer metadata at receive time.

---

## Import a Credential

Store a raw credential directly — for example one obtained outside the wallet, or fetched via the [Isolated Flow](https://docs.walt.id/community-stack/wallet2/credential-receiving/isolated-flow.md#fetch-credential) fetch step with `storeInWallet` left as `false`.

**Option: CURL**

**Endpoint:** `POST /wallet/{walletId}/credentials/import` | [API Reference](https://docs.walt.id/community-stack/wallet2/full-api-reference.md)

##### Example Request

```bash
curl -X POST http://localhost:7006/wallet/{walletId}/credentials/import \
  -H 'Content-Type: application/json' \
  -d '{
    "rawCredential": "eyJhbGciOiJFUzI1NiIsInR5cCI6InZjK3NkLWp3dCJ9...",
    "label": "My identity credential"
  }'
```

**Path Parameters**

- **walletId**: _String_ (required) - The wallet to import into.

**Body Parameters**

- **rawCredential**: _String_ (required) - The raw credential (JWT, SD-JWT, or base64url mdoc). The wallet detects the format automatically.
- **label**: _String_ (optional) - A human-readable label to store alongside the credential.

---

##### Example Response

```json
{
  "id": "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
  "credential": { "format": "dc+sd-jwt", "...": "parsed credential contents" },
  "label": "My identity credential",
  "addedAt": "2026-07-08T10:15:30Z"
}
```

---

## Delete a Credential

**Option: CURL**

**Endpoint:** `DELETE /wallet/{walletId}/credentials/{credentialId}` | [API Reference](https://docs.walt.id/community-stack/wallet2/full-api-reference.md)

##### Example Request

```bash
curl -X DELETE http://localhost:7006/wallet/{walletId}/credentials/{credentialId}
```

**Path Parameters**

- **walletId**: _String_ (required) - The wallet holding the credential.
- **credentialId**: _String_ (required) - The credential to delete.

---

##### Example Response

`204 No Content` on success, or `404 Not Found` if the credential doesn't exist.

---

## Next Steps

- [Present a credential](https://docs.walt.id/community-stack/wallet2/credential-presenting/sd-jwt-vc.md) to a verifier.
- [Receive more credentials](https://docs.walt.id/community-stack/wallet2/credential-receiving/overview.md).
