Skip to content
Last updated

The first step is to create a new project. A project can contain one or multiple tokens. The project object contains a few datapoints that will be common to all tokenized assets contained under it.

Please note that you must include the ID of your institution in the header of your requests.

POST new project: /api/Project/{institutionId}

Request Example:

# UAT BASE_URL: https://uat.vault.nyala.de
# Production BASE_URL: https://vault.nyala.de

# The {institution-id} is 8c8f78bc-78e0-47a7-b4e0-a793343175f0

curl -X POST {{BASE_URL}}/api/Project/8c8f78bc-78e0-47a7-b4e0-a793343175f0 \
-H "X-API-KEY: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
  "name": "{your-project-name}",
  "institutionId": "8c8f78bc-78e0-47a7-b4e0-a793343175f0",
  "startOfSubscription": "2024-04-16",
  "endOfSubscription": "2028-04-16",
  "targetIssuanceDate": "2026-04-16",
  "terminationRights": "no",
  "issueSize": "100000",
  "currency": "EUR",
  "entryType": "Individual",
  "tokenType": "Bond",
  "projectPassphrase": "{your-secure-passphrase}",
  "blockchain": "Polygon"
}'

The ID of your newly created project will be returned in the response. Use it for subsequent calls to create tokens.

ParameterDescriptionExample Values
Institution IDThe UID of your institution."cdae5c01-a629-4362-be56-52101ec22a49"
NameThe name of your new project."Tech Company AG"
Total issue sizeThe currency amount that you aim to raise for this project. Please send a number in string format without dots, or commas or currency symbol."1000000"
Token typeThe asset class that will be created. “Bond” or “Share” are currently supported."Bond"
Start of subscriptionOptional: Planned start of the period during which investors can subscribe to the bond during a primary issuance ("fundraising period")."2026-01-31"
End of subscriptionOptional: Planned start of the period during which investors can subscribe to the bond during a primary issuance ("fundraising period"). Can be left empty if there is no end."2026-01-31"
Target issuance dateOptional: Start of the bond's interest bearing period."2026-01-10"
Due date of paymentsOptional: dates when coupon payments happen in the format of dd/mm/yyyy seperated by semicolons, e.g. "08/12/2024;08/12/2025". Indicative only and does not have influence on other calculations. Can be left empty."01/12/2026;01/12/2028"
CurrencyThe currency in which the tokenized security shall be issued. We currently support EUR for Euros and CHF for Swiss Francs."EUR"
Termination rightsRequired for bonds only: can the investor end their investment on their end?"False"
Entry typeIndividual entry: tokenized securities are held in a separate individual account under the investor's name
Collective entry: securities owned by many different investors are held in a joint account under the custody of a third party (limits individual access).
Visible on-chain and immutable.
"Individual"
BlockchainChoose on which blockchain the token is to be issued. Currently we support Polygon, Peaq and Stellar."Polygon"
BlockchainThe passphrase provides a layer of security when triggering blockchain operations. It is required for further token operations. It must be min 10 character and contain at least one uppercase and one lowercase letter. You must safeguard it and not lose it, although it can be recovered by contacting your NYALA Technical Sales Engineer (TSE)."Passphraseprojectxyz"

Response Example:

{
  "errorMessageCodes": null,
  "data": "165be3bd-ac69-43d5-8357-63df84330ab2"
}

During the project creation, you will be requested to set a passphrase for this project. This passphrase will be required for further token operations related to this project.

ℹ️ If you lose the project passphrase, or if you send the wrong passphrase more than 3 times (which locks the issuer wallet seed), you must ask your Technical Sales Engineer to unlock it.

After successfully creating a project, you can update the project parameters at any time using the same endpoint.

PUT update project /api/Project/{institutionId}

Request Example:

# UAT BASE_URL: https://uat.vault.nyala.de
# Production BASE_URL: https://vault.nyala.de

# The {institutionId} is 8c8f78bc-78e0-47a7-b4e0-a793343175f0
# The {projectId} is 40ff9e56-cf2a-499a-9fe7-706e0e136eb7

curl -X PUT {{BASE_URL}}/api/Project/{institutionId} \
-H "X-API-KEY: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
  "id": "40ff9e56-cf2a-499a-9fe7-706e0e136eb7",
  "name": "Cayman Islands-750",
  "startOfSubscription": "2024-04-16",
  "endOfSubscription": "2028-04-16",
  "targetIssuanceDate": "2026-04-16",
  "dueDateOfPayments": null,
  "terminationRights": "no",
  "issueSize": "200000",
  "entryType": 1,
  "status": 0,
  "blockchain": "Polygon"
}'
ParameterDescription
IDThe ID of the specific project you want to edit.
institutionIDYour institutionID after having been onboarded on NYALA. InstitutionId is set up in your Postman collection.

You can also retrieve a list of projects using your institution's ID.

GET projects by institution ID /api/Project/{institutionId}

Request Example:

# UAT BASE_URL: https://uat.vault.nyala.de
# Production BASE_URL: https://vault.nyala.de

# The {institutionIid} is 8c8f78bc-78e0-47a7-b4e0-a793343175f0

curl -X GET {{BASE_URL}}/api/Project/{institutionId} \
-H "X-API-KEY: YOUR_API_KEY" \
-H "Content-Type: application/json"

Response Example:

{
    "errorMessageCodes": null,
    "data": [
        {
            "id": "40ff9e56-cf2a-499a-9fe7-706e0e136eb7",
            "name": "Cayman Islands-750",
            "institutionId": "8c8f78bc-78e0-47a7-b4e0-a793343175f0",
            "userId": "9fb3ccc5-a822-4af6-b218-08dd2b1c296f",
            "creatorFirstName": "Integration",
            "creatorLastName": "User",
            "startOfSubscription": "2024-04-16",
            "endOfSubscription": "2028-04-16",
            "targetIssuanceDate": "2026-04-16",
            "dueDateOfPayments": null,
            "terminationRights": "no",
            "issueSize": "100000",
            "currency": 1001,
            "entryType": 1,
            "tokenType": 0,
            "status": 1,
            "created": "2026-02-16 00:01",
            "registryExtract": false,
            "errorMessage": null,
            "blockchain": 14,
            "currentPassphrase": null,
            "projectPassphrase": null,
            "seedCreated": false
        }
    ]
}