# Create an asset

An asset, often referred to as a **token,** represents a digital artifact on the TEOS platform that can be stored, managed, and verified on blockchain.

This endpoint creates a new asset by providing the required general properties, such as:

* **Author** – the creator of the asset
* **Name** – the asset name
* **Description** – a brief description of the asset
* **LanguageCode** – the language of the asset
* **JurisdictionCode** – the legal jurisdiction related to the asset

Additionally, custom properties can be defined using CustomDefinitionItems to capture asset-specific information.

📘 Learn more about assets -[ link](https://app.gitbook.com/o/ZaeNizhnU47lCcTSk7wB/s/8Gkk33l0DIIchfRT86LP/~/changes/1/resources/using-the-teos-api/concepts/asset)

#### Request Endpoint:

```http
POST /odata/v1.0/Assets
```

#### Parameters

No query parameters.

#### Request Body:

&#x20;`application/json`  — The asset object to create.

| **Parameter**         | **Type** | **Description**                            | **Mandatory** |
| --------------------- | -------- | ------------------------------------------ | ------------- |
| Author                | Body     | The address of the asset creator.          | ✅             |
| Name                  | Body     | The name of the asset.                     | ✅             |
| Description           | Body     | The description of the asset.              | ✅             |
| LanguageCode          | Body     | Language code (ISO 2) of the asset.        | ✅             |
| JurisdictionCode      | Body     | Jurisdiction country code (ISO 2).         | ✅             |
| CustomDefinitionItems | Body     | A list of custom properties for the asset. | ❌             |

#### Example Request Body

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

```json
{
  "Author": "0xec0744c44d73ccca9c1266b44bef503802c57cac",
  "Name": "NotarDoc",
  "Description": "This is a blockchain record",
  "LanguageCode": "en",
  "JurisdictionCode": "EARTH",
  "CustomDefinitionItems": [
    {
      "Key": "data",
      "Name": "Data",
      "Type": "TEXT",
      "Value": "My Private documentation",
      "SectionsPath": "[documentation]",
      "SectionsPathNames": "[Documentation]"
    }
  ]
```

#### Response Body:

`application/json`  — Returns the asset creation transaction object.

| **Parameter**           | **Description**                                             |
| ----------------------- | ----------------------------------------------------------- |
| Id                      | The transaction ID.                                         |
| State                   | Current state of the transaction.                           |
| BlockchainTransactionId | Blockchain transaction identifier.                          |
| CorrelationId           | Correlation ID of the transaction.                          |
| Type                    | Transaction type (e.g., ActivateAsset).                     |
| OnCreated               | Timestamp when the transaction was created.                 |
| OnUpdated               | Timestamp when the transaction was updated.                 |
| OnSubmitted             | Timestamp when the transaction was submitted to blockchain. |
| OnCommitted             | Timestamp when the transaction was committed.               |
| OnConfirmed             | Timestamp when the transaction was confirmed.               |
| OnRevokedByBlockchain   | Timestamp if revoked by blockchain.                         |
| OnRevokedByUser         | Timestamp if revoked by user.                               |
| OnRevokedByTxServer     | Timestamp if revoked by transaction server.                 |
| SignedBy                | Account/address that signed the transaction.                |
| CreatedBy               | ID of the creator.                                          |
| GasPrice                | Gas price used.                                             |
| GasUsed                 | Amount of gas consumed.                                     |
| DataAsJson              | Transaction data in JSON format.                            |
| SigningParametersAsJson | Signing parameters in JSON format.                          |

#### Example Response Body

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

#### Response Codes

| **Code** | **Description**                                         |
| -------- | ------------------------------------------------------- |
| 200      | The asset creation transaction was successfully placed. |
| 400      | The asset is invalid. Error details are included.       |
| 401      | Unauthorized.                                           |

\ <br>
