---
title: "Overview"
description: "Services provide the functional capabilities for decentralized identity and ID wallets. They can be created inside of tenants and sub-tenants, then managed through the similar administration interfaces documented on…"
stack: "Enterprise Stack (commercial) — version 0.21.0"
stack_version: "0.21.0"
stack_comparison: https://docs.walt.id/community-vs-enterprise.md
canonical_url: https://docs.walt.id/enterprise-stack/administration/services/overview
generated: 2026-07-20
---
# Overview

Services provide the functional capabilities for decentralized identity and ID wallets. They can be created inside of
tenants and sub-tenants, then managed through the similar administration interfaces documented on this page.

This section is intentionally focused on service operations—creating instances, inspecting configuration, wiring dependencies, and managing metadata. Use the links below if you need other entry points before diving into the admin details:

**Note:**

- Need the high-level mental model for services (Lego blocks, operational vs storage)? Visit [Enterprise Foundations → Services](https://docs.walt.id/enterprise-stack/foundations.md#services).
- Looking for issuance, verification, or per-service walkthroughs? Open the [Service Catalog](https://docs.walt.id/enterprise-stack/services.md).

## All services have a common set of endpoints

Many of the Enterprise Stack APIs look and behave the same, regardless of whether you are calling the Issuer, the Verifier, a KMS, or another service. Every endpoint is mounted under `/v1/{target}/{service-name}-api/...`, where `target` is the dot-separated path to the organization, tenant, and service instance (for example `acme.sandbox.issuer-eu`). 

### 1. Provisioning & lifecycle

All services are created, listed, or deleted through the **resource-api**.

- [**Service creation**](https://docs.walt.id/enterprise-stack/administration/services/create.md) – create a service using the `/resource-api/services/create` endpoint.
- [**View Service Resources**](https://docs.walt.id/enterprise-stack/administration/services/list-resources.md) - list child service resoures using the `/resource-api/resources/list` endpoint.
- [**Service deletion**](https://docs.walt.id/enterprise-stack/administration/services/delete.md) - delete a service (and optionally everything underneath it) using the `/resource-api/resources/delete` and `/delete-recursive` endpoints.

All all service provising & lifeclye operations go through the same controller, you never have to learn a service-specific “create” endpoint.

### 2. Configuration

Once a service exists you can always introspect or replace its configuration:

- [**View Configuration**](https://docs.walt.id/enterprise-stack/administration/services/configuration/view.md) - call `/configuration/view` on any service to inspect is config.
- [**Update Configuration**](https://docs.walt.id/enterprise-stack/administration/services/configuration/update.md) - call `/configuration/update` on any service to update the present config.

This is the way to rotate signing keys, update issuer metadata, point a wallet to a new credential store, etc., without having to recreate the service.

### 3. Dependency Services

Services can depend on other services, depending on how your use case is built. For example, the DID Service may require the DID Store Service to persist DID Documents.
Each service exposes its dependency management via `/dependencies/...` endpoints.

- [**View Dependencies**](https://docs.walt.id/enterprise-stack/administration/services/dependency-services/view.md) – see which services are linked as dependencies of current service.
- [**Add Dependency**](https://docs.walt.id/enterprise-stack/administration/services/dependency-services/add.md) - attach a new dependency service to current service.
- [**Remove Dependency**](https://docs.walt.id/enterprise-stack/administration/services/dependency-services/remove.md) - remove a dependency service from current service.

If a service does not use any dependency services, these endpoints will simply not be available.
To see which dependencies a specific service needs, check its section [here](https://docs.walt.id/enterprise-stack/services.md).

### 4. Metadata management for child resources

Certain services—like KMS, DID, and Credential Store—automatically add a metadata block to their child resources (for example Keys, DIDs, and Credentials).
You can tell whether a service supports metadata for its child resources by checking if it exposes `/metadata` endpoints.

- [**View metadata**](https://docs.walt.id/enterprise-stack/administration/services/metadata/view.md) – `/metadata/view` returns the JSON blob stored next to a child resource.
- **[Set](https://docs.walt.id/enterprise-stack/administration/services/metadata/set.md) or [update](https://docs.walt.id/enterprise-stack/administration/services/metadata/update.md) metadata** – `/metadata/set` replaces the blob, and `/metadata/update` applies a JSON Patch style update.
- [**Remove metadata**](https://docs.walt.id/enterprise-stack/administration/services/metadata/purge.md) – `/metadata/purge` clears the metadata for that resource.
- [**Query metadata**](https://docs.walt.id/enterprise-stack/administration/services/metadata/query.md) – `/metadata/query` runs constraint-based searches across all children underneath the service.

This gives you a uniform way to label stored keys, DIDs, or credentials (for example with usage, or environment tags) and then search for them later.

### 5. List pagination

Most service and resource listing endpoints support the same pagination query parameters:

- `limit` (default `100`)
- `offset` (default `0`)

Some list endpoints also support `sort`, with values `createdDateTime`, `createdDateTime+`, `createdDateTime-`, `updatedDateTime`, `updatedDateTime+`, or `updatedDateTime-`. Passing `sort` on an endpoint that doesn't support it returns `400 Bad Request`.

If the input is invalid (`limit <= 0`, `limit > maxLimit`, `offset < 0`, or non-integer values), the API returns `400 Bad Request`.
The configurable defaults and bounds are documented in the [`pagination.conf` reference](https://docs.walt.id/enterprise-stack/setup/configurations/config-files/pagination.md).

## Get Started With a Specific Service

Check out the service overview page [here](https://docs.walt.id/enterprise-stack/services.md).
