Skip to main content

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
    • 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.
  • Name – the asset name
  • Description – a brief description of the asset
  • LanguageCode – the language of the asset
    • An asset can be documented in multiple languages, and Asset.LanguageCode is used as the default language for the asset.
      The supplied values must match the Code property of existing records returned by:
      • /odata/vx.x/languages
  • JurisdictionCode – the legal jurisdiction related to the asset
    • The supplied values must match the Code property of existing records returned by:
      • /odata/vx.x/countries

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

📘 Learn more about assets.

Request Endpoint:

POST /odata/v1.0/Assets

Parameters

No query parameters.

Request Body:

application/json — The asset object to create.

ParameterTypeDescriptionMandatory
AuthorBodyThe address of the asset creator.
NameBodyThe name of the asset.
DescriptionBodyThe description of the asset.
LanguageCodeBodyLanguage code (ISO 2) of the asset.
JurisdictionCodeBodyJurisdiction country code (ISO 2).
CustomDefinitionItemsBodyA list of custom properties for the asset.

Example Request Body

{
"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.

ParameterDescription
IdThe transaction ID.
StateCurrent state of the transaction.
BlockchainTransactionIdBlockchain transaction identifier.
CorrelationIdCorrelation ID of the transaction.
TypeTransaction type (e.g., ActivateAsset).
OnCreatedTimestamp when the transaction was created.
OnUpdatedTimestamp when the transaction was updated.
OnSubmittedTimestamp when the transaction was submitted to blockchain.
OnCommittedTimestamp when the transaction was committed.
OnConfirmedTimestamp when the transaction was confirmed.
OnRevokedByBlockchainTimestamp if revoked by blockchain.
OnRevokedByUserTimestamp if revoked by user.
OnRevokedByTxServerTimestamp if revoked by transaction server.
SignedByAccount/address that signed the transaction.
CreatedByID of the creator.
GasPriceGas price used.
GasUsedAmount of gas consumed.
DataAsJsonTransaction data in JSON format.
SigningParametersAsJsonSigning parameters in JSON format.

Example Response Body

{
"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

CodeDescription
200The asset creation transaction was successfully placed.
400The asset is invalid. Error details are included.
401Unauthorized.