The following DID management functions are available:
- list - list DIDs
- load - load DID
- delete by url - delete by DID url
- create - create DID
- resolve - resolve DID
- import - import DID
The /v1/did
endpoint lists the available DIDs.
{% tabs %} {% tab title="curl" %}
curl -X 'GET' \
'https://core.ssikit.walt.id/v1/did' \
-H 'accept: application/json'
{% endtab %}
{% tab title="Request body schema" %}
No parameters
{% endtab %}
{% tab title="Response body schema" %}
[
"string"
]
{% endtab %} {% endtabs %}
E.g. List the available DIDs.
{% tabs %} {% tab title="curl" %}
curl -X 'GET' \
'https://core.ssikit.walt.id/v1/did' \
-H 'accept: application/json'
{% endtab %}
{% tab title="Response body" %}
[
"did:ebsi:zwdPobJGue3w86Gpqhq5Cni",
"did:key:z6Mkm8NbvDnnxJ2t5zLGSkYGCWZiqq11Axr58xQ3ZG1Jss3z",
"did:key:z6MkkLmAVeM3P6B2LJ2xGrK1wVojCoephK4G9VrCcct42ADX",
"did:web:my.domain",
"did:web:walt.id",
"did:ebsi:zYubw2L8tCZSKKpAcMmCY2Q"
]
{% endtab %} {% endtabs %}
The /v1/did/{id}
endpoint loads a DID specified by:
- id - path parameter (required) - the DID url string
{% tabs %} {% tab title="curl" %}
curl -X 'GET' \
'https://core.ssikit.walt.id/v1/did/{id}' \
-H 'accept: application/json'
{% endtab %}
{% tab title="Request body schema" %}
No parameters
{% endtab %}
{% tab title="Response body schema" %}
The DID document
{% endtab %} {% endtabs %}
E.g. Load the DID = did:key:z6Mkm8NbvDnnxJ2t5zLGSkYGCWZiqq11Axr58xQ3ZG1Jss3z
.
{% tabs %} {% tab title="curl" %}
curl -X 'GET' \
'https://core.ssikit.walt.id/v1/did/did%3Akey%3Az6Mkm8NbvDnnxJ2t5zLGSkYGCWZiqq11Axr58xQ3ZG1Jss3z' \
-H 'accept: application/json'
{% endtab %}
{% tab title="Response body" %}
{
"assertionMethod":
[
"did:key:z6Mkm8NbvDnnxJ2t5zLGSkYGCWZiqq11Axr58xQ3ZG1Jss3z#z6Mkm8NbvDnnxJ2t5zLGSkYGCWZiqq11Axr58xQ3ZG1Jss3z"
],
"authentication":
[
"did:key:z6Mkm8NbvDnnxJ2t5zLGSkYGCWZiqq11Axr58xQ3ZG1Jss3z#z6Mkm8NbvDnnxJ2t5zLGSkYGCWZiqq11Axr58xQ3ZG1Jss3z"
],
"capabilityDelegation":
[
"did:key:z6Mkm8NbvDnnxJ2t5zLGSkYGCWZiqq11Axr58xQ3ZG1Jss3z#z6Mkm8NbvDnnxJ2t5zLGSkYGCWZiqq11Axr58xQ3ZG1Jss3z"
],
"capabilityInvocation":
[
"did:key:z6Mkm8NbvDnnxJ2t5zLGSkYGCWZiqq11Axr58xQ3ZG1Jss3z#z6Mkm8NbvDnnxJ2t5zLGSkYGCWZiqq11Axr58xQ3ZG1Jss3z"
],
"@context":
[
"https://www.w3.org/ns/did/v1"
],
"id": "did:key:z6Mkm8NbvDnnxJ2t5zLGSkYGCWZiqq11Axr58xQ3ZG1Jss3z",
"keyAgreement":
[
"did:key:z6Mkm8NbvDnnxJ2t5zLGSkYGCWZiqq11Axr58xQ3ZG1Jss3z#z6LSrs5FudTTsAUhHUoS1kzkhskwAWaYjyU13CVgZT7fwDWk"
],
"verificationMethod":
[
{
"controller": "did:key:z6Mkm8NbvDnnxJ2t5zLGSkYGCWZiqq11Axr58xQ3ZG1Jss3z",
"id": "did:key:z6Mkm8NbvDnnxJ2t5zLGSkYGCWZiqq11Axr58xQ3ZG1Jss3z#z6Mkm8NbvDnnxJ2t5zLGSkYGCWZiqq11Axr58xQ3ZG1Jss3z",
"publicKeyBase58": "7g7ZKyYMckYQyVVZmBaRMR1j2Fj9m5biSwV7iz3HxeGc",
"type": "Ed25519VerificationKey2019"
},
{
"controller": "did:key:z6Mkm8NbvDnnxJ2t5zLGSkYGCWZiqq11Axr58xQ3ZG1Jss3z",
"id": "did:key:z6Mkm8NbvDnnxJ2t5zLGSkYGCWZiqq11Axr58xQ3ZG1Jss3z#z6LSrs5FudTTsAUhHUoS1kzkhskwAWaYjyU13CVgZT7fwDWk",
"publicKeyBase58": "GBu6PKebmhkxC6RfV7UoPHYTKN3S3NHrADn14zU9Dqjz",
"type": "X25519KeyAgreementKey2019"
}
]
}
{% endtab %} {% endtabs %}
The /v1/did/{id}
endpoint deletes the DID by:
- id - path parameter (required) - the DID url string
{% tabs %} {% tab title="curl" %}
curl -X 'DELETE' \
'https://core.ssikit.walt.id/v1/did/{id}' \
-H 'accept: application/json'
{% endtab %}
{% tab title="Request body schema" %}
No parameters
{% endtab %}
{% tab title="Response body schema" %}
Code 200
{% endtab %} {% endtabs %}
E.g. Delete the DID = did:key:z6Mkm8NbvDnnxJ2t5zLGSkYGCWZiqq11Axr58xQ3ZG1Jss3z
.
{% tabs %} {% tab title="curl" %}
curl -X 'DELETE' \
'https://core.ssikit.walt.id/v1/did/did%3Akey%3Az6Mkm8NbvDnnxJ2t5zLGSkYGCWZiqq11Axr58xQ3ZG1Jss3z' \
-H 'accept: application/json'
{% endtab %} {% endtabs %}
The /v1/did/create
creates a DID.
{% tabs %} {% tab title="curl" %}
curl -X 'POST' \
'https://core.ssikit.walt.id/v1/did/create' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '<request-body>'
{% endtab %}
{% tab title="Request body schema" %}
{
"method": "string",
"keyAlias": "string",
"method-dependent-options": "..."
}
{% endtab %}
{% tab title="Response body schema" %}
The DID url string
{% endtab %} {% endtabs %}
The method
and keyAlias
properties are common for all did-method requests,
method
being required, while keyAlias
- optional
(if not specified, a new key will be automatically created using the default algorithm
according to the did-method).
The method-dependent options have default values, if not specified otherwise.
Below are the available properties by did-method.
{% tabs %} {% tab title="key" %}
{
"method": "key",
"keyAlias": "string",
"useJwkJcsPub": "boolean"
}
useJwkJcsPub
(default) - false - specifies whether to create a did:key using the jwk_jcs-pub multicodec (code: 0xeb51)
{% endtab %} {% tab title="web" %}
{
"method": "web",
"keyAlias": "string",
"didWebDomain": "string",
"didWebPath": "string"
}
didWebDomain
(default) - "walt.id"didWebPath
(default) - empty-string
{% endtab %} {% tab title="ebsi" %}
{
"method": "ebsi",
"keyAlias": "string",
"version": "int"
}
version
(default) - 1
{% endtab %} {% tab title="cheqd" %}
{
"method": "cheqd",
"keyAlias": "string",
"network": "string"
}
network
(default) - "testnet"
{% endtab %} {% tab title="iota" %}
{
"method": "iota",
"keyAlias": "string"
}
{% endtab %} {% tab title="jwk" %}
{
"method": "jwk",
"keyAlias": "string"
}
{% endtab %} {% endtabs %}
E.g. Create a DID using the key method and automatically generate a new key.
{% tabs %} {% tab title="curl" %}
curl -X 'POST' \
'https://core.ssikit.walt.id/v1/did/create' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"method": "key"
}'
{% endtab %}
{% tab title="Request body" %}
{
"method": "key"
}
{% endtab %}
{% tab title="Response body" %}
did:key:z6MkqJfAPYYDiDeNERPMufpS1gxgzqiG5fvQnqbYTwY5xJDE
{% endtab %} {% endtabs %}
The /v1/did/resolve
resolves a DID url string to a DID document.
{% tabs %} {% tab title="curl" %}
curl -X 'POST' \
'https://core.ssikit.walt.id/v1/did/resolve' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '<request-body>'
{% endtab %}
{% tab title="Request body schema" %}
{
"did": "string"
}
{% endtab %}
{% tab title="Response body schema" %}
The DID document
{% endtab %} {% endtabs %}
E.g. Resolve the DID = did:key:z6MkqmaCT2JqdUtLeKah7tEVfNXtDXtQyj4yxEgV11Y5CqUa
.
{% tabs %} {% tab title="curl" %}
curl -X 'POST' \
'https://core.ssikit.walt.id/v1/did/resolve' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"did": "did:key:z6MkqmaCT2JqdUtLeKah7tEVfNXtDXtQyj4yxEgV11Y5CqUa"
}'
{% endtab %}
{% tab title="Request body" %}
{
"did": "did:key:z6MkqmaCT2JqdUtLeKah7tEVfNXtDXtQyj4yxEgV11Y5CqUa"
}
{% endtab %}
{% tab title="Response body" %}
{
"assertionMethod":
[
"did:key:z6MkqmaCT2JqdUtLeKah7tEVfNXtDXtQyj4yxEgV11Y5CqUa#z6MkqmaCT2JqdUtLeKah7tEVfNXtDXtQyj4yxEgV11Y5CqUa"
],
"authentication":
[
"did:key:z6MkqmaCT2JqdUtLeKah7tEVfNXtDXtQyj4yxEgV11Y5CqUa#z6MkqmaCT2JqdUtLeKah7tEVfNXtDXtQyj4yxEgV11Y5CqUa"
],
"capabilityDelegation":
[
"did:key:z6MkqmaCT2JqdUtLeKah7tEVfNXtDXtQyj4yxEgV11Y5CqUa#z6MkqmaCT2JqdUtLeKah7tEVfNXtDXtQyj4yxEgV11Y5CqUa"
],
"capabilityInvocation":
[
"did:key:z6MkqmaCT2JqdUtLeKah7tEVfNXtDXtQyj4yxEgV11Y5CqUa#z6MkqmaCT2JqdUtLeKah7tEVfNXtDXtQyj4yxEgV11Y5CqUa"
],
"@context":
[
"https://www.w3.org/ns/did/v1"
],
"id": "did:key:z6MkqmaCT2JqdUtLeKah7tEVfNXtDXtQyj4yxEgV11Y5CqUa",
"keyAgreement":
[
"did:key:z6MkqmaCT2JqdUtLeKah7tEVfNXtDXtQyj4yxEgV11Y5CqUa#z6LSkSwxKk6TFYcqcRHv7ALR87CTFK6bSkQsxwqczx1YgYik"
],
"verificationMethod":
[
{
"controller": "did:key:z6MkqmaCT2JqdUtLeKah7tEVfNXtDXtQyj4yxEgV11Y5CqUa",
"id": "did:key:z6MkqmaCT2JqdUtLeKah7tEVfNXtDXtQyj4yxEgV11Y5CqUa#z6MkqmaCT2JqdUtLeKah7tEVfNXtDXtQyj4yxEgV11Y5CqUa",
"publicKeyBase58": "CKK9rn4QHwPsXpjzSKGepGytPxcZZqpdGDmZAja4HchC",
"type": "Ed25519VerificationKey2019"
},
{
"controller": "did:key:z6MkqmaCT2JqdUtLeKah7tEVfNXtDXtQyj4yxEgV11Y5CqUa",
"id": "did:key:z6MkqmaCT2JqdUtLeKah7tEVfNXtDXtQyj4yxEgV11Y5CqUa#z6LSkSwxKk6TFYcqcRHv7ALR87CTFK6bSkQsxwqczx1YgYik",
"publicKeyBase58": "9mmnoSHbA5u6X2v9aWpToWyyQAZUk9Ej5y7wWVN1yAwz",
"type": "X25519KeyAgreementKey2019"
}
]
}
{% endtab %} {% endtabs %}
The /v1/did/import
endpoint resolves and imports the specified DID url to the underlying data store.
{% tabs %} {% tab title="curl" %}
curl -X 'POST' \
'https://core.ssikit.walt.id/v1/did/import' \
-H 'accept: application/json' \
-H 'Content-Type: text/plain' \
-d '<request-body>'
{% endtab %}
{% tab title="Request body schema" %}
The DID url string
{% endtab %}
{% tab title="Response body schema" %}
Code 201
{% endtab %} {% endtabs %}
E.g. Import the DID = did:key:z6MkqmaCT2JqdUtLeKah7tEVfNXtDXtQyj4yxEgV11Y5CqUa
.
{% tabs %} {% tab title="curl" %}
curl -X 'POST' \
'https://core.ssikit.walt.id/v1/did/import' \
-H 'accept: application/json' \
-H 'Content-Type: text/plain' \
-d 'did:key:z6MkqmaCT2JqdUtLeKah7tEVfNXtDXtQyj4yxEgV11Y5CqUa'
{% endtab %}
{% tab title="Request body" %}
did:key:z6MkqmaCT2JqdUtLeKah7tEVfNXtDXtQyj4yxEgV11Y5CqUa
{% endtab %} {% endtabs %}