createDID API Reference
This document provides a concise API reference for the createDID
function within the Hedera DID SDK for JavaScript.
Function Signature
The createDID
function can be invoked with providers
alone to generate a DID with default settings, or with both providers
and options
to customize the DID creation process.
function createDID(providers: Providers): Promise<CreateDIDResult>;
function createDID(
options: CreateDIDOptions,
providers: Providers
): Promise<CreateDIDResult>;
Parameters
The function accepts the following parameters:
-
providers
: (Required) An object encapsulating configuration parameters for interacting with the Hedera network. -
options
: (Optional) An object enabling customization of the DID creation procedure.
providers Parameter
The table below details the structure of the providers
parameter.
Name | Type | Description |
---|---|---|
providers |
|
An object containing a Hedera Client, a cryptographic Signer, and a transaction Publisher (refer to Providers Type for details). |
options Parameter
The table below details the structure of the options
parameter.
Name | Type | Description |
---|---|---|
options |
|
An object specifying configuration options for DID creation (refer to CreateDIDOptions Type for details). |
Data Types
This section elaborates on the data types employed within the providers
and options
parameters.
Providers Type
To utilize this type, at least one of the following must be defined: client
or publisher
. If both are provided, publisher
takes precedence.
The table below provides a detailed description of the Providers
type.
Name | Type | Description |
---|---|---|
clientOptions? |
|
Configuration options for instantiating a Hedera Client. See a full running example in the source code. |
client? |
|
An instance of a Hedera Client. See a full running example in the source code. |
signer? |
|
An instance of a Signer. If not provided, a private key must be specified in the |
publisher? |
|
An instance of a Publisher responsible for submitting the DID creation transaction to the Hedera network. |
CreateDIDOptions Type
The table below provides a detailed description of the CreateDIDOptions
type.
Name | Type | Description |
---|---|---|
controller? |
|
A DID string representing the entity controlling the newly created DID. If not specified, the generated DID will be self-managed. See a full running example in the source code. |
topicId? |
|
The ID of the Hedera Topic associated with the DID. If omitted, a new topic will be automatically created. See a full running example in the source code. |
privateKey? |
|
A private key (in DER format) or a |
waitForDIDVisibility? |
|
Whether to wait for the DID to be visible on the network. The DID registration transaction may be confirmed before the DID is actually accessible and usable on the network. This option ensures that the function waits until the DID is fully propagated and discoverable. If set to Defaults to |
visibilityTimeoutMs? |
|
The maximum time (in milliseconds) to wait for the DID to be visible on the network. This option is only relevant if |
topicReader? |
|
An instance of a TopicReader. If not provided, a default |
Return Value
Upon successful execution, the function returns a Promise that resolves to a CreateDIDResult
object.
The table below describes the structure of the CreateDIDResult
type.
Name | Type | Description |
---|---|---|
did |
|
The DID string of the newly created Decentralized Identifier. |
didDocument |
|
The DID Document associated with the newly created DID. |
privateKey? |
|
A |
Errors
The following table enumerates the exceptions that may arise during the execution of the createDID
function.
Exception code | Description |
---|---|
|
Required providers are missing. |
|
Providers must contain client options or client or publisher. |
|
Hashgraph SDK Client must be configured with a network. |
|
Hashgraph SDK Client must be configured with an operator account. |
|
Controller is not a valid Hedera DID. |
|
The signature is invalid. Provided signer does not match the DID signer. |
|
DID already exists on the network |
|
Failed to create topic. |
|
Failed to create the DID. |
|
Message awaiter timeout reached. Messages not found. |
Function Implementation
The Hashgraph DID SDK provides a createDID
function within its registrar
package. For further details, refer to the @hashgraph-did-sdk-js/registrar
package documentation.