Once you have successfully created a project, you can create one or several token(s) under it.
We currently support two asset classes: bonds and shares (equities). While they share certain fields, they also require datapoints that are specific to them. The metadata sent to the blockchain also differs depending on the asset class.
POST Initialize tokenized asset creation /api/tokenization/{institutionId}/tokenized-assets
# UAT BASE_URL: https://uat.vault.nyala.de
# Production BASE_URL: https://vault.nyala.de
# The {institutionIid} is 8c8f78bc-78e0-47a7-b4e0-a793343175f0
# The {projectId} is 40ff9e56-cf2a-499a-9fe7-706e0e136eb7
curl -X POST {{BASE_URL}}/api/tokenization/{institutionId}/tokenized-assets \
-H "X-API-KEY: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"blockchain": 14,
"name": "TK-United States of America",
"unitName": "TK6976",
"isin": "DE976",
"totalSupply": 1000,
"enableFreeze": true,
"enableClawback": true,
"isRegulatedSecurity": true,
"projectId": "40ff9e56-cf2a-499a-9fe7-706e0e136eb7",
"isManuallyCreated": true,
"credentials": {
"passphrase": "{your-secure-passphrase}"
},
"interestPaymentPeriod": 3,
"numberOfPayments": 0,
"issuerName": "United States of America",
"price": "100",
"nominalAmountPerToken": "100",
"duration": "2035-01-01"
}'The table below describes parameters common to both bond and share tokens.
| Parameter | Description | Expected Values |
|---|---|---|
| Institution ID | The UID of your institution. | "cdae5c01-a629-4362-be56-52101ec22a49" |
| Project ID | The ID of the project the new token belongs. | "5a8591dd-4039-49df-9202-96385ba3eff8" |
| Blockchain | Blockchain on which the token will be created. | "Polygon", "Stellar", "Peaq", or "NotSet" |
| Name | Full name of the token. Visible on-chain and immutable. | "Tech Company Bond A" |
| Unit name | The ticker of the token. Visible on-chain and immutable. | "TCB" |
| Issuer name | Full legal name of the issuing entity including legal form. Visible on-chain and immutable. | "Tech Company AG" |
| Total Supply | The total number of tokens to be minted. Visible on-chain. | 5000 |
| ISIN | ISIN of the associated security that is being tokenized. Mandatory for securities. Visible on-chain and immutable. | "DE000A418DA8" |
| Decimals | Stating whether the token shall be fractionalized or not and to what fraction. This refers to the fractionalization of the token. By default, if you do not wish to make the token fractionalizable, you should set "7" for Stellar or "18" for Polygon. If the field is left empty, no fractionalization will be possible. If you do wish to make the token fractionalizable, you can enter "1", "2", "3", etc. for the number of desired decimals. | "18" |
| Is regulated security | Set "True" if token represents a regulated financial security (it must always be true if the tokenized asset has an ISIN). | TRUE |
| Enable freeze | Must be "True" for an eWpG token (financial security). It indicates if asset movements can be frozen. Note that the actual freezing of the asset can only be done by the registrar (Smart Registry GmbH). | TRUE |
| Enable clawback | Must be "True" for an eWpG token (financial security). Indicating if asset can be forcefully removed from investor if an incident is later detected. Note that the actual clawback of the asset can only be done by the registrar (Smart Registry GmbH). | TRUE |
| Custom attributes | In case you want to send custom attributes on-chain, you can use this field to add them. Visible on-chain and immutable. | |
| Is fungible | Always set to TRUE for a security / an eWpG token / any token that is not an NFT. | TRUE |
| Passphrase | Enter the project passphrase here to finalize the token creation request. | "Passphraseprojectxyz" |
| URL | Can be left empty |
The table below describes parameters specific to bond tokens.
| Parameter | Description | Expected Values |
|---|---|---|
| Price | Price per token that an investor will pay. The currency will be the same as indicated at project creation. The price of a share is not public, nor is it sent on chain. | "1000" |
| Nominal amount per token | Nominal value of a bond token. Can be different from the price. The currency will be the same as indicated at project creation. Visible on-chain and immutable. | "1000" |
| Duration | States the date when the bond is expiring. Ideally sent as a date following the format YYYY-MM-DD. | "2035-01-01" |
| Interest rate | Yearly interest rate of the bond, including the % sign. If the bond does not pay interest, you can leave this blank. | "8%" |
| Issuing memo | Set the nominal price + "E" (if held in individual entry). | "250E" |
The table below describes parameters specific to share tokens.
| Parameter | Description | Expected Values |
|---|---|---|
| Share class | The class of shares being issued (preferred, common, etc.). Sent on-chain and immutable. | "Common stock" |
| Voting right | Whether the owner is allowed to vote at shareholder meetings or not. Sent on-chain and immutable. | FALSE |
| Voting rights | If the above is set to true, add a description of the voting rights as a string. Can be left empty. Sent on-chain and immutable. | |
| Par value | The par-value, also known as nominal or original value, is the face value of a share as stated in the corporate charter. No-Par-Value shares do not have a redeemable price, rather prices are determined by the amount that investors are willing to pay for the share on the open market. Sent on-chain and immutable. | TRUE |
| Company consent | Indicates whether the issuer must give their explicit consent before shares can be transferred to another investor. Sent on-chain and immutable. | FALSE |
| Mixed record keeping | Mixed record keeping can refer to a setup where share tokens can be both held in collective and individual entries or are issued as both paper and electronic certificates. Sent on-chain and immutable. | FALSE |
ℹ️ You will receive a token ID back from us via the API. Use this ID to later request opt-ins and trigger token transfers. The token ID you will get back is an internal ID. You must use it to trigger other token-related API functions. It is NOT the blockchain address of the token, which follows a different format (0xABC123...). The blockchain address is not required, except to look for token operations on chain explorers such as Polygonscan.com.
{
"data": "ef86ea3e-f46f-4274-aad8-e83b1a241360",
"errorMessageCodes": null
}You can retrieve the details of any tokenized asset. They include the data points listed above, as well as all past transfers, open opt-in requests, etc.
# UAT BASE_URL: https://uat.vault.nyala.de
# Production BASE_URL: https://vault.nyala.de
# The {institutionId} is 8c8f78bc-78e0-47a7-b4e0-a793343175f0
# The {tokenizedAssetId} is ef86ea3e-f46f-4274-aad8-e83b1a241360
curl -X GET {{BASE_URL}}/api/Tokenization/{institutionId}/tokenized-assets/{tokenizedAssetId} \
-H "X-API-KEY: YOUR_API_KEY" \
-H "Content-Type: application/json"| Parameter | Description | Expected Values |
|---|---|---|
| Tokenized asset ID | The ID of the tokenized asset returned to you at token creation. |
{
"errorMessageCodes": null,
"data": {
"id": "ef86ea3e-f46f-4274-aad8-e83b1a241360",
"name": "TK-United States of America",
"unitName": "TK6976",
"isin": "DE976",
"totalSupply": 1000.0,
"decimals": 0,
"blockchain": 14,
"issuerAddress": "0xFAd49EDeeE6F882e273DA477D81708338D42E666",
"distributionAddress": "0x5456aB5F167DFBA39ac923f626e842b47cc8bb6b",
"status": {
"reviewDecision": 1,
"reviewedAt": "2026-02-16T00:32:06Z",
"paused": true
},
"compliance": {
"enableFreeze": true,
"enableClawback": true,
"isRegulatedSecurity": true
},
"financials": {
"price": "100",
"nominalAmountPerToken": "100",
"duration": "2035-01-01",
"interestPaymentPeriod": 3
}
}
}