Skip to main content

Operations

Below are the methods exposed by the SIWYS keymaster client SDKs.

DID Operations

Create an Identity

await Keymaster.createId({ name: "Paul Revere" });

Get a DID Document

await Keymaster.resolveDID({
did: "did:test:z3v8AuagJiXARFGw3B8Mc6DrLBC2thMzjgeUZWQvHcyPVBxAYZv",
});

Delete a DID

await Keymaster.removeId({
did: "did:test:z3v8AuagJiXARFGw3B8Mc6DrLBC2thMzjgeUZWQvHcyPVBxAYZv",
});

Set Current DID

await Keymaster.setCurrentId("identity-name-1");

Templates / Schemas

Create a Template / Schema

const schema = {
$schema: "http://json-schema.org/draft-07/schema#",
title: "Drivers License",
type: "object",
properties: {
licenseNumber: 1234567890,
firstName: "Paul",
lastName: "Revere",
isValid: true,
},
required: ["licenseNumber", "firstName", "lastName"],
};

await Keymaster.createSchema(schema);

Challenges & Responses

Create a Challenge

await Keymaster.createChallenge({
callback: "https://www.your-domain.com/api/auth",
});

Create a Response

await Keymaster.createResponse(
"did:test:z3v8AuagJiXARFGw3B8Mc6DrLBC2thMzjgeUZWQvHcyPVBxAYZv",
);

Verify Response

await Keymaster.verifyResponse(
"did:test:z3v8AuagJiXARFGw3B8Mc6DrLBC2thMzjgeUZWQvHcyPVBxAYZv",
);

Credentials

Issue Credential

await Keymaster.issueCredential(
"did:test:z3v8AuagJiXARFGw3B8Mc6DrLBC2thMzjgeUZWQvHcyPVBxAYZv",
);

Bind Credential

await Keymaster.bindCredential(
"did:test:z3v8AuagJiXARFGw3B8Mc6DrLBC2thMzjgeUZWQvHcyPVBxAYZv",
"did:test:z3v8AuagJiXARFGw3B8Mc6DrLBC2thMzjgeUZWQvHcyPVBxAYZw",
);

Get Credential

await Keymaster.getCredential(
"did:test:z3v8AuagJiXARFGw3B8Mc6DrLBC2thMzjgeUZWQvHcyPVBxAYZv",
);

Update a Credential

await Keymaster.updateCredential(
"did:test:z3v8AuagJiXARFGw3B8Mc6DrLBC2thMzjgeUZWQvHcyPVBxAYZv",
{},
);

Accept Credentials

await Keymaster.acceptCredential(
"did:test:z3v8AuagJiXARFGw3B8Mc6DrLBC2thMzjgeUZWQvHcyPVBxAYZv",
);

Decrypt Message

await Keymaster.decryptMessage(
"did:test:z3v8AuagJiXARFGw3B8Mc6DrLBC2thMzjgeUZWQvHcyPVBxAYZv",
);

Publish Credentials

await Keymaster.publishCredential(
"did:test:z3v8AuagJiXARFGw3B8Mc6DrLBC2thMzjgeUZWQvHcyPVBxAYZv",
{ reveal: true },
);

Custom Headers

Add Custom Header

await Keymaster.addCustomHeader("authorization", "base64-encoded-string");

Remove Custom Header

await Keymaster.removeCustomHeader("authorization");