Skip to content

DID Operations

The DID (Decentralized Identifier) endpoints allow you to create and resolve did:key identifiers with Ed25519 keypairs.

Creates a new did:key identifier with an Ed25519 keypair.

POST /v1/did

Requires BearerAuth or ApiKeyAuth.

FieldTypeRequiredDescription
public_keystringNoBase64-encoded Ed25519 public key. If not provided, a new keypair will be generated.
Terminal window
# Generate new keypair
curl -X POST "https://api.veriglob.com/v1/did" \
-H "Authorization: Bearer your-api-key" \
-H "Content-Type: application/json"
# With existing public key
curl -X POST "https://api.veriglob.com/v1/did" \
-H "Authorization: Bearer your-api-key" \
-H "Content-Type: application/json" \
-d '{
"public_key": "base64-encoded-public-key"
}'

201 Created

{
"status": "success",
"message": "DID created successfully",
"data": {
"did": "did:key:z6MkhsiKBzbNixeXD7mzEzEiuRDFJEKpofi62adE1ZpauNeh",
"public_key": "base64-encoded-public-key",
"private_key": "base64-encoded-private-key"
}
}
StatusDescription
400Invalid public key format
401Invalid or missing API key
429Rate limit exceeded

Resolves a did:key identifier to extract its public key.

GET /v1/did/{did}

Requires BearerAuth or ApiKeyAuth.

ParameterTypeRequiredDescription
didstringYesThe DID to resolve
Terminal window
curl -X GET "https://api.veriglob.com/v1/did/did:key:z6MkhsiKBzbNixeXD7mzEzEiuRDFJEKpofi62adE1ZpauNeh" \
-H "Authorization: Bearer your-api-key"

200 OK

{
"status": "success",
"message": "DID resolved successfully",
"data": {
"did": "did:key:z6MkhsiKBzbNixeXD7mzEzEiuRDFJEKpofi62adE1ZpauNeh",
"public_key": "base64-encoded-public-key"
}
}
StatusDescription
400Invalid DID format
401Invalid or missing API key
404DID not found
429Rate limit exceeded

Returns the full W3C DID Document for a did:key identifier.

GET /v1/did/{did}/document

Requires BearerAuth or ApiKeyAuth.

ParameterTypeRequiredDescription
didstringYesThe DID to get the document for
Terminal window
curl -X GET "https://api.veriglob.com/v1/did/did:key:z6MkhsiKBzbNixeXD7mzEzEiuRDFJEKpofi62adE1ZpauNeh/document" \
-H "Authorization: Bearer your-api-key"

200 OK

{
"status": "success",
"message": "DID Document retrieved successfully",
"data": {
"document": {
"@context": [
"https://www.w3.org/ns/did/v1",
"https://w3id.org/security/suites/ed25519-2020/v1"
],
"id": "did:key:z6MkhsiKBzbNixeXD7mzEzEiuRDFJEKpofi62adE1ZpauNeh",
"verificationMethod": [
{
"id": "did:key:z6MkhsiKBzbNixeXD7mzEzEiuRDFJEKpofi62adE1ZpauNeh#z6MkhsiKBzbNixeXD7mzEzEiuRDFJEKpofi62adE1ZpauNeh",
"type": "Ed25519VerificationKey2020",
"controller": "did:key:z6MkhsiKBzbNixeXD7mzEzEiuRDFJEKpofi62adE1ZpauNeh",
"publicKeyMultibase": "z6MkhsiKBzbNixeXD7mzEzEiuRDFJEKpofi62adE1ZpauNeh"
}
],
"authentication": [
"did:key:z6MkhsiKBzbNixeXD7mzEzEiuRDFJEKpofi62adE1ZpauNeh#z6MkhsiKBzbNixeXD7mzEzEiuRDFJEKpofi62adE1ZpauNeh"
],
"assertionMethod": [
"did:key:z6MkhsiKBzbNixeXD7mzEzEiuRDFJEKpofi62adE1ZpauNeh#z6MkhsiKBzbNixeXD7mzEzEiuRDFJEKpofi62adE1ZpauNeh"
]
}
}
}
StatusDescription
400Invalid DID format
401Invalid or missing API key
404DID not found
429Rate limit exceeded

Veriglob uses the did:key method with Ed25519 public keys. The format is:

did:key:z6Mk[base58-encoded-public-key]

Example:

did:key:z6MkhsiKBzbNixeXD7mzEzEiuRDFJEKpofi62adE1ZpauNeh

The z6Mk prefix indicates:

  • z - Base58btc multibase encoding
  • 6Mk - Ed25519 public key multicodec identifier