Skip to main content

Create a controller

Controllers are blockchain-level entities that manage access rights to assets, allowing you to restrict who can buy, sell, or trade them.

This endpoint creates a new controller. It allows you to specify the controller’s Name, Description, and Issuer Address, enabling the creation of a controller that can manage access permissions for assets on the blockchain.

πŸ“˜ Learn more about controllers.

Request Endpoint:​

POST /odata/v1.0/Controllers/Create

Parameters:
No query parameters.

Request Body:​

application/json β€” The model containing information for creating the controller.

Mandatory fields in body:​

ParameterTypeDescriptionMandatory
NamestringName of the controllerβœ…
IssuerAddressstringBlockchain address of the issuerβœ…
CreatedBystringID of the user creating the controller (optional, used if API key is provided)❌
DescriptionstringDescription of the controller❌

Example Request Body:​

In EVM-compatible networks (e.g., Sparknet, Ethereum, and Polygon), the "IssuerAddress" is 42 characters long. In non-EVM networks, the address length may differ. For example, on Internet Computer, it is 63 characters.

{
"Name": "Test name",
"Description": "Test description",
"IssuerAddress": "0x128363b39f249b615d88b9dd2115b134a3b042be",
"CreatedBy": "70647697-15c6-454d-8b34-638c8f68c79f"
}

Response Body:​

application/json β€” Returns the created controller with transaction details.

ParameterTypeDescription
IdstringController ID
StatestringTransaction state
BlockchainTransactionIdstringID of the transaction in blockchain
TypestringType of transaction
OnCreateddatetimeTimestamp when transaction was created
OnUpdateddatetimeTimestamp when transaction was updated
OnSubmitteddatetimeTimestamp when transaction was submitted
OnCommitteddatetimeTimestamp when transaction was committed
OnConfirmeddatetimeTimestamp when transaction was confirmed
OnRevokedByBlockchaindatetimeTimestamp if transaction was revoked by blockchain
OnRevokedByUserdatetimeTimestamp if transaction was revoked by user
OnRevokedByTxServerdatetimeTimestamp if transaction was revoked by TxServer
SignedBystringAddress of signer
CreatedBystringID of user who created the transaction
GasPricestringGas price used for transaction
GasUsedstringGas used for transaction
DataAsJsonstringTransaction data in JSON format
SigningParametersAsJsonstringParameters used for signing in JSON format

Example Response Body:​

{
"Id": "C0D34D73-6FD3-40F2-A7E1-08D9412448F7",
"State": "3",
"BlockchainTransactionId": "0x748ac47e7226cae0e4e13373375f33ab9e4d43ef29d85d233162a7e7e913703b",
"Type": "ActivateAsset",
"OnCreated": "2025-10-10T09:46:11.224Z",
"OnUpdated": "2025-10-10T09:46:11.224Z",
"OnSubmitted": "2025-10-10T09:46:11.224Z",
"OnCommitted": "2025-10-10T09:46:11.224Z",
"OnConfirmed": "2025-10-10T09:46:11.224Z",
"OnRevokedByBlockchain": "2025-10-10T09:46:11.224Z",
"OnRevokedByUser": "2025-10-10T09:46:11.224Z",
"OnRevokedByTxServer": "2025-10-10T09:46:11.224Z",
"SignedBy": "string",
"CreatedBy": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"GasPrice": "string",
"GasUsed": "string",
"DataAsJson": "string",
"SigningParametersAsJson": "string"
}

Responses:​

CodeDescription
201The controller was successfully created
400The controller create data is invalid. Error details are included
401Unauthorized