{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-full-integration/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"type":"markdown"},"seo":{"title":"➡ Distribute Tokens","llmstxt":{"hide":true}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"-distribute-tokens","__idx":0},"children":["➡ Distribute Tokens"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This step can only happen after you have started ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/standard-integration/request-opt-in"},"children":["sending investor opt-ins for specific tokens."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Depending on your projects’ specificities, there are different endpoints that you can trigger."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"scenario-1","__idx":1},"children":["Scenario 1:"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["After a set fundraising period, ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["all tokens are distributed at once"]},". This is the standard scenario for crowdfunding projects for example. In this scenario, investments are pooled into one account, and the tokens are distributed to all investors in one go at the cut-off date, typically after a set waiting period."," ","In this case, you want to call POST Transfer asset class afd."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["POST Transfer asset class approved for delivery (afd)"]},": ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/api/Tokenization/{institutionId}/tokenized-assets/{tokenizedAssetId}/transfer-asset-class-afd"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Request Example"]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"#### Request Example\n```bash\n# UAT BASE_URL: https://uat.vault.nyala.de\n# Production BASE_URL: https://vault.nyala.de\n\n# The {institutionId} is 8c8f78bc-78e0-47a7-b4e0-a793343175f0\n# The {tokenizedAssetId} is ef86ea3e-f46f-4274-aad8-e83b1a241360\n \ncurl -X PUT {{BASE_URL}}/api/Tokenization/{institutionId}/tokenized-assets/{tokenizedAssetId}/transfer-asset-class-afd \\\n-H \"X-API-KEY: YOUR_API_KEY\" \\\n-H \"Content-Type: application/json\" \\\n-d '{\n    \"passphrase\": \"{your-secure-passphrase}\"\n}'\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter Name"},"children":["Parameter Name"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Expected Values"},"children":["Expected Values"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["institutionId"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Your institutionID after having been onboarded on NYALA. InstitutionId is setup in Postman collection."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["UUID of your institution"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["tokenized-asset-id"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The token Internal ID generated upon token creation."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["UUID of the tokenized asset"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["credentials"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["This passphrase is set during the initial project creation."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[]}]}]}]}]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["ℹ️  ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Important Note"]},": The customer's opt-in parameter ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Approved for Delivery"]}," must be set to True to receive tokens via this endpoint. If not enabled, you must first ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/standard-integration/request-opt-in"},"children":["Update Asset Opt-In"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Approved for Delivery"]}," status. Wallets that have already received tokens via this endpoint cannot receive more through a second trigger after the initial transfer is confirmed on-chain."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"scenario-2","__idx":2},"children":["Scenario 2:"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Continuous fundraising and distributions. In this scenario, tokens are distributed to investors on an ongoing basis, as soon as their investment is confirmed (e.g., upon receipt of funds). For investors with recurring orders, you can use this endpoint to trigger distributions for new orders as well.  You should call the POST Transfer asset class endpoint."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["POST Transfer asset class"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/api/Tokenization/{institutionId}/tokenized-assets/{tokenizedAssetId}/transfer-asset-class"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Request Example"]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"# UAT BASE_URL: https://uat.vault.nyala.de\n# Production BASE_URL: https://vault.nyala.de\n\n# The {institutionId} is 8c8f78bc-78e0-47a7-b4e0-a793343175f0\n# The {tokenizedAssetId} is ef86ea3e-f46f-4274-aad8-e83b1a241360\n\ncurl -X POST {{BASE_URL}}/api/Tokenization/{institutionId}/tokenized-assets/{tokenizedAssetId}/transfer-asset-class \\\n-H \"X-API-KEY: YOUR_API_KEY\" \\\n-H \"Content-Type: application/json\" \\\n-d '{\n  \"transfers\": [\n    {\n      \"retailWalletId\": \"390ab76f-a4f9-451b-802d-f865076630be\",\n      \"amount\": 15,\n      \"message\": \"Investor Distribution\"\n    }\n  ],\n  \"credentials\": {\n    \"passphrase\": \"{your-secure-passphrase}\"\n  }\n}'\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter Name"},"children":["Parameter Name"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Expected Value"},"children":["Expected Value"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["institutionId"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Your institutionID after having been onboarded on NYALA. InstitutionId is setup in Postman collection."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["UUID of your institution"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["tokenized-asset-id"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The token Internal ID (traceID in NYALA system)."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["UUID of the tokenized asset"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["retailwalletID"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The retail wallet ID where tokens shall be sent. There is an endpoint to retrieve the retailwalletID via ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/standard-integration/initiate-wallet-request"},"children":[{"$$mdtype":"Tag","name":"em","attributes":{},"children":["GET Retail Wallet Details"]}]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["UUID of the retail wallet"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["amount"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The number of tokens to be transferred."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["100, 500, 1000"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["message"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Transaction memo. Can be left empty."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["\"Investment allocation\", \"Token distribution Q1\""]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["credentials"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["This passphrase is set during the initial project creation."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Response Example"]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n    \"errorMessageCodes\": null,\n    \"data\": [\n        {\n            \"id\": \"c187bc8b-ce26-412b-8095-75c665d2fe35\",\n            \"walletId\": \"390ab76f-a4f9-451b-802d-f865076630be\",\n            \"result\": \"Initiated\",\n            \"optInStatus\": 0,\n            \"assetClassOptInStatus\": 7\n        }\n    ]\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Distributions are processed asynchronously and must be validated on the blockchain, which may take several minutes."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To monitor the transaction, send a request via GET Project transfers."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["GET Project transfers"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/api/project/{institutionId}/{projectId}/transfers"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Request Example"]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"# UAT BASE_URL: https://uat.vault.nyala.de\n# Production BASE_URL: https://vault.nyala.de\n\n# {institutionId} = 8c8f78bc-78e0-47a7-b4e0-a793343175f0\n# {projectId} = e30e0230-260c-4d78-b7b4-91b4bef263c3\n\ncurl -X GET https://uat.vault.nyala.de/api/project/8c8f78bc-78e0-47a7-b4e0-a793343175f0/e30e0230-260c-4d78-b7b4-91b4bef263c3/transfers \\\n-H \"X-API-KEY: YOUR_API_KEY\" \\\n-H \"Accept: application/json\"\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Response Example"]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"errorMessageCodes\": null,\n  \"data\": [\n    {\n      \"id\": \"3b4032be-303a-4396-8eec-3e4286ef9072\",\n      \"receiverRetailWalletId\": \"390ab76f-a4f9-451b-802d-f865076630be\",\n      \"status\": 4,\n      \"created\": \"2026-02-16T14:04:17Z\",\n      \"txId\": \"0xaec8fdd0997a558ca031a721b3873843b6706a0db87d8a0386a5add8bca1aada\",\n      \"fromAddress\": \"0xFAd49EDeeE6F882e273DA477D81708338D42E666\",\n      \"toAddress\": \"0xbE039DF5378133b2366C746c79eF0Ec2292FAd68\",\n      \"amount\": 15.0,\n      \"tokenizedAsset\": {\n        \"id\": \"ef86ea3e-f46f-4274-aad8-e83b1a241360\",\n        \"unitName\": \"TK6976\",\n        \"assetId\": \"0xb665e3470C20e83a8d39781FFcf892E9066040e0\"\n        ...\n      }\n    }\n  ]\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To verify whether a token transfer to a customer's wallet was successful, track the following response parameters: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["receiverRetailWalletId"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["status"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["txId"]},", and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["amount"]},"."]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If status is Failed (6), re-trigger the token transfer endpoint to retry the transaction."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If status is Sent (4) and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["txId "]},"is present with the correct ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["amount"]},", do not re-trigger the transfer. ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Duplicate transfers will require a token clawback during reconciliation"]},"."]}]}]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter Name"},"children":["Parameter Name"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Expected Value"},"children":["Expected Value"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["id"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Internal transfer ID assigned by the NYALA system."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["String (UUID)"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["receiverRetailWalletId"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The customer's retail wallet ID, identical to the ID used to trigger the distribution."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["String (UUID)"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["receiverInstitutionId"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Your institution ID assigned by the NYALA system."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["String (UUID)"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["status"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Current status of the transfer."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["WalletTransactionStatus (int32):",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]}," ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Approved"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["(3)"]},": Transfer is queued and pending on-chain execution. ",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]}," ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Sent"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["(4)"]},": Transfer has been executed on-chain. ",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]}," ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Failed"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["(6)"]},": On-chain execution failed; your system must re-trigger the transfer."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["created"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Timestamp of when the transfer was created."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["String (ISO 8601 date-time)"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["txId"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The transaction hash on the blockchain. Use this to look up the transaction on a blockchain explorer."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["String or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["null"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["fromAddress"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The distributor's wallet address for the token."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["String or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["null"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["toAddress"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The customer's wallet public address."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["String or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["null"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["amount"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The number of tokens transferred."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Number"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["tokenizedAsset"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["An object containing details about the token being transferred, such as its internal ID and smart contract address."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Object"]}]}]}]}]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["ℹ️ If you have triggered a transfer to the wrong wallet, do not worry! Since these tokens are regulated securities, our registrar is always capable of clawing them back and correcting the transfer. So, if tokens need to be taken back for any other (legal) reason after a transfer, please notify your CSM."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"errors","__idx":3},"children":["Errors"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Case"},"children":["Case"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Error code"},"children":["Error code"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Example response"},"children":["Example response"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["No opt-in found. You must first opt-in (whitelist) the specified customer wallets before a distribution can happen"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["200"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"id\": \"8cdc36c3-58e6-4e5a-b314-706f676d76e5\", \"walletId\": \"590135c3-ca31-4e2a-bd22-1e260445e03f\", \"result\": \"Optin not found\", \"optInStatus\": -1, \"assetClassOptInStatus\": 0"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Invalid project passphrase"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["400"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"errorMessageCodes\": [\"ProjectPassphraseInvalid\"]"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Project not found based on tokenized asset's project id"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["404"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"errorMessageCodes\":  [\"ProjectNotFound\"]"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["No valid opt-in for the asset"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["400"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"errorMessageCodes\": [\"NoValidOptinReadyForTransfer\"]"]}]}]}]}]}]}]},"headings":[{"value":"➡ Distribute Tokens","id":"-distribute-tokens","depth":1},{"value":"Scenario 1:","id":"scenario-1","depth":3},{"value":"Scenario 2:","id":"scenario-2","depth":3},{"value":"Errors","id":"errors","depth":3}],"frontmatter":{"seo":{"title":"➡ Distribute Tokens"}},"lastModified":"2026-04-29T16:49:15.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/full-integration/distribute-tokens","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}