Update a controller
This endpoint updates off-chain data of a controller.
Controllers on the TEOS platform are blockchain-level entities that manage permissions and restrictions for specific operations. This endpoint allows updating only the Name and Description fields of a controller.
📘 Learn more about controllers.
Request Endpoint:​
PUT /odata/v1.0/Controllers({key})
Supported OData query options:
Filter, Expand, Select, OrderBy, Top, Skip, Count, Format, SkipToken, Apply, Compute, Search
Parameters​
| Name | Type | Description |
|---|---|---|
| key | string (UUID) | The unique identifier of the controller to update. |
Request Body:​
application/json — Object containing the fields to update.
| Parameter | Type | Description | Mandatory |
|---|---|---|---|
| Name | string | The new name of the controller. | ✅ |
| Description | string | The new description of the controller. | ✅ |
Example Request Body:​
{
"Name": "Test",
"Description": "My test controller"
}
Response Body:​
application/json — Returns the updated controller object with all current fields, including blockchain-related data.
| Parameter | Type | Description |
|---|---|---|
| Id | string (UUID) | Unique identifier of the controller. |
| Name | string | Name of the controller. |
| Description | string | Description of the controller. |
| EthereumAddress/ICPAddress | string | The blockchain address associated with the controller. |
| IssuerAddress | string | Address of the issuer that created the controller. |
| WhitelistAddresses | array | List of addresses allowed to interact with this controller. |
| WhitelistAddresses.Address | string | Whitelisted blockchain address. |
| WhitelistAddresses.Limit | string | Optional transaction or interaction limit for the address. |
| BlacklistAddresses | array | List of addresses restricted from interacting with the controller. |
| BlacklistAddresses.Address | string | Blacklisted blockchain address. |
| BlacklistAddresses.Reason | integer | Reason code for blacklisting. |
| CreatedInBlockchainOn | datetime | Date and time when the controller was created on the blockchain. |
| CreatedBy | string (UUID) | Identifier of the user who created the controller. |
| CreatedOn | datetime | Timestamp when the controller was created in the system. |
| UpdatedOn | datetime | Timestamp of the last update. |
| UpdatedBy | string (UUID) | Identifier of the user who last updated the controller. |
Example Response Body:​
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": "Test",
"Description": "My test controller",
"EthereumAddress": "0xe0450ce1e2ef73b15514ae6a003b90d0ebac8836",
"IssuerAddress": "0x1977832755fb404b96ea7a1d95b67df2135e94f1",
"WhitelistAddresses": [
{
"Address": "0x3c878fccdbae5915433e0ec859c781f1d07b3665",
"Limit": "1000"
}
],
"BlacklistAddresses": [
{
"Address": "0x1977832755fb404b96ea7a1d95b67df2135e94f1",
"Reason": 1
}
],
"CreatedInBlockchainOn": "2025-10-10T07:53:18.200Z",
"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 Codes:​
| Code | Description |
|---|---|
| 200 | The controller was successfully updated. |
| 400 | Bad Request. The provided data is invalid. |
| 401 | Unauthorized. |