GalaChain Token Contract API

The GalaChain asset-channel token contract, exposed over REST by the GalaChain Gateway. Covers fungible and non-fungible token classes, balances, allowances, minting, burning, locking, transfers, NFT collections, on-chain token swaps and cross-chain bridge-out requests. Every write is a signed DTO carrying a uniqueKey.

OpenAPI Specification

gala-games-galachain-asset-token-contract-openapi.json Raw ↑
{"info":{"description":"An entry point to the GalaChain network.\n\n\u003ca href=\"/docs\"\u003edocs\u003c/a\u003e / `asset/token-contract`","title":"GalaChain Gateway","version":"3.0.2"},"openapi":"3.0.0","paths":{"/api/asset/token-contract/BatchFillTokenSwap":{"post":{"description":" Transaction updates the chain (submit). Allowed roles: SUBMIT.","operationId":"asset_token-contract_BatchFillTokenSwap","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"description":"Fill multiple swaps in a single transaction, potentially swaps offered by many different users.","properties":{"dtoExpiresAt":{"description":"Unix epoch timestamp in milliseconds (ms) when the DTO expires. If this time is before the current time, the DTO is not valid.","type":"number"},"dtoOperation":{"description":"Full operation identifier that is called on chain with this DTO. The format is `channelId_chaincodeId_methodName`. It is required for multisig DTOs, and optional for single signed DTOs. ","minLength":1,"type":"string"},"multisig":{"description":"List of signatures for this DTO if there are multiple signers. If there are multiple signatures, 'signerAddress' is required, and it is not allowed to provide 'signature' or 'signerPublicKey' fields, and the signing scheme must be ETH.","items":{},"minItems":2,"type":"array"},"prefix":{"description":"Prefix for Metamask transaction signatures. Necessary to format payloads correctly to recover publicKey from web3 signatures.","minLength":1,"type":"string"},"signature":{"description":"Signature of the DTO signed with caller's private key to be verified with user's public key saved on chain. The 'signature' field is optional for DTO, but is required for a transaction to be executed on chain. \nPlease consult [GalaChain SDK documentation](https://github.com/GalaChain/sdk/blob/main/docs/authorization.md#signature-based-authorization) on how to create signatures.","minLength":1,"type":"string"},"signerAddress":{"description":"Address of the user who signed the DTO. Typically Ethereum address, or user alias.","minLength":1,"type":"string"},"signerPublicKey":{"description":"Public key of the user who signed the DTO.","minLength":1,"type":"string"},"swapDtos":{"description":"Array of FillTokenSwapDto objects each representing a swap to fulfill","items":{"description":"Defines a swap fill object, i.e. a response of another user for a swap request.","properties":{"dtoExpiresAt":{"description":"Unix epoch timestamp in milliseconds (ms) when the DTO expires. If this time is before the current time, the DTO is not valid.","type":"number"},"dtoOperation":{"description":"Full operation identifier that is called on chain with this DTO. The format is `channelId_chaincodeId_methodName`. It is required for multisig DTOs, and optional for single signed DTOs. ","minLength":1,"type":"string"},"expectedTokenSwap":{"description":"Expected token swap trade to be validated before filling the swap. Defines an expected token swap trade, i.e. offered and wanted tokens.","properties":{"dtoExpiresAt":{"description":"Unix epoch timestamp in milliseconds (ms) when the DTO expires. If this time is before the current time, the DTO is not valid.","type":"number"},"dtoOperation":{"description":"Full operation identifier that is called on chain with this DTO. The format is `channelId_chaincodeId_methodName`. It is required for multisig DTOs, and optional for single signed DTOs. ","minLength":1,"type":"string"},"multisig":{"description":"List of signatures for this DTO if there are multiple signers. If there are multiple signatures, 'signerAddress' is required, and it is not allowed to provide 'signature' or 'signerPublicKey' fields, and the signing scheme must be ETH.","items":{},"minItems":2,"type":"array"},"offered":{"description":"A list of offered token instances. The order of this array must match the order of the TokenSwapRequest stored on chain.","items":{"properties":{"dtoExpiresAt":{"description":"Unix epoch timestamp in milliseconds (ms) when the DTO expires. If this time is before the current time, the DTO is not valid.","type":"number"},"dtoOperation":{"description":"Full operation identifier that is called on chain with this DTO. The format is `channelId_chaincodeId_methodName`. It is required for multisig DTOs, and optional for single signed DTOs. ","minLength":1,"type":"string"},"multisig":{"description":"List of signatures for this DTO if there are multiple signers. If there are multiple signatures, 'signerAddress' is required, and it is not allowed to provide 'signature' or 'signerPublicKey' fields, and the signing scheme must be ETH.","items":{},"minItems":2,"type":"array"},"prefix":{"description":"Prefix for Metamask transaction signatures. Necessary to format payloads correctly to recover publicKey from web3 signatures.","minLength":1,"type":"string"},"quantity":{"description":"Number provided as a string.","minLength":1,"type":"string"},"signature":{"description":"Signature of the DTO signed with caller's private key to be verified with user's public key saved on chain. The 'signature' field is optional for DTO, but is required for a transaction to be executed on chain. \nPlease consult [GalaChain SDK documentation](https://github.com/GalaChain/sdk/blob/main/docs/authorization.md#signature-based-authorization) on how to create signatures.","minLength":1,"type":"string"},"signerAddress":{"description":"Address of the user who signed the DTO. Typically Ethereum address, or user alias.","minLength":1,"type":"string"},"signerPublicKey":{"description":"Public key of the user who signed the DTO.","minLength":1,"type":"string"},"tokenInstance":{"description":"Object representing the chain identifier of token instance.","minLength":1,"properties":{"additionalKey":{"not":{"type":"null"}},"category":{"minLength":1,"type":"string"},"collection":{"minLength":1,"type":"string"},"dtoExpiresAt":{"description":"Unix epoch timestamp in milliseconds (ms) when the DTO expires. If this time is before the current time, the DTO is not valid.","type":"number"},"dtoOperation":{"description":"Full operation identifier that is called on chain with this DTO. The format is `channelId_chaincodeId_methodName`. It is required for multisig DTOs, and optional for single signed DTOs. ","minLength":1,"type":"string"},"instance":{"description":"Number provided as a string.","minLength":1,"type":"string"},"multisig":{"description":"List of signatures for this DTO if there are multiple signers. If there are multiple signatures, 'signerAddress' is required, and it is not allowed to provide 'signature' or 'signerPublicKey' fields, and the signing scheme must be ETH.","items":{},"minItems":2,"type":"array"},"prefix":{"description":"Prefix for Metamask transaction signatures. Necessary to format payloads correctly to recover publicKey from web3 signatures.","minLength":1,"type":"string"},"signature":{"description":"Signature of the DTO signed with caller's private key to be verified with user's public key saved on chain. The 'signature' field is optional for DTO, but is required for a transaction to be executed on chain. \nPlease consult [GalaChain SDK documentation](https://github.com/GalaChain/sdk/blob/main/docs/authorization.md#signature-based-authorization) on how to create signatures.","minLength":1,"type":"string"},"signerAddress":{"description":"Address of the user who signed the DTO. Typically Ethereum address, or user alias.","minLength":1,"type":"string"},"signerPublicKey":{"description":"Public key of the user who signed the DTO.","minLength":1,"type":"string"},"type":{"minLength":1,"type":"string"},"uniqueKey":{"description":"Unique key of the DTO. It is used to prevent double execution of the same transaction on chain. The key is saved on chain and checked before execution. If a DTO with already saved key is used in transaction, the transaction will fail with UniqueTransactionConflict error, which is mapped to HTTP 409 Conflict error. In case of the error, no changes are saved to chain state.\nThe key is generated by the caller and should be unique for each DTO. You can use `nanoid` library, UUID scheme, or any tool to generate unique string keys.","minLength":1,"type":"string"}},"required":["collection","category","type","additionalKey","instance"],"type":"object"},"tokenMetadata":{"description":"The TokenClass metadata corresponding to the TokenBalance on this DTO.","type":"object"},"uniqueKey":{"description":"Unique key of the DTO. It is used to prevent double execution of the same transaction on chain. The key is saved on chain and checked before execution. If a DTO with already saved key is used in transaction, the transaction will fail with UniqueTransactionConflict error, which is mapped to HTTP 409 Conflict error. In case of the error, no changes are saved to chain state.\nThe key is generated by the caller and should be unique for each DTO. You can use `nanoid` library, UUID scheme, or any tool to generate unique string keys.","minLength":1,"type":"string"}},"required":["tokenInstance","quantity"],"type":"object"},"minItems":1,"type":"array","uniqueItems":true},"prefix":{"description":"Prefix for Metamask transaction signatures. Necessary to format payloads correctly to recover publicKey from web3 signatures.","minLength":1,"type":"string"},"signature":{"description":"Signature of the DTO signed with caller's private key to be verified with user's public key saved on chain. The 'signature' field is optional for DTO, but is required for a transaction to be executed on chain. \nPlease consult [GalaChain SDK documentation](https://github.com/GalaChain/sdk/blob/main/docs/authorization.md#signature-based-authorization) on how to create signatures.","minLength":1,"type":"string"},"signerAddress":{"description":"Address of the user who signed the DTO. Typically Ethereum address, or user alias.","minLength":1,"type":"string"},"signerPublicKey":{"description":"Public key of the user who signed the DTO.","minLength":1,"type":"string"},"uniqueKey":{"description":"Unique key of the DTO. It is used to prevent double execution of the same transaction on chain. The key is saved on chain and checked before execution. If a DTO with already saved key is used in transaction, the transaction will fail with UniqueTransactionConflict error, which is mapped to HTTP 409 Conflict error. In case of the error, no changes are saved to chain state.\nThe key is generated by the caller and should be unique for each DTO. You can use `nanoid` library, UUID scheme, or any tool to generate unique string keys.","minLength":1,"type":"string"},"wanted":{"description":"A list of wanted token instances. The order of this array must match the order of the TokenSwapRequest stored on chain.","items":{"properties":{"dtoExpiresAt":{"description":"Unix epoch timestamp in milliseconds (ms) when the DTO expires. If this time is before the current time, the DTO is not valid.","type":"number"},"dtoOperation":{"description":"Full operation identifier that is called on chain with this DTO. The format is `channelId_chaincodeId_methodName`. It is required for multisig DTOs, and optional for single signed DTOs. ","minLength":1,"type":"string"},"multisig":{"description":"List of signatures for this DTO if there are multiple signers. If there are multiple signatures, 'signerAddress' is required, and it is not allowed to provide 'signature' or 'signerPublicKey' fields, and the signing scheme must be ETH.","items":{},"minItems":2,"type":"array"},"prefix":{"description":"Prefix for Metamask transaction signatures. Necessary to format payloads correctly to recover publicKey from web3 signatures.","minLength":1,"type":"string"},"quantity":{"description":"Number provided as a string.","minLength":1,"type":"string"},"signature":{"description":"Signature of the DTO signed with caller's private key to be verified with user's public key saved on chain. The 'signature' field is optional for DTO, but is required for a transaction to be executed on chain. \nPlease consult [GalaChain SDK documentation](https://github.com/GalaChain/sdk/blob/main/docs/authorization.md#signature-based-authorization) on how to create signatures.","minLength":1,"type":"string"},"signerAddress":{"description":"Address of the user who signed the DTO. Typically Ethereum address, or user alias.","minLength":1,"type":"string"},"signerPublicKey":{"description":"Public key of the user who signed the DTO.","minLength":1,"type":"string"},"tokenInstance":{"description":"Object representing the chain identifier of token instance.","minLength":1,"properties":{"additionalKey":{"not":{"type":"null"}},"category":{"minLength":1,"type":"string"},"collection":{"minLength":1,"type":"string"},"dtoExpiresAt":{"description":"Unix epoch timestamp in milliseconds (ms) when the DTO expires. If this time is before the current time, the DTO is not valid.","type":"number"},"dtoOperation":{"description":"Full operation identifier that is called on chain with this DTO. The format is `channelId_chaincodeId_methodName`. It is required for multisig DTOs, and optional for single signed DTOs. ","minLength":1,"type":"string"},"instance":{"description":"Number provided as a string.","minLength":1,"type":"string"},"multisig":{"description":"List of signatures for this DTO if there are multiple signers. If there are multiple signatures, 'signerAddress' is required, and it is not allowed to provide 'signature' or 'signerPublicKey' fields, and the signing scheme must be ETH.","items":{},"minItems":2,"type":"array"},"prefix":{"description":"Prefix for Metamask transaction signatures. Necessary to format payloads correctly to recover publicKey from web3 signatures.","minLength":1,"type":"string"},"signature":{"description":"Signature of the DTO signed with caller's private key to be verified with user's public key saved on chain. The 'signature' field is optional for DTO, but is required for a transaction to be executed on chain. \nPlease consult [GalaChain SDK documentation](https://github.com/GalaChain/sdk/blob/main/docs/authorization.md#signature-based-authorization) on how to create signatures.","minLength":1,"type":"string"},"signerAddress":{"description":"Address of the user who signed the DTO. Typically Ethereum address, or user alias.","minLength":1,"type":"string"},"signerPublicKey":{"description":"Public key of the user who signed the DTO.","minLength":1,"type":"string"},"type":{"minLength":1,"type":"string"},"uniqueKey":{"description":"Unique key of the DTO. It is used to prevent double execution of the same transaction on chain. The key is saved on chain and checked before execution. If a DTO with already saved key is used in transaction, the transaction will fail with UniqueTransactionConflict error, which is mapped to HTTP 409 Conflict error. In case of the error, no changes are saved to chain state.\nThe key is generated by the caller and should be unique for each DTO. You can use `nanoid` library, UUID scheme, or any tool to generate unique string keys.","minLength":1,"type":"string"}},"required":["collection","category","type","additionalKey","instance"],"type":"object"},"tokenMetadata":{"description":"The TokenClass metadata corresponding to the TokenBalance on this DTO.","type":"object"},"uniqueKey":{"description":"Unique key of the DTO. It is used to prevent double execution of the same transaction on chain. The key is saved on chain and checked before execution. If a DTO with already saved key is used in transaction, the transaction will fail with UniqueTransactionConflict error, which is mapped to HTTP 409 Conflict error. In case of the error, no changes are saved to chain state.\nThe key is generated by the caller and should be unique for each DTO. You can use `nanoid` library, UUID scheme, or any tool to generate unique string keys.","minLength":1,"type":"string"}},"required":["tokenInstance","quantity"],"type":"object"},"minItems":1,"type":"array","uniqueItems":true}},"required":["offered","wanted"],"type":"object"},"filledBy":{"description":"User who fills the swap, an owner of tokens wanted in swap. Optional field, by default set to chaincode calling user.","type":"string"},"multisig":{"description":"List of signatures for this DTO if there are multiple signers. If there are multiple signatures, 'signerAddress' is required, and it is not allowed to provide 'signature' or 'signerPublicKey' fields, and the signing scheme must be ETH.","items":{},"minItems":2,"type":"array"},"prefix":{"description":"Prefix for Metamask transaction signatures. Necessary to format payloads correctly to recover publicKey from web3 signatures.","minLength":1,"type":"string"},"signature":{"description":"Signature of the DTO signed with caller's private key to be verified with user's public key saved on chain. The 'signature' field is optional for DTO, but is required for a transaction to be executed on chain. \nPlease consult [GalaChain SDK documentation](https://github.com/GalaChain/sdk/blob/main/docs/authorization.md#signature-based-authorization) on how to create signatures.","minLength":1,"type":"string"},"signerAddress":{"description":"Address of the user who signed the DTO. Typically Ethereum address, or user alias.","minLength":1,"type":"string"},"signerPublicKey":{"description":"Public key of the user who signed the DTO.","minLength":1,"type":"string"},"swapRequestId":{"description":"Swap request ID to be filled","minLength":1,"type":"string"},"uniqueKey":{"description":"Unique key of the DTO. It is used to prevent double execution of the same transaction on chain. The key is saved on chain and checked before execution. If a DTO with already saved key is used in transaction, the transaction will fail with UniqueTransactionConflict error, which is mapped to HTTP 409 Conflict error. In case of the error, no changes are saved to chain state.\nThe key is generated by the caller and should be unique for each DTO. You can use `nanoid` library, UUID scheme, or any tool to generate unique string keys.","minLength":1,"type":"string"},"uses":{"description":"How many uses are filled with this swap fill. In most cases it will be 1, and this is the default value for it. Number provided as a string.","type":"string"}},"required":["swapRequestId"],"type":"object"},"maxItems":1000,"minItems":1,"type":"array"},"uniqueKey":{"description":"Unique key of the DTO. It is used to prevent double execution of the same transaction on chain. The key is saved on chain and checked before execution. If a DTO with already saved key is used in transaction, the transaction will fail with UniqueTransactionConflict error, which is mapped to HTTP 409 Conflict error. In case of the error, no changes are saved to chain state.\nThe key is generated by the caller and should be unique for each DTO. You can use `nanoid` library, UUID scheme, or any tool to generate unique string keys.","minLength":1,"type":"string"}},"required":["swapDtos"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"Data":{"items":{"properties":{"created":{"description":"Unix epoch timestamp in milliseconds (ms) when this swap fill was recorded.","exclusiveMinimum":0,"type":"number"},"filledBy":{"description":"Allowed value is string following the format of 'client|\u003cuser-id\u003e', or 'eth|\u003cchecksumed-eth-addr\u003e', or valid system-level username.","type":"string"},"swapRequestId":{"minLength":1,"type":"string"},"uses":{"description":"Number provided as a string.","type":"string"}},"required":["swapRequestId","filledBy","created","uses"],"type":"object"},"type":"array"},"Message":{"type":"string"},"Status":{"description":"Indicates Error (0) or Success (1)","enum":[0,1]}},"required":["Status"],"type":"object"}}},"description":"","headers":{"x-transaction-id":{"description":"Transaction ID of submitted transaction on the chain"}}}},"tags":["Methods"]}},"/api/asset/token-contract/BatchMintToken":{"post":{"description":" Transaction updates the chain (submit). Allowed roles: SUBMIT.","operationId":"asset_token-contract_BatchMintToken","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"description":"Describes an action to transferToken a token. For NFTs you can mint up to 1000 tokens.","properties":{"dtoExpiresAt":{"description":"Unix epoch timestamp in milliseconds (ms) when the DTO expires. If this time is before the current time, the DTO is not valid.","type":"number"},"dtoOperation":{"description":"Full operation identifier that is called on chain with this DTO. The format is `channelId_chaincodeId_methodName`. It is required for multisig DTOs, and optional for single signed DTOs. ","minLength":1,"type":"string"},"mintDtos":{"description":"DTOs of tokens to mint.","items":{"description":"Describes an action to mint a token. For NFTs you can mint up to 1000 tokens.","properties":{"dtoExpiresAt":{"description":"Unix epoch timestamp in milliseconds (ms) when the DTO expires. If this time is before the current time, the DTO is not valid.","type":"number"},"dtoOperation":{"description":"Full operation identifier that is called on chain with this DTO. The format is `channelId_chaincodeId_methodName`. It is required for multisig DTOs, and optional for single signed DTOs. ","minLength":1,"type":"string"},"multisig":{"description":"List of signatures for this DTO if there are multiple signers. If there are multiple signatures, 'signerAddress' is required, and it is not allowed to provide 'signature' or 'signerPublicKey' fields, and the signing scheme must be ETH.","items":{},"minItems":2,"type":"array"},"owner":{"description":"The owner of minted tokens. If the value is missing, chaincode caller is used.","type":"string"},"prefix":{"description":"Prefix for Metamask transaction signatures. Necessary to format payloads correctly to recover publicKey from web3 signatures.","minLength":1,"type":"string"},"quantity":{"description":"How many units of Fungible/NonFungible Token will be minted. Number provided as a string.","minLength":1,"type":"string"},"signature":{"description":"Signature of the DTO signed with caller's private key to be verified with user's public key saved on chain. The 'signature' field is optional for DTO, but is required for a transaction to be executed on chain. \nPlease consult [GalaChain SDK documentation](https://github.com/GalaChain/sdk/blob/main/docs/authorization.md#signature-based-authorization) on how to create signatures.","minLength":1,"type":"string"},"signerAddress":{"description":"Address of the user who signed the DTO. Typically Ethereum address, or user alias.","minLength":1,"type":"string"},"signerPublicKey":{"description":"Public key of the user who signed the DTO.","minLength":1,"type":"string"},"tokenClass":{"description":"Token class of token to be minted. Object representing the chain identifier of token class.","minLength":1,"properties":{"additionalKey":{"not":{"type":"null"}},"category":{"minLength":1,"type":"string"},"collection":{"minLength":1,"type":"string"},"dtoExpiresAt":{"description":"Unix epoch timestamp in milliseconds (ms) when the DTO expires. If this time is before the current time, the DTO is not valid.","type":"number"},"dtoOperation":{"description":"Full operation identifier that is called on chain with this DTO. The format is `channelId_chaincodeId_methodName`. It is required for multisig DTOs, and optional for single signed DTOs. ","minLength":1,"type":"string"},"multisig":{"description":"List of signatures for this DTO if there are multiple signers. If there are multiple signatures, 'signerAddress' is required, and it is not allowed to provide 'signature' or 'signerPublicKey' fields, and the signing scheme must be ETH.","items":{},"minItems":2,"type":"array"},"prefix":{"description":"Prefix for Metamask transaction signatures. Necessary to format payloads correctly to recover publicKey from web3 signatures.","minLength":1,"type":"string"},"signature":{"description":"Signature of the DTO signed with caller's private key to be verified with user's public key saved on chain. The 'signature' field is optional for DTO, but is required for a transaction to be executed on chain. \nPlease consult [GalaChain SDK documentation](https://github.com/GalaChain/sdk/blob/main/docs/authorization.md#signature-based-authorization) on how to create signatures.","minLength":1,"type":"string"},"signerAddress":{"description":"Address of the user who signed the DTO. Typically Ethereum address, or user alias.","minLength":1,"type":"string"},"signerPublicKey":{"description":"Public key of the user who signed the DTO.","minLength":1,"type":"string"},"type":{"minLength":1,"type":"string"},"uniqueKey":{"description":"Unique key of the DTO. It is used to prevent double execution of the same transaction on chain. The key is saved on chain and checked before execution. If a DTO with already saved key is used in transaction, the transaction will fail with UniqueTransactionConflict error, which is mapped to HTTP 409 Conflict error. In case of the error, no changes are saved to chain state.\nThe key is generated by the caller and should be unique for each DTO. You can use `nanoid` library, UUID scheme, or any tool to generate unique string keys.","minLength":1,"type":"string"}},"required":["collection","category","type","additionalKey"],"type":"object"},"uniqueKey":{"description":"Unique key of the DTO. It is used to prevent double execution of the same transaction on chain. The key is saved on chain and checked before execution. If a DTO with already saved key is used in transaction, the transaction will fail with UniqueTransactionConflict error, which is mapped to HTTP 409 Conflict error. In case of the error, no changes are saved to chain state.\nThe key is generated by the caller and should be unique for each DTO. You can use `nanoid` library, UUID scheme, or any tool to generate unique string keys.","minLength":1,"type":"string"}},"required":["tokenClass","quantity"],"type":"object"},"maxItems":1000,"minItems":1,"type":"array"},"multisig":{"description":"List of signatures for this DTO if there are multiple signers. If there are multiple signatures, 'signerAddress' is required, and it is not allowed to provide 'signature' or 'signerPublicKey' fields, and the signing scheme must be ETH.","items":{},"minItems":2,"type":"array"},"prefix":{"description":"Prefix for Metamask transaction signatures. Necessary to format payloads correctly to recover publicKey from web3 signatures.","minLength":1,"type":"string"},"signature":{"description":"Signature of the DTO signed with caller's private key to be verified with user's public key saved on chain. The 'signature' field is optional for DTO, but is required for a transaction to be executed on chain. \nPlease consult [GalaChain SDK documentation](https://github.com/GalaChain/sdk/blob/main/docs/authorization.md#signature-based-authorization) on how to create signatures.","minLength":1,"type":"string"},"signerAddress":{"description":"Address of the user who signed the DTO. Typically Ethereum address, or user alias.","minLength":1,"type":"string"},"signerPublicKey":{"description":"Public key of the user who signed the DTO.","minLength":1,"type":"string"},"uniqueKey":{"description":"Unique key of the DTO. It is used to prevent double execution of the same transaction on chain. The key is saved on chain and checked before execution. If a DTO with already saved key is used in transaction, the transaction will fail with UniqueTransactionConflict error, which is mapped to HTTP 409 Conflict error. In case of the error, no changes are saved to chain state.\nThe key is generated by the caller and should be unique for each DTO. You can use `nanoid` library, UUID scheme, or any tool to generate unique string keys.","minLength":1,"type":"string"}},"required":["mintDtos"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"Data":{"items":{"description":"Object representing the chain identifier of token instance.","properties":{"additionalKey":{"not":{"type":"null"}},"category":{"minLength":1,"type":"string"},"collection":{"minLength":1,"type":"string"},"dtoExpiresAt":{"description":"Unix epoch timestamp in milliseconds (ms) when the DTO expires. If this time is before the current time, the DTO is not valid.","type":"number"},"dtoOperation":{"description":"Full operation identifier that is called on chain with this DTO. The format is `channelId_chaincodeId_methodName`. It is required for multisig DTOs, and optional for single signed DTOs. ","minLength":1,"type":"string"},"instance":{"description":"Number provided as a string.","minLength":1,"type":"string"},"multisig":{"description":"List of signatures for this DTO if there are multiple signers. If there are multiple signatures, 'signerAddress' is required, and it is not allowed to provide 'signature' or 'signerPublicKey' fields, and the signing scheme must be ETH.","items":{},"minItems":2,"type":"array"},"prefix":{"description":"Prefix for Metamask transaction signatures. Necessary to format payloads correctly to recover publicKey from web3 signatures.","minLength":1,"type":"string"},"signature":{"description":"Signature of the DTO signed with caller's private key to be verified with user's public key saved on chain. The 'signature' field is optional for DTO, but is required for a transaction to be executed on chain. \nPlease consult [GalaChain SDK documentation](https://github.com/GalaChain/sdk/blob/main/docs/authorization.md#signature-based-authorization) on how to create signatures.","minLength":1,"type":"string"},"signerAddress":{"description":"Address of the user who signed the DTO. Typically Ethereum address, or user alias.","minLength":1,"type":"string"},"signerPublicKey":{"description":"Public key of the user who signed the DTO.","minLength":1,"type":"string"},"type":{"minLength":1,"type":"string"},"uniqueKey":{"description":"Unique key of the DTO. It is used to prevent double execution of the same transaction on chain. The key is saved on chain and checked before execution. If a DTO with already saved key is used in transaction, the transaction will fail with UniqueTransactionConflict error, which is mapped to HTTP 409 Conflict error. In case of the error, no changes are saved to chain state.\nThe key is generated by the caller and should be unique for each DTO. You can use `nanoid` library, UUID scheme, or any tool to generate unique string keys.","minLength":1,"type":"string"}},"required":["collection","category","type","additionalKey","instance"],"type":"object"},"type":"array"},"Message":{"type":"string"},"Status":{"description":"Indicates Error (0) or Success (1)","enum":[0,1]}},"required":["Status"],"type":"object"}}},"description":"","headers":{"x-transaction-id":{"description":"Transaction ID of submitted transaction on the chain"}}}},"tags":["Methods"]}},"/api/asset/token-contract/BatchRequestTokenBridgeOut":{"post":{"description":" Transaction updates the chain (submit). Allowed roles: SUBMIT. Allowed orgs: CuratorOrg, GalaUsersOrg, UsersOrg1.","operationId":"asset_token-contract_BatchRequestTokenBridgeOut","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"description":"Contains properties of bridge request for multiple tokens, i.e. a request to bridge tokens out from GalaChain.","properties":{"destinationChainId":{"description":"The type of the bridge.","enum":[1,10,1001,1002,11,12,13,14,15,16,17,18,19,2,20,21,22,23,24,25,26,27,3,4,5,6,7,8,9],"minLength":1,"type":"number"},"dtoExpiresAt":{"description":"Unix epoch timestamp in milliseconds (ms) when the DTO expires. If this time is before the current time, the DTO is not valid.","type":"number"},"dtoOperation":{"description":"Full operation identifier that is called on chain with this DTO. The format is `channelId_chaincodeId_methodName`. It is required for multisig DTOs, and optional for single signed DTOs. ","minLength":1,"type":"string"},"multisig":{"description":"List of signatures for this DTO if there are multiple signers. If there are multiple signatures, 'signerAddress' is required, and it is not allowed to provide 'signature' or 'signerPublicKey' fields, and the signing scheme must be ETH.","items":{},"minItems":2,"type":"array"},"prefix":{"description":"Prefix for Metamask transaction signatures. Necessary to format payloads correctly to recover publicKey from web3 signatures.","minLength":1,"type":"string"},"recipient":{"description":"Recipient address for destination chain","minLength":1,"type":"string"},"signature":{"description":"Signature of the DTO signed with caller's private key to be verified with user's public key saved on chain. The 'signature' field is option

# --- truncated at 32 KB (407 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/gala-games/refs/heads/main/openapi/gala-games-galachain-asset-token-contract-openapi.json