generateCreateDIDRequest API Reference
This document provides a concise API reference for the generateCreateDIDRequest
function within the Hedera DID SDK for JavaScript.
Function Signature
This function generates a request to create a new Decentralized Identifier (DID) on the Hedera network using the Client Managed Secret Mode.
The generateCreateDIDRequest
function is invoked with providers
and options
parameters. The providers
parameter encapsulates configuration parameters for interacting with the Hedera network, while the options
parameter enables customization of the DID creation procedure and passing required public key.
function generateCreateDIDRequest(
options: GenerateCreateDIDRequestOptions,
providers: PublisherProviders,
): Promise<CreateDIDRequest>;
Parameters
The function accepts the following parameters:
-
providers
: (Required) An object encapsulating configuration parameters for interacting with the Hedera network. -
options
: (Required) An object containing a public key for DID root key and 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 or a transaction Publisher (refer to PublisherProviders 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 request (refer to GenerateCreateDIDRequestOptions Type for details). |
Return Value
Upon successful execution, the function returns a Promise that resolves to a CreateDIDRequest
object.
The table below describes the structure of the CreateDIDRequest
type.
Name | Type | Description |
---|---|---|
state |
|
The current state of the DID creation process. Enables resuming the process after signing the request. |
signingRequest |
|
The request to be signed by the client. Contains the serialized payload of the DID creation transaction and metadata (refer to SigningRequest Type for details). |
Data Types
This section elaborates on the data types employed within the providers
and options
parameters.
PublisherProviders 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 PublisherProviders
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. |
publisher? |
|
An instance of a Publisher responsible for submitting the DID creation transaction to the Hedera network. |
GenerateCreateDIDRequestOptions Type
The table below provides a detailed description of the GenerateCreateDIDRequestOptions
type.
Name | Type | Description |
---|---|---|
multibasePublicKey |
|
A public key encoded in multibase format. This key is used as the root key for the newly created DID. |
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. |
topicReader? |
|
An instance of a TopicReader responsible for reading messages from the Hedera network topic. |
SigningRequest Type
The table below provides a detailed description of the SigningRequest
type.
Name | Type | Description |
---|---|---|
payload |
|
An object containing the payload of the DID message to be signed. |
serializedPayload |
|
A serialized bytes representation of the DID message payload. Actual bytes to be signed. |
multibasePublicKey |
|
The public key of the corresponding private key required to sign the request. |
alg |
|
The algorithm used for signing the request. Currently, only |
Errors
The following table enumerates the exceptions that may arise during the execution of the generateCreateDIDRequest
function.
Exception code | Description |
---|---|
|
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. |
|
DID already exists on the network. |
|
Failed to create topic. |
Function Implementation
The Hashgraph DID SDK provides a generateCreateDIDRequest
function within its registrar
package. For further details, refer to the @hashgraph-did-sdk-js/registrar
package documentation.