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

CURL

Endpoint:/v1/{target}/resource-api/tenants/create | API Reference

Example Request

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

{
  "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

CURL

Endpoint: /v1/{target}/tenant-api/tenants/config/view | API Reference

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:

{
  "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

CURL

Endpoint: /v1/{target}/resource-api/services/create | API Reference

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

Example Request

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.
Last updated on April 21, 2025