---
title: "Tenant-Level DIDs"
description: "The DID Registry Service is designed to work also with tenant-level DIDs. This means that the DIDs it manages are scoped to a specific tenant within the organization. When you create a DID using the DID Service, it will…"
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/services/did-registry/tenant-level-did
generated: 2026-07-08
---
# Tenant-Level DIDs
The DID Registry Service is designed to work also with tenant-level DIDs. This means that the DIDs it manages are scoped to a specific tenant within the organization. When you create a DID using the DID Service, it will be associated with the tenant in which the DID Registry Service is set up.

**Example:** `did:web:{orgID}.enterprise-sandbox.waltid.dev:{tenant}:bob`

**Accessible At:** `https://{orgID}.enterprise-sandbox.waltid.dev/{tenant}/bob/did.json`

These DIDs represent individual tenants (e.g., users) under an organization.

## Create a New Tenant with configured DID Registry Service

**Option: CURL**

Endpoint:`/v1/{target}/resource-api/tenants/create` | [API Reference](https://enterprise.sandbox.walt.id/swagger/index.html#/Service%20%7C%20Resource/post_v1__target__resource_api_tenants_create)

**Example Request**

```bash
curl -X 'POST' \
  'https://{orgID}.enterprise-sandbox.waltid.dev/v1/{target}/resource-api/tenants/create' \
  -H 'accept: */*' \
  -H 'Authorization: Bearer {yourToken}' \
  -H 'Content-Type: application/json' \
  -d '{
  "configuration": {
    "didRegistry": "didregistry"
  }
}'
```

**Body**

```json
{
  "configuration": {
    "didRegistry": "didregistry"
  }
}
```

**Path Parameters**

- `orgID`: - When performing operations within an organization, it is essential to use the organization's Base URL or
  another valid host alias. For example, if your organization is named `test`, your default Base URL will
  be `test.enterprise-sandbox.walt.dev` when using the sandbox environment.
- `target`: _resourceIdentifier_ - The target indicates the organization in which to create the new tenant and the tenant's
  ID (`{organizationID}.[YourID]`), e.g. `waltid.users`

**Body Parameters**

- `configuration`: _Object_ - Configuration object for the tenant.
  - `didRegistry`: _String_ - The ID of the DID Registry service to be associated with the tenant.

---

**Response Codes**

- `201` - Tenant created successfully.

## Verify Configuration

**Option: CURL**

Endpoint: `/v1/{target}/tenant-api/tenants/config/view` | [API Reference](https://enterprise.sandbox.walt.id/swagger/index.html#/Tenant%20Management/get_v1__target__tenant_api_tenants_config_view)

```bash
curl -X GET http://{orgID}.enterprise-sandbox.waltid.dev/v1/{tenant}/tenant-api/tenants/config/view \
-H 'accept: application/json'
```
**Path Parameters**

- `orgID`: - When performing operations within an organization, it is essential to use the organization's Base URL or
  another valid host alias. For example, if your organization is named `test`, your default Base URL will
  be `test.enterprise-sandbox.walt.dev` when using the sandbox environment.
- `target`: _resourceIdentifier_ - The target indicates the organization in which to create the new tenant and the tenant's
  ID (`{organizationID}.[YourID]`), e.g. `waltid.users`

**Response:**

```json
{
  "didRegistry": "{orgID}.{tenant}.didregistry"
}
```

`didRegistry`: _String_ - The ID of the DID Registry service that will be associated with the tenant.

## Create the DID Registry Service

**Option: CURL**

Endpoint: `/v1/{target}/resource-api/services/create` | [API Reference](https://enterprise.sandbox.walt.id/swagger/index.html#/Service%20%7C%20Resource/post_v1__target__resource_api_services_create)

  ⚠️ **Note:** The did registry you are creating in the tenant must exactly have the name used in the config.

**Example Request**

```bash
curl -X 'POST' \
  'https://{orgID}.enterprise-sandbox.waltid.dev/v1/{target}/resource-api/services/create' \
  -H 'accept: */*' \
  -H 'Authorization: Bearer {yourToken}' \
  -H 'Content-Type: application/json' \
  -d '{
  "type": "did-registry"
}'

```
**Path Parameters**

- `orgID`: - When performing operations within an organization, it is essential to use the organization's Base URL or
  another valid host alias. For example, if your organization is named `test`, your default Base URL will
  be `test.enterprise-sandbox.walt.dev` when using the sandbox environment.
- `target`: _resourceIdentifier_ - The target indicates the organization + tenant in which to create the new DID Registry service
  and the service's
  ID (`{organizationID}.{tenantID}.[PreviousDidRegistry]`), e.g. `waltid.users.didregistry`

**Body Parameters**

- `type`: _serviceType_ - Specifies the type of service to create. In our case `did-registry`

---

**Response Codes**

- `201` - Service created successfully.
