Skip to content

Register DID

POST
/{id}/did.json

This endpoint can only be called by the owner of the service. Corresponds to the Create (Register) method speficied at https://w3c-ccg.github.io/did-method-web/#create-register.

did:web method specification

Parameters

Path Parameters

id
required

ID: An identifier.

string
person

Query Parameters

proofParameters
string

Only valid for GET requests

Request Body

VerifiablePresentation: W3C Verifiable Presentation, see https://w3c.github.io/vc-data-model/.

object
type
required
Array<string>
[
"VerifablePresentation"
]
verifiableCredential
required

VerifiableCredential: W3C Verifiable Credential, see https://w3c.github.io/vc-data-model/.

object
type
required
Array<string>
[
"VerifableCredential"
]
credentialSubject
required

DID Document: W3C DID Document, see https://w3c.github.io/did-core/.

object
id
required

DID: W3C Decentralized Identifier (DID), see https://w3c.github.io/did-core/.

string
did:web:example.com:person
{
"@context": [
"https://www.w3.org/ns/did/v1",
"https://w3id.org/security/suites/jws-2020/v1"
],
"id": "did:web:example.com",
"verificationMethod": [
{
"id": "did:web:example.com#key-0",
"type": "JsonWebKey2020",
"controller": "did:web:example.com",
"publicKeyJwk": {
"kty": "OKP",
"crv": "Ed25519",
"x": "0-e2i2_Ua1S5HbTYnVB0lj2Z2ytXu2-tYmDFf8f5NjU"
}
},
{
"id": "did:web:example.com#key-1",
"type": "JsonWebKey2020",
"controller": "did:web:example.com",
"publicKeyJwk": {
"kty": "OKP",
"crv": "X25519",
"x": "9GXjPGGvmRq9F6Ng5dQQ_s31mfhxrcNZxRGONrmH30k"
}
},
{
"id": "did:web:example.com#key-2",
"type": "JsonWebKey2020",
"controller": "did:web:example.com",
"publicKeyJwk": {
"kty": "EC",
"crv": "P-256",
"x": "38M1FDts7Oea7urmseiugGW7tWc3mLpJh6rKe7xINZ8",
"y": "nDQW6XZ7b_u2Sy9slofYLlG03sOEoug3I0aAPQ0exs4"
}
}
],
"authentication": [
"did:web:example.com#key-0",
"did:web:example.com#key-2"
],
"assertionMethod": [
"did:web:example.com#key-0",
"did:web:example.com#key-2"
],
"keyAgreement": [
"did:web:example.com#key-1",
"did:web:example.com#key-2"
]
}
proof
required
object
{}
{
"type": [
"VerifiableCredential"
],
"credentialSubject": {
"id": "did:web:example.com"
},
"proof": {}
}
proof
required
object
{
"type": [
"VerifiablePresentation"
],
"verifiableCredential": {
"type": [
"VerifiableCredential"
],
"credentialSubject": {
"id": "did:web:example.com"
},
"proof": {}
},
"proof": {}
}

Responses

201

Identifier created / DID document stored.

ProofParameters: Proof parameters define properties that need to be present in the next submitted Verifiable Presentation for PUT, POST and DELETE requests.

object
did
required

DID: W3C Decentralized Identifier (DID), see https://w3c.github.io/did-core/.

string
did:web:example.com:person
challenge
required

Challenge computed by the current state of the DID document, according to proofs.

string
f8e9a33856ec54be26d62689a73809713d803344bd0f522709bd0a5e0b0832b5
domain
required

Domain name of the service, according to proofs.

string
example.com
proof_purpose
required

Proof purpose according to verification relationship and proofs.

string
authentication
{
"did": "did:web:example.com:person",
"challenge": "afd96f3ee6a8cb00f983e54819ab53466fe825b9d749b5b4eb6d12f09331d440",
"domain": "example.com",
"proof_purpose": "authentication"
}

400

Bad Request. DID document missing or not valid.

401

Unauthorized. Authorization failed due to missing or broken proof signature.

404

Not Found. DID of issuer could not be resolved.

409

Conflict. DID document already exists on server.

500

Internal Server Error.