---
updatedAt: 2025-05-19T21:38:27.000Z
agentTools:
  projectIndex: https://rootvx.readme.io/llms.txt
---

# CreatePlatformAssetToken

This endpoint is used to create a new asset token associated with a platform. It requires a unique Idempotency-Key in the request header to prevent duplicate requests. The request body contains the asset token's configuration, including details such as its name, symbol, supply, value, and other relevant metadata.

# OpenAPI definition

```json
{
  "openapi": "3.0.3",
  "info": {
    "title": "Asset Manager",
    "description": "This is a sample Tokenization server. You can find out more about Tokenization at [https://rootvx.readme.io](https://rootvx.readme.io)",
    "version": "1.0.0",
    "contact": {
      "email": "nagamani@rootpe.com"
    }
  },
  "servers": [
    {
      "url": "https://api.sandbox.rootvx.com/asset-manager"
    }
  ],
  "security": [
    {
      "BearerAuth": []
    }
  ],
  "tags": [
    {
      "name": "AssetToken",
      "description": "Endpoints related to the asset token"
    }
  ],
  "paths": {
    "/api/v1/platform/asset/token": {
      "post": {
        "summary": "CreatePlatformAssetToken",
        "description": "This endpoint is used to create a new asset token associated with a platform. It requires a unique Idempotency-Key in the request header to prevent duplicate requests. The request body contains the asset token's configuration, including details such as its name, symbol, supply, value, and other relevant metadata.",
        "operationId": "createAssetToken",
        "tags": [
          "AssetToken"
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "A unique key to prevent duplicate requests. Typically a UUID.",
            "required": true,
            "example": "123e4567-e89b-12d3-a456-426614174000",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AssetTokenConfig"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful - Asset token successfully created.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssetToken"
                }
              }
            }
          },
          "400": {
            "description": "Bad request -  Invalid request due to missing or incorrect parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden - The client does not have permission to create an asset token.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Conflict - Asset token already exists",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssetToken"
                }
              }
            }
          },
          "422": {
            "description": "Unsuccessful - The request was processed but could not create an asset token.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error - A server-side error occurred.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    }
  },
  "components": {
    "securitySchemes": {
      "BearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT",
        "description": "Bearer token for authentication. Format: Bearer <token>"
      }
    },
    "schemas": {
      "ErrorResponse": {
        "type": "object",
        "properties": {
          "errorCode": {
            "type": "string",
            "description": "Specific error code identifying the type of error.",
            "example": "AMSE-001"
          },
          "errorMessage": {
            "type": "string",
            "description": "A brief message describing the error.",
            "example": [
              "ENTITY_NOT_FOUND"
            ]
          },
          "details": {
            "type": "string",
            "description": "Additional details about the error.",
            "example": "User entity not found for the given ID."
          }
        }
      },
      "AssetStatus": {
        "type": "string",
        "description": "Status of the asset",
        "default": "active",
        "enum": [
          "active",
          "inactive",
          "pending_approval",
          "approved",
          "rejected"
        ]
      },
      "AssetToken": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "description": "The unique identifier of the asset token.",
            "example": "974c2689-e181-4aaa-a9a6-20bbfe6079b8"
          },
          "name": {
            "type": "string",
            "description": "Name of the asset token",
            "example": "PrestigeBlr"
          },
          "symbol": {
            "type": "string",
            "description": "Symbol of the asset token",
            "example": "PRSTGBLR"
          },
          "platformId": {
            "type": "string",
            "format": "uuid",
            "description": "The unique identifier of the associated platform.",
            "example": "2e7bc45d-a61f-4207-80a8-9bc307f6ebb6"
          },
          "supplyDecimal": {
            "type": "integer",
            "format": "uint8",
            "description": " ecimal representation of total supply.",
            "example": 2
          },
          "minimumQty": {
            "type": "integer",
            "format": "uint64",
            "description": "Minimum purchase quantity.",
            "example": 100
          },
          "maximumQty": {
            "type": "integer",
            "format": "uint64",
            "description": "Maximum purchase quantity.",
            "example": 10000000
          },
          "targetYieldPercentage": {
            "type": "number",
            "format": "double",
            "description": "Yield percentage for the token. For example 5.25 for 5.25%.",
            "example": 5.25
          },
          "tokenValueInteger": {
            "type": "integer",
            "format": "uint64",
            "description": "Price per asset token.",
            "example": 100
          },
          "tokenValueDecimals": {
            "type": "integer",
            "description": "Decimal representation of the token value.",
            "format": "uint8",
            "example": 2
          },
          "kycedOnly": {
            "type": "boolean",
            "description": "Indicates whether KYC is required.",
            "example": true
          },
          "approvalRequired": {
            "type": "boolean",
            "description": "Whether approval is required for purchase",
            "example": true
          },
          "metadata": {
            "type": "object",
            "additionalProperties": true,
            "description": "Additional metadata for the asset token.",
            "example": {
              "key": "value",
              "foo": "bar"
            }
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "description": "Timestamp when the asset token was created. The date and time are represented in the ISO 8601 format 'YYYY-MM-DDTHH:MM:SS.sssZ', where Z denotes Zulu time (UTC).",
            "example": "2021-09-01T00:00:00Z"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "description": "Timestamp when the asset token was last updated. The date and time are represented in the ISO 8601 format 'YYYY-MM-DDTHH:MM:SS.sssZ', where Z denotes Zulu time (UTC).",
            "example": "2021-09-01T00:00:00Z"
          },
          "initialSupply": {
            "type": "integer",
            "format": "uint64",
            "description": "Total supply when the token was created.",
            "example": 1000000
          },
          "listedSupply": {
            "type": "integer",
            "format": "uint64",
            "description": "Amount of tokens available for purchase.",
            "example": 500000
          },
          "currentSupply": {
            "type": "integer",
            "format": "uint64",
            "description": "Remaining unlisted tokens.",
            "example": 500000
          },
          "targetYield": {
            "type": "number",
            "format": "double",
            "description": "Target yield percentage",
            "example": 5.25
          },
          "assetTokenAddress": {
            "type": "string",
            "example": "0x12434123452323"
          },
          "status": {
            "$ref": "#/components/schemas/AssetStatus"
          }
        }
      },
      "AssetTokenType": {
        "type": "string",
        "description": "Type of the asset token.",
        "enum": [
          "real_estate",
          "equity",
          "debt",
          "commodity",
          "fund",
          "others"
        ],
        "example": "real_estate"
      },
      "AssetTokenConfig": {
        "type": "object",
        "required": [
          "name",
          "symbol",
          "tokenType",
          "initialSupply",
          "supplyDecimals",
          "assetValue",
          "assetValueDecimals",
          "kycedOnly"
        ],
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the asset token.",
            "example": "PrestigeBlr",
            "format": "^[a-zA-Z0-9]*$",
            "minimum": 3,
            "maximum": 40
          },
          "symbol": {
            "type": "string",
            "description": "Symbol of the asset token.",
            "example": "PRSBLR",
            "format": "^[A-Z]*$",
            "minimum": 3,
            "maximum": 6
          },
          "assetValue": {
            "type": "integer",
            "description": "Initial supply of the token.",
            "format": "uint64",
            "example": 100000
          },
          "assetValueDecimals": {
            "type": "integer",
            "description": "Decimal places for asset value.",
            "format": "uint8",
            "example": 2
          },
          "assetStatus": {
            "$ref": "#/components/schemas/AssetStatus"
          },
          "tokenType": {
            "$ref": "#/components/schemas/AssetTokenType"
          },
          "initialSupply": {
            "type": "integer",
            "format": "uint64",
            "description": "Total initial total supply of the token.",
            "example": 1000000
          },
          "supplyDecimals": {
            "type": "integer",
            "format": "uint8",
            "description": "Number of decimal places for supply values.",
            "example": 2
          },
          "minimumQty": {
            "type": "integer",
            "format": "uint64",
            "default": 1,
            "description": "Minimum purchase quantity (defaults to 1).",
            "example": 1
          },
          "maximumQty": {
            "type": "integer",
            "format": "uint64",
            "default": 1,
            "description": "Maximum purchase quantity.",
            "example": "1000000"
          },
          "targetYieldPercentage": {
            "type": "number",
            "format": "double",
            "default": 0,
            "description": "Yield percentage for the token. For example 5.25 for 5.25%.",
            "example": 5.25
          },
          "kycedOnly": {
            "type": "boolean",
            "default": false,
            "description": "If true, only KYCed investors can buy this token.",
            "example": false
          },
          "approvalRequired": {
            "type": "boolean",
            "default": false,
            "description": "Specifies if transaction approval is required.",
            "example": false
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Additional data represented as key-value pairs. Both the key and value must be strings.",
            "example": {
              "key": "value",
              "foo": "bar"
            }
          },
          "description": {
            "type": "string",
            "description": "Description of the asset token.",
            "example": "Prestige Whitefield Bangalore Flat 1"
          }
        }
      }
    }
  },
  "x-visibility": "external",
  "x-readme-id": "679a1904194eb5002c27dd79"
}
```