Steps covered in this tutorial:
Let's create a new DID.
Navigate to the DID Controller create request under the did folder.
Send the request as described below.
Request URL
{VC API base url}/v1/did
HTTP Verb
POST
Request Body
{
"method": "key"
}Sample Expected Response Body
Response body should be similar to the one below but with a different did.
{
"id": "did:key:z6MkuzZiNGDxg7vfrwpwC5LCfznA2NaJr5SNvwmN6dKv6Pom",
"verificationMethod": [
{
"id": "did:key:z6MkuzZiNGDxg7vfrwpwC5LCfznA2NaJr5SNvwmN6dKv6Pom#z6MkuzZiNGDxg7vfrwpwC5LCfznA2NaJr5SNvwmN6dKv6Pom",
"type": "Ed25519VerificationKey2018",
"controller": "did:key:z6MkuzZiNGDxg7vfrwpwC5LCfznA2NaJr5SNvwmN6dKv6Pom",
"publicKeyJwk": {
"crv": "Ed25519",
"x": "5uRJcJ67oMzfaB3XXQeLNj_Bv3ew1mmV8lItQ1k52og",
"kty": "OKP",
"kid": "KizsQVRSz6l73kFnrAHJ1V6c5YQS6I0SS9zyZMNNdRs"
}
}
]
}Expected Response HTTP Status Code
201 Created
The key can be exported by using the key id located at verificationMethod.publicKeyJwk.kid in the DID document from the previous step.
Send the request as described below.
Request URL
{VC API base url}/v1/key/{keyId}
HTTP Verb
GET
Request Body
empty
Sample Expected Response Body
{
"publicKeyThumbprint": "KizsQVRSz6l73kFnrAHJ1V6c5YQS6I0SS9zyZMNNdRs",
"privateKey": {
"crv": "Ed25519",
"d": "31DlEXUMXAvcAuTpBl5cPlPavrzo4I9s63WiT0ni8zg",
"x": "5uRJcJ67oMzfaB3XXQeLNj_Bv3ew1mmV8lItQ1k52og",
"kty": "OKP"
},
"publicKey": {
"crv": "Ed25519",
"x": "5uRJcJ67oMzfaB3XXQeLNj_Bv3ew1mmV8lItQ1k52og",
"kty": "OKP",
"kid": "KizsQVRSz6l73kFnrAHJ1V6c5YQS6I0SS9zyZMNNdRs"
}
}Expected Response HTTP Status Code
200 OK
A key can be imported by providing the privateKey and publicKey.
Send the request as described below.
Request URL
{VC API base url}/v1/key
HTTP Verb
POST
Request Body
{
"privateKey": {
"crv": "Ed25519",
"d": "XYinvK___oQmhBvL0LDJPmryrvXDNKebtFznjri2YWk",
"x": "E5ljjWvsZZ2NYpDr7QDbit-WWKMxbzn3YgMjRa1dShQ",
"kty": "OKP"
},
"publicKey": {
"crv": "Ed25519",
"x": "E5ljjWvsZZ2NYpDr7QDbit-WWKMxbzn3YgMjRa1dShQ",
"kty": "OKP",
"kid": "MW-TUkCospd6AC16JkoD1-Iun1GxGLGSv6Z-48CfSj4"
}
}Sample Expected Response Body
{
"keyId": "MW-TUkCospd6AC16JkoD1-Iun1GxGLGSv6Z-48CfSj4"
}Expected Response HTTP Status Code
201 Created
A key can be registered against a key known to the server.
Send the request as described below.
Request URL
{VC API base url}/v1/did
HTTP Verb
POST
Request Body
{
"method": "key",
"keyId": "MW-TUkCospd6AC16JkoD1-Iun1GxGLGSv6Z-48CfSj4"
}Sample Expected Response Body
The DID Document of the registered DID.
{
"id": "did:key:z6MkfmmT2qF4bXwErwQ1dgWLxDLvCvGqGYJnudNULp7t63X9",
"verificationMethod": [
{
"id": "did:key:z6MkfmmT2qF4bXwErwQ1dgWLxDLvCvGqGYJnudNULp7t63X9#z6MkfmmT2qF4bXwErwQ1dgWLxDLvCvGqGYJnudNULp7t63X9",
"type": "Ed25519VerificationKey2018",
"controller": "did:key:z6MkfmmT2qF4bXwErwQ1dgWLxDLvCvGqGYJnudNULp7t63X9",
"publicKeyJwk": {
"crv": "Ed25519",
"x": "E5ljjWvsZZ2NYpDr7QDbit-WWKMxbzn3YgMjRa1dShQ",
"kty": "OKP",
"kid": "MW-TUkCospd6AC16JkoD1-Iun1GxGLGSv6Z-48CfSj4"
}
}
]
}Expected Response HTTP Status Code
201 Created