> For the complete documentation index, see [llms.txt](https://teos-docs.coreledger.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://teos-docs.coreledger.net/guides/controllers/set-a-whitelist-addresses.md).

# Set a whitelist addresses

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

This endpoint updates the whitelist addresses of a specific controller. It can add new addresses to the whitelist or update the limit for existing addresses. The operation modifies the blockchain-level controller, ensuring that access permissions are applied according to the updated whitelist.

📘 Learn more about [controllers](/resources/using-the-teos-api/concepts/controllers.md).

#### Request Endpoint:

```http
POST /odata/v1.0/Controllers({key})/SetWhitelistAddresses
```

#### Parameters

| Name | Type          | Description       | Mandatory |
| ---- | ------------- | ----------------- | --------- |
| key  | string($uuid) | The controller ID | ✅         |

#### Request Body:

`application/json`  — The object containing whitelist addresses to create or update.

**Mandatory fields in body:**

* whitelistAddresses — array of addresses to add/update
* Each item in whitelistAddresses must have:
* Address (string) — the blockchain address
* Limit (string or number) — the allowed limit for this address

#### Example Request Body:

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

```json
{
  "whitelistAddresses": [
    {
      "Address": "0x128363b39f249b615d88b9dd2115b134a3b042be",
      "Limit": "10"
    },
    {
      "Address": "0x76f8b4f93cbc0468a35b258dc21331c409cc76a3",
      "Limit": "20000"
    }
  ]
}
```

#### Parameters Table (Body)

| **Parameter**                 | **Type**        | **Description**                                 |
| ----------------------------- | --------------- | ----------------------------------------------- |
| whitelistAddresses            | array           | List of whitelist addresses to create or update |
| whitelistAddresses\[].Address | string          | Blockchain address to whitelist                 |
| whitelistAddresses\[].Limit   | string / number | Limit for the address in transactions           |

#### Response Body Example:

`application/json`&#x20;

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

#### Response Parameters Table

| **Parameter**           | **Type**          | **Description**                                                |
| ----------------------- | ----------------- | -------------------------------------------------------------- |
| Id                      | string            | The unique identifier of the transaction                       |
| State                   | string            | Current state of the transaction                               |
| BlockchainTransactionId | string            | ID of the transaction on the blockchain                        |
| Type                    | string            | Type of transaction                                            |
| OnCreated               | string (datetime) | Timestamp when the transaction was created                     |
| OnUpdated               | string (datetime) | Timestamp when the transaction was last updated                |
| OnSubmitted             | string (datetime) | Timestamp when the transaction was submitted                   |
| OnCommitted             | string (datetime) | Timestamp when the transaction was committed to the blockchain |
| OnConfirmed             | string (datetime) | Timestamp when the transaction was confirmed on the blockchain |
| OnRevokedByBlockchain   | string (datetime) | Timestamp if transaction was revoked by blockchain             |
| OnRevokedByUser         | string (datetime) | Timestamp if transaction was revoked by user                   |
| OnRevokedByTxServer     | string (datetime) | Timestamp if transaction was revoked by TxServer               |
| SignedBy                | string            | Address that signed the transaction                            |
| CreatedBy               | string            | ID of the creator of the transaction                           |
| GasPrice                | string            | Gas price used for the transaction                             |
| GasUsed                 | string            | Gas used for the transaction                                   |
| DataAsJson              | string            | Transaction data in JSON format                                |
| SigningParametersAsJson | string            | Signing parameters in JSON format                              |

#### Responses

| **Code** | **Description** |
| -------- | --------------- |
| 202      | Accepted        |
| 400      | Bad Request     |
| 401      | Unauthorized    |

<br>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://teos-docs.coreledger.net/guides/controllers/set-a-whitelist-addresses.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
