Skip to main content

Add an existing 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 adds an existing controller to the system. It allows you to register a controller that already exists on the blockchain by providing its address and basic details, making it available for management within the TEOS platform.

📘 Learn more about controllers.

Request Endpoint:

POST /odata/v1.0/Controllers/AddExisting

Parameters
No URL or query parameters.

Request Body:

application/json — The model containing information to add an existing controller.

ParameterTypeDescriptionMandatory
NamestringName of the controller
ControllerAddressstringAddress of the existing controller
CreatedBystringID of the user adding the controller
DescriptionstringDescription of the controller

Example Request Body:

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

{
"Name": "Test",
"Description": "My test controller",
"ControllerAddress": "0x16a1b82873d90f3c3454d487a4fe7017eae9d424",
"CreatedBy": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}

Parameters Table (Body)

ParameterTypeDescription
NamestringName of the controller
DescriptionstringDescription of the controller
ControllerAddressstringBlockchain address of the controller
CreatedBystringID of the user adding the controller (optional)

Response Body Example:

application/json

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

{
"Id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"Name": "string",
"Description": "string",
"EthereumAddress": "string",
"IssuerAddress": "string",
"WhitelistAddresses": [
{
"Address": "string",
"Limit": "string"
}
],
"BlacklistAddresses": [
{
"Address": "string",
"Reason": 0
}
],
"CreatedInBlockchainOn": "2025-10-10T09:08:50.544Z",
"CreatedBy": "37514BE7-D096-4BB8-95DA-EDB03B723BB2",
"CreatedOn": "2022-07-21T09:40:23.263Z",
"UpdatedOn": "2022-07-21T09:40:23.263Z",
"UpdatedBy": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}

Response Parameters Table

ParameterTypeDescription
IdstringUnique identifier of the controller
NamestringName of the controller
DescriptionstringDescription of the controller
EthereumAddress/ICPAddressstringEthereum address of the controller/ICPAddress of the controller
IssuerAddressstringAddress of the entity that issued the controller
WhitelistAddressesarrayList of whitelisted addresses with limits
WhitelistAddresses[].AddressstringWhitelisted blockchain address
WhitelistAddresses[].LimitstringLimit for the whitelisted address
BlacklistAddressesarrayList of blacklisted addresses with reasons
BlacklistAddresses[].AddressstringBlacklisted blockchain address
BlacklistAddresses[].ReasonnumberReason code for blacklisting
CreatedInBlockchainOnstring (datetime)Timestamp when controller was created on blockchain
CreatedBystringUser ID who created the controller
CreatedOnstring (datetime)Timestamp when controller was created in system
UpdatedOnstring (datetime)Timestamp of last update
UpdatedBystringUser ID who last updated the controller

Responses

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