openapi: 3.1.0 info: title: Silvana OpenAPI description: | API for interacting with Mina Fungible Tokens and NFTs. Mina mainnet endpoint: https://minatokens.com/api/v1/ Mina devnet endpoint: https://devnet.minatokens.com/api/v1/ Zeko devnet endpoint: https://zekotokens.com/api/v1/ Fungible Token Docs: https://docs.minatokens.com/ NFT Docs: https://docs.minanft.io/ Get your API key: https://minatokens.com/api Code: https://github.com/SilvanaOne/silvana-lib Example: https://github.com/SilvanaOne/token-api-example version: "0.2.3" servers: - url: https://minatokens.com/api/v1/ description: Mina Mainnet - url: https://devnet.minatokens.com/api/v1/ description: Mina Devnet - url: https://zekotokens.com/api/v1/ description: Zeko Devnet tags: - name: FungibleToken description: Fungible Token Requests - name: Transaction description: Transaction Requests - name: Information description: Information Requests - name: NFT description: NFT Requests - name: Faucet description: Faucet Requests paths: /nft/launch: post: tags: - NFT summary: Deploy a new NFT Collection contract. description: | The `launch` endpoint is used to deploy a new NFT Collection on the Mina blockchain. It allows users to create a new NFT Collection with customizable parameters. operationId: launchNftCollection requestBody: required: true content: application/json: schema: oneOf: - $ref: "#/components/schemas/LaunchNftCollectionStandardAdminParams" - $ref: "#/components/schemas/LaunchNftCollectionAdvancedAdminParams" responses: "200": description: Successful deployment of a new NFT Collection. content: application/json: schema: $ref: "#/components/schemas/NftTransaction" "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "403": $ref: "#/components/responses/Forbidden" "429": $ref: "#/components/responses/TooManyRequests" "500": $ref: "#/components/responses/InternalServerError" "503": $ref: "#/components/responses/ServiceUnavailable" /token/launch: post: tags: - FungibleToken summary: Deploy a new fungible token contract. description: | The `launch` endpoint is used to deploy a new fungible token on the Mina blockchain. It allows users to create a new token with customizable parameters such as symbol, decimals, URI, and admin contract type (standard or advanced). operationId: launchToken requestBody: required: true content: application/json: schema: oneOf: - $ref: "#/components/schemas/LaunchTokenStandardAdminParams" - $ref: "#/components/schemas/LaunchTokenAdvancedAdminParams" - $ref: "#/components/schemas/LaunchTokenBondingCurveAdminParams" responses: "200": description: Successful deployment of a new token. content: application/json: schema: $ref: "#/components/schemas/TokenTransaction" "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "403": $ref: "#/components/responses/Forbidden" "429": $ref: "#/components/responses/TooManyRequests" "500": $ref: "#/components/responses/InternalServerError" "503": $ref: "#/components/responses/ServiceUnavailable" /info/contract: post: tags: - Information summary: Retrieve contract info description: Retrieves detailed information about a contract. operationId: getContractInfo requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/ContractInfoRequest" responses: "200": description: Successful retrieval of contract info for the given contract and his admin contract and other contracts that are related to it. content: application/json: schema: type: array items: $ref: "#/components/schemas/ContractInfo" "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "403": $ref: "#/components/responses/Forbidden" "429": $ref: "#/components/responses/TooManyRequests" "500": $ref: "#/components/responses/InternalServerError" "503": $ref: "#/components/responses/ServiceUnavailable" /info/nft: post: tags: - Information summary: Retrieve NFT Info for Mina NFT V3 description: Retrieves detailed information about a Mina NFT V3 (NFT standard). operationId: getNftInfo requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/NFTRequestParams" responses: "200": description: Successful response content: application/json: schema: $ref: "#/components/schemas/NFTRequestAnswer" "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "403": $ref: "#/components/responses/Forbidden" "429": $ref: "#/components/responses/TooManyRequests" "500": $ref: "#/components/responses/InternalServerError" "503": $ref: "#/components/responses/ServiceUnavailable" /info/nft-v2: post: tags: - Information summary: Retrieve NFT Info for Mina NFT V2 description: Retrieves detailed information about a Mina NFT V2. operationId: getNftV2Info requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/NFTRequestParams" responses: "200": description: Successful response content: application/json: schema: $ref: "#/components/schemas/NftV2RequestAnswer" "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "403": $ref: "#/components/responses/Forbidden" "429": $ref: "#/components/responses/TooManyRequests" "500": $ref: "#/components/responses/InternalServerError" "503": $ref: "#/components/responses/ServiceUnavailable" /faucet: post: tags: - Faucet summary: Request Funds from Faucet description: Requests funds from the faucet for testing purposes. operationId: faucet requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/FaucetParams" responses: "200": description: Faucet response content: application/json: schema: $ref: "#/components/schemas/FaucetResponse" "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "403": $ref: "#/components/responses/Forbidden" "429": $ref: "#/components/responses/TooManyRequests" "500": $ref: "#/components/responses/InternalServerError" "503": $ref: "#/components/responses/ServiceUnavailable" /info/token: post: tags: - Information summary: Retrieve information about a fungible token. description: | The `info` endpoint retrieves detailed information about a specific fungible token deployed on the Mina blockchain. operationId: getTokenInfo requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/TokenInfoRequestParams" responses: "200": description: Successful retrieval of token information. content: application/json: schema: $ref: "#/components/schemas/TokenState" examples: getTokenInfoSuccess: summary: Example of a successful info response value: tokenAddress: B62qphSRYqif9bPjw4Kg2G3CA7V7NzHqtpRzeXkY164n3C9jXqGAfkA tokenId: xJweNxCErRwi5DfHCw7pAmTNioKxDGqHxDmRifXE6bLqPzHtHm adminContractAddress: B62qp4Z6cwEWWtmge5rkbXagzUdYHMxjMVnE1nevRkpvo4ZbA9pLTYF adminAddress: B62qjFmTAzmLvPXRhUn8H83BoqtQxFtqHe8DkYBrj44TP6uKWWNfa1a adminTokenBalance: 0 totalSupply: 1000 isPaused: false decimals: 9 tokenSymbol: TEST verificationKeyHash: "22278758441605771858700252645311428360030262698072838723799702480887091310093" uri: https://minatokens.com version: 0 adminTokenSymbol: "" adminUri: https://minatokens.com adminVerificationKeyHash: "20172938263834569171197221661527530681186299670687606810012808881888777415767" adminVersion: 0 "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "403": $ref: "#/components/responses/Forbidden" "429": $ref: "#/components/responses/TooManyRequests" "500": $ref: "#/components/responses/InternalServerError" "503": $ref: "#/components/responses/ServiceUnavailable" /info/balance: post: tags: - Information summary: Retrieve the balance of a specific token for an address. description: | The `balance` endpoint retrieves the balance of a specific fungible token for a given Mina address. operationId: getTokenBalance requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/BalanceRequestParams" examples: getBalanceRequest: summary: Example of a balance request value: tokenAddress: B62qouKMtMcUxabk72vwZS7tY3XYEca1CPKgXPfznCHUiVjP9E6xxQz address: B62qmoZqbXP3zRDFiVhczH6XXzHN2jhEq6dT9XqZ4trc1Y8oXyCAJgK hasAccount: true responses: "200": description: Successful retrieval of balance. content: application/json: schema: $ref: "#/components/schemas/BalanceResponse" examples: getBalanceSuccess: summary: Example of a successful balance response value: tokenAddress: B62qouKMtMcUxabk72vwZS7tY3XYEca1CPKgXPfznCHUiVjP9E6xxQz tokenId: xJweNxCErRwi5DfHCw7pAmTNioKxDGqHxDmRifXE6bLqPzHtHm address: B62qmoZqbXP3zRDFiVhczH6XXzHN2jhEq6dT9XqZ4trc1Y8oXyCAJgK balance: null "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "403": $ref: "#/components/responses/Forbidden" "429": $ref: "#/components/responses/TooManyRequests" "500": $ref: "#/components/responses/InternalServerError" "503": $ref: "#/components/responses/ServiceUnavailable" /info/nonce: post: tags: - Information summary: Retrieve the nonce for an address description: | The `nonce` endpoint retrieves the nonce for a given Mina address, taking into account the pending transactions. operationId: getNonce requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/NonceRequestParams" examples: getNonceRequest: summary: Example of a nonce request value: address: B62qouKMtMcUxabk72vwZS7tY3XYEca1CPKgXPfznCHUiVjP9E6xxQz responses: "200": description: Successful retrieval of nonce. content: application/json: schema: $ref: "#/components/schemas/NonceResponse" examples: getNonceSuccess: summary: Example of a successful nonce response value: nonce: 1 address: B62qouKMtMcUxabk72vwZS7tY3XYEca1CPKgXPfznCHUiVjP9E6xxQz hasAccount: true "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "403": $ref: "#/components/responses/Forbidden" "429": $ref: "#/components/responses/TooManyRequests" "500": $ref: "#/components/responses/InternalServerError" "503": $ref: "#/components/responses/ServiceUnavailable" /info/holders: post: tags: - Information summary: Retrieve the holders of a token description: | The `holders` endpoint retrieves the holders of a token. operationId: getTokenHolders requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/TokenHoldersRequestParams" examples: getTokenHoldersRequest: summary: Example of a token holders request value: address: B62qouKMtMcUxabk72vwZS7tY3XYEca1CPKgXPfznCHUiVjP9E6xxQz responses: "200": description: Successful retrieval of token holders. content: application/json: schema: $ref: "#/components/schemas/TokenHoldersResponse" "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "403": $ref: "#/components/responses/Forbidden" "429": $ref: "#/components/responses/TooManyRequests" "500": $ref: "#/components/responses/InternalServerError" "503": $ref: "#/components/responses/ServiceUnavailable" /info/transactions: post: tags: - Information summary: Retrieve the transactions of a address description: | The `transactions` endpoint retrieves the transactions of a address. operationId: getTransactions requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/TransactionsListRequestParams" responses: "200": description: Successful retrieval of transactions. content: application/json: schema: $ref: "#/components/schemas/TransactionsListResponse" "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "403": $ref: "#/components/responses/Forbidden" "429": $ref: "#/components/responses/TooManyRequests" "500": $ref: "#/components/responses/InternalServerError" "503": $ref: "#/components/responses/ServiceUnavailable" /transaction/prove: post: tags: - Transaction summary: Generate proofs for signed token transactions. description: | The `prove` endpoint initiates the proof generation process for a set of signed token transactions. It returns a job ID which can be used to check the status and retrieve the proofs or tx hashes using the `/proof` endpoint. operationId: prove requestBody: required: true content: application/json: schema: oneOf: - $ref: "#/components/schemas/ProveTokenTransaction" - $ref: "#/components/schemas/ProveTokenTransactions" - $ref: "#/components/schemas/ProveNftTransaction" - $ref: "#/components/schemas/ProveNftTransactions" responses: "200": description: Successfully initiated proof generation. content: application/json: schema: $ref: "#/components/schemas/JobId" "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "403": $ref: "#/components/responses/Forbidden" "429": $ref: "#/components/responses/TooManyRequests" "500": $ref: "#/components/responses/InternalServerError" "503": $ref: "#/components/responses/ServiceUnavailable" /transaction/proof: post: tags: - Transaction summary: Check the status of a proof generation job and retrieve proofs. description: | The `proof` endpoint allows you to check the status of a proof generation job initiated via the `/prove` endpoint. It returns the status of the job and the proofs or tx hashes if they are ready. operationId: getProof requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/JobId" examples: getProofRequest: summary: Example of a proof request value: jobId: zkCWDYE3gAJOGRDqNlhke0u1NWVXlWgKS2uk2q0FgZdRbPoF responses: "200": description: Successfully retrieved job status and proofs. content: application/json: schema: $ref: "#/components/schemas/JobResults" examples: getProofSuccess: summary: Example of a successful proof response value: success: true results: - success: true hash: 5JtZ672XEVjGHMg2eMTTvoPJFgXduFu94ip7GgQLZhZSB1PoV6Lx error: "" jobStatus: used "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "403": $ref: "#/components/responses/Forbidden" "429": $ref: "#/components/responses/TooManyRequests" "500": $ref: "#/components/responses/InternalServerError" "503": $ref: "#/components/responses/ServiceUnavailable" /transaction/send: post: tags: - Transaction summary: Send a transaction to the Mina blockchain. description: | The `send` endpoint allows you to send a transaction to the Mina blockchain. operationId: sendTransaction requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/SendTransactionParams" responses: "200": description: Successfully sent transaction. content: application/json: schema: $ref: "#/components/schemas/SendTransactionReply" "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "403": $ref: "#/components/responses/Forbidden" "429": $ref: "#/components/responses/TooManyRequests" "500": $ref: "#/components/responses/InternalServerError" "503": $ref: "#/components/responses/ServiceUnavailable" /transaction/status: post: tags: - Transaction summary: Retrieve the status of a transaction by its hash. description: | The `tx-status` endpoint allows you to check the current status of a transaction on the Mina blockchain by providing the transaction hash. It returns whether the transaction has been applied, failed, or is still pending. operationId: txStatus requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/TransactionStatusParams" examples: txStatusRequest: summary: Example of a tx-status request value: hash: 5JuEaWqCkiizzjA3mjrva5hjYeohiGKQFcffUdZxrEJM4xDirhK1 responses: "200": description: Successfully retrieved transaction status. content: application/json: schema: $ref: "#/components/schemas/TransactionStatus" examples: txStatusSuccess: summary: Example of a successful tx-status response value: hash: 5JuEaWqCkiizzjA3mjrva5hjYeohiGKQFcffUdZxrEJM4xDirhK1 status: applied "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "403": $ref: "#/components/responses/Forbidden" "429": $ref: "#/components/responses/TooManyRequests" "500": $ref: "#/components/responses/InternalServerError" "503": $ref: "#/components/responses/ServiceUnavailable" /token/mint: post: tags: - FungibleToken summary: Mint new tokens to a specified address. description: | The `mint` endpoint allows authorized users to mint new tokens of a fungible token on the Mina blockchain. This transaction increases the total supply of the token by creating new tokens and assigning them to a specified address. The sender must have the authority to mint tokens, typically the admin of the token contract. operationId: mintTokens requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/TokenMintTransactionParams" examples: mintRequestExample: summary: Example of a mint request value: txType: mint sender: B62qjFmTAzmLvPXRhUn8H83BoqtQxFtqHe8DkYBrj44TP6uKWWNfa1a tokenAddress: B62qmvJRT6DJsmBQmnTJ8vKSCNedhw1UczhgkCRgckaGB9fRhJ4Sa3J to: B62qmoZqbXP3zRDFiVhczH6XXzHN2jhEq6dT9XqZ4trc1Y8oXyCAJgK amount: 1000000000000 responses: "200": description: Successfully built mint transaction. content: application/json: schema: $ref: "#/components/schemas/TokenTransaction" examples: mintResponseExample: summary: Example of a successful mint response value: txType: mint sender: B62qjFmTAzmLvPXRhUn8H83BoqtQxFtqHe8DkYBrj44TP6uKWWNfa1a nonce: 53 memo: mint 1000 TEST7 fee: "100000000" walletPayload: transaction: '{"feePayer":{"body":{"publicKey":"B62qjFmTAzm..."},"authorization":"..."}]}' # Additional fields as per the TokenTransaction schema "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "403": $ref: "#/components/responses/Forbidden" "429": $ref: "#/components/responses/TooManyRequests" "500": $ref: "#/components/responses/InternalServerError" "503": $ref: "#/components/responses/ServiceUnavailable" /nft/mint: post: tags: - NFT summary: Mint new NFT to a specified address. description: | The `mint` endpoint allows authorized users to mint new NFT on the Mina blockchain. This transaction creates new NFT. The sender must have the authority to mint NFTs, typically the admin of the NFT contract. operationId: mintNFT requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/NftMintTransactionParams" responses: "200": description: Successfully built mint transaction. content: application/json: schema: $ref: "#/components/schemas/NftTransaction" "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "403": $ref: "#/components/responses/Forbidden" "429": $ref: "#/components/responses/TooManyRequests" "500": $ref: "#/components/responses/InternalServerError" "503": $ref: "#/components/responses/ServiceUnavailable" /nft/transfer: post: tags: - NFT summary: Transfer NFT to a specified address. description: | The `transfer` endpoint allows authorized users to transfer NFT on the Mina blockchain. The sender must have the authority to transfer NFTs, being the owner or approved address of the NFT. operationId: transferNFT requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/NftTransferTransactionParams" responses: "200": description: Successfully built transfer transaction. content: application/json: schema: $ref: "#/components/schemas/NftTransaction" "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "403": $ref: "#/components/responses/Forbidden" "429": $ref: "#/components/responses/TooManyRequests" "500": $ref: "#/components/responses/InternalServerError" "503": $ref: "#/components/responses/ServiceUnavailable" /nft/cms/store: post: tags: - NFT summary: Store on-demand NFT in CMS description: | The `store` endpoint allows collection creators to store on-demand NFT in CMS. operationId: cmsStoreNFT requestBody: required: true content: application/json: schema: type: object required: - nft - signature properties: signature: type: string description: The signature of the Collection creator nft: $ref: "#/components/schemas/CMSNFTData" responses: "200": description: Successfully built transfer transaction. content: application/json: schema: type: object properties: success: type: boolean description: Indicates whether the NFT was successfully stored in CMS "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "403": $ref: "#/components/responses/Forbidden" "429": $ref: "#/components/responses/TooManyRequests" "500": $ref: "#/components/responses/InternalServerError" "503": $ref: "#/components/responses/ServiceUnavailable" /nft/cms/read: post: tags: - NFT summary: Read on-demand NFT from CMS description: | The `read` endpoint allows collection creators to read on-demand NFT from CMS. operationId: cmsReadNFT requestBody: required: true content: application/json: schema: type: object required: - collectionAddress properties: collectionAddress: type: string description: The address of the NFT collection nftName: type: string description: The name of the NFT. If not provided, all NFTs will be returned that can be minted now. signature: type: string description: The signature of the Collection creator. Required to get NFTs that cannot be minted now. responses: "200": description: Successfully retrieved NFTs from CMS. content: application/json: schema: type: object properties: nfts: type: array items: $ref: '#/components/schemas/CMSNFTData' description: The NFTs data retrieved from CMS "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "403": $ref: "#/components/responses/Forbidden" "429": $ref: "#/components/responses/TooManyRequests" "500": $ref: "#/components/responses/InternalServerError" "503": $ref: "#/components/responses/ServiceUnavailable" /nft/cms/reserve: post: tags: - NFT summary: Reserve or remove reserve of on-demand NFT in CMS description: | The `reserve` endpoint allows collection admins to reserve or remove reserve of on-demand NFT in CMS. operationId: cmsReserveNFT requestBody: required: true content: application/json: schema: type: object required: - collectionAddress - nftName properties: collectionAddress: type: string description: The address of the NFT collection nftName: type: string description: The name of the NFT reserve: type: boolean description: Indicates whether the NFT should be reserved in CMS or the reserve should be removed. Default is true. signature: type: string description: The signature of the Collection creator. Required if reserve is false. responses: "200": description: Successfully built transfer transaction. content: application/json: schema: type: object properties: reserved: type: boolean description: Indicates whether the NFT was successfully reserved in CMS nft: $ref: '#/components/schemas/CMSNFTData' description: The NFT data retrieved from CMS "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "403": $ref: "#/components/responses/Forbidden" "429": $ref: "#/components/responses/TooManyRequests" "500": $ref: "#/components/responses/InternalServerError" "503": $ref: "#/components/responses/ServiceUnavailable" /nft/approve: post: tags: - NFT summary: Approve a specified address to transfer NFT. description: | The `approve` endpoint allows authorized users to approve a specified address to transfer NFT. The sender must have the authority to approve NFTs, being the owner of the NFT. operationId: approveNFT requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/NftApproveTransactionParams" responses: "200": description: Successfully built approve transaction. content: application/json: schema: $ref: "#/components/schemas/NftTransaction" "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "403": $ref: "#/components/responses/Forbidden" "429": $ref: "#/components/responses/TooManyRequests" "500": $ref: "#/components/responses/InternalServerError" "503": $ref: "#/components/responses/ServiceUnavailable" /nft/sell: post: tags: - NFT summary: Sell NFT at a specified price by creating a Offer contract. description: | The `sell` endpoint allows authorized users to sell NFT on the Mina blockchain. The sender must have the authority to sell NFTs, being the owner of the NFT or approved address. operationId: sellNFT requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/NftSellTransactionParams" responses: "200": description: Successfully built sell transaction. content: application/json: schema: $ref: "#/components/schemas/NftTransaction" "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "403": $ref: "#/components/responses/Forbidden" "429": $ref: "#/components/responses/TooManyRequests" "500": $ref: "#/components/responses/InternalServerError" "503": $ref: "#/components/responses/ServiceUnavailable" /nft/buy: post: tags: - NFT summary: Buy NFT. description: | The `buy` endpoint allows authorized users to buy NFT on the Mina blockchain. operationId: buyNFT requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/NftBuyTransactionParams" responses: "200": description: Successfully built buy transaction. content: application/json: schema: $ref: "#/components/schemas/NftTransaction" "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "403": $ref: "#/components/responses/Forbidden" "429": $ref: "#/components/responses/TooManyRequests" "500": $ref: "#/components/responses/InternalServerError" "503": $ref: "#/components/responses/ServiceUnavailable" /token/transfer: post: tags: - FungibleToken summary: Transfer tokens from one address to another. description: | The `transfer` endpoint allows users to transfer tokens of a fungible token on the Mina blockchain from one address to another. The sender must have sufficient balance and appropriate permissions to perform the transfer. operationId: transferTokens requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/TokenTransferTransactionParams" examples: transferRequestExample: summary: Example of a transfer request value: txType: transfer sender: B62qmoZqbXP3zRDFiVhczH6XXzHN2jhEq6dT9XqZ4trc1Y8oXyCAJgK tokenAddress: B62qmvJRT6DJsmBQmnTJ8vKSCNedhw1UczhgkCRgckaGB9fRhJ4Sa3J to: B62qjrWFfTuosipqFV2wrWCPWHo2UHk3sdcJAsvNj61eowfrXBq4X8F amount: 50000000000 responses: "200": description: Successfully built transfer transaction. content: application/json: schema: $ref: "#/components/schemas/TokenTransaction" examples: transferResponseExample: summary: Example of a successful transfer response value: txType: transfer sender: B62qmoZqbXP3zRDFiVhczH6XXzHN2jhEq6dT9XqZ4trc1Y8oXyCAJgK nonce: 55 memo: transfer 50 TEST7 fee: "100000000" walletPayload: transaction: '{"feePayer":{"body":{"publicKey":"B62qmoZqbXP3zRDF..."}' # Truncated for brevity # Additional fields as per the TokenTransaction schema "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "403": $ref: "#/components/responses/Forbidden" "429": $ref: "#/components/responses/TooManyRequests" "500": $ref: "#/components/responses/InternalServerError" "503": $ref: "#/components/responses/ServiceUnavailable" /token/airdrop: post: tags: - FungibleToken summary: Distribute tokens to multiple addresses via airdrop. description: | Allows users to distribute tokens to multiple addresses in a single transaction. This is efficient for distributing tokens during events like token launches or community rewards. operationId: airdropTokens requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/TokenAirdropTransactionParams" examples: airdropRequestExample: summary: Example of an airdrop request value: txType: airdrop sender: B62qmoZqbXP3zRDFiVhczH6XXzHN2jhEq6dT9XqZ4trc1Y8oXyCAJgK tokenAddress: B62qmvJRT6DJsmBQmnTJ8vKSCNedhw1UczhgkCRgckaGB9fRhJ4Sa3J recipients: - address: B62qmGzXCEPwS7qAQB39y69CE3ePe1N4q8HjtjKDb2wkAFakWkvSpxi amount: 10000000000 - address: B62qqvBCxJ6cvagtdNJr1RawLYQbjfdFN35fckk3vWCnHyqhsBsFHPT amount: 10000000000 - address: B62qrY6SNPNWbGiiR8SL9zFyGeuvpymZL5h8sbGF6pRL5YEL1Mm1jL7 amount: 10000000000 responses: "200": description: Successfully built airdrop transaction. content: application/json: schema: $ref: "#/components/schemas/AirdropTransactionResponse" examples: airdropResponseExample: summary: Example of a successful airdrop response value: txs: - txType: transfer sender: B62qmoZqbXP3zRDFiVhczH6XXzHN2jhEq6dT9XqZ4trc1Y8oXyCAJgK nonce: 56 memo: transfer TEST7 fee: "100000000" walletPayload: transaction: '{"feePayer":{"body":{"publicKey":"B62qmoZqb..."}' # Truncated for brevity # Additional transactions as per the airdrop operation "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "403": $ref: "#/components/responses/Forbidden" "429": $ref: "#/components/responses/TooManyRequests" "500": $ref: "#/components/responses/InternalServerError" "503": $ref: "#/components/responses/ServiceUnavailable" /token/redeem: post: tags: - FungibleToken summary: Redeem tokens for a MINA (applicable for Fungible Tokens with Bonding Curve Admin) description: | The `redeem` endpoint allows users to redeem tokens of a fungible token on the Mina blockchain for a MINA. The sender must have sufficient balance and appropriate permissions to perform the transfer. operationId: redeemTokens requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/TokenRedeemTransactionParams" examples: redeemRequestExample: summary: Example of a redeem request value: txType: redeem sender: B62qmoZqbXP3zRDFiVhczH6XXzHN2jhEq6dT9XqZ4trc1Y8oXyCAJgK tokenAddress: B62qmvJRT6DJsmBQmnTJ8vKSCNedhw1UczhgkCRgckaGB9fRhJ4Sa3J amount: 50000000000 price: 20000 responses: "200": description: Successfully built redeem transaction. content: application/json: schema: $ref: "#/components/schemas/TokenTransaction" examples: redeemResponseExample: summary: Example of a successful redeem response value: txType: redeem sender: B62qmoZqbXP3zRDFiVhczH6XXzHN2jhEq6dT9XqZ4trc1Y8oXyCAJgK nonce: 55 memo: redeem 50 TEST7 fee: "100000000" walletPayload: transaction: '{"feePayer":{"body":{"publicKey":"B62qmoZqbXP3zRDF..."}' # Truncated for brevity # Additional fields as per the TokenTransaction schema "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "403": $ref: "#/components/responses/Forbidden" "429": $ref: "#/components/responses/TooManyRequests" "500": $ref: "#/components/responses/InternalServerError" "503": $ref: "#/components/responses/ServiceUnavailable" /token/burn: post: tags: - FungibleToken summary: Burn tokens from one address. description: | The `burn` endpoint allows users to burn tokens of a fungible token on the Mina blockchain from one address. The sender must have sufficient balance and appropriate permissions to perform the burn. operationId: burnTokens requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/TokenBurnTransactionParams" examples: burnRequestExample: summary: Example of a burn request value: txType: burn sender: B62qmoZqbXP3zRDFiVhczH6XXzHN2jhEq6dT9XqZ4trc1Y8oXyCAJgK tokenAddress: B62qmvJRT6DJsmBQmnTJ8vKSCNedhw1UczhgkCRgckaGB9fRhJ4Sa3J from: B62qmoZqbXP3zRDFiVhczH6XXzHN2jhEq6dT9XqZ4trc1Y8oXyCAJgK amount: 50000000000 responses: "200": description: Successfully built burn transaction. content: application/json: schema: $ref: "#/components/schemas/TokenTransaction" examples: burnResponseExample: summary: Example of a successful burn response value: txType: burn sender: B62qmoZqbXP3zRDFiVhczH6XXzHN2jhEq6dT9XqZ4trc1Y8oXyCAJgK nonce: 55 memo: burn 50 TEST7 fee: "100000000" walletPayload: transaction: '{"feePayer":{"body":{"publicKey":"B62qmoZqbXP3zRDF..."}' # Truncated for brevity # Additional fields as per the TokenTransaction schema "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "403": $ref: "#/components/responses/Forbidden" "429": $ref: "#/components/responses/TooManyRequests" "500": $ref: "#/components/responses/InternalServerError" "503": $ref: "#/components/responses/ServiceUnavailable" /token/bid/create: post: tags: - FungibleToken summary: Place a bid on a token description: | Allows users to place a bid on an token. operationId: tokenBid requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/TokenBidTransactionParams" responses: "200": description: Successfully built bid transaction. content: application/json: schema: $ref: "#/components/schemas/TokenTransaction" "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "403": $ref: "#/components/responses/Forbidden" "429": $ref: "#/components/responses/TooManyRequests" "500": $ref: "#/components/responses/InternalServerError" "503": $ref: "#/components/responses/ServiceUnavailable" /token/offer/create: post: tags: - FungibleToken summary: Create an offer to sell tokens at a specified price. description: | Allows users to create an offer to sell a specified amount of tokens at a given price. operationId: tokenOffer requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/TokenOfferTransactionParams" examples: offerRequestExample: summary: Example of an offer request value: txType: offer sender: B62qmoZqbXP3zRDFiVhczH6XXzHN2jhEq6dT9XqZ4trc1Y8oXyCAJgK tokenAddress: B62qmvJRT6DJsmBQmnTJ8vKSCNedhw1UczhgkCRgckaGB9fRhJ4Sa3J amount: 500000000000 price: 100000000 responses: "200": description: Successfully created offer transaction. content: application/json: schema: $ref: "#/components/schemas/TokenTransaction" examples: offerResponseExample: summary: Example of a successful offer response value: txType: offer sender: B62qmoZqbXP3zRDFiVhczH6XXzHN2jhEq6dT9XqZ4trc1Y8oXyCAJgK nonce: 53 memo: offer 500 TEST7 fee: "100000000" walletPayload: transaction: '{"feePayer":{"body":{"publicKey":"B62qmoZqbXP3zRDF..."}' # Truncated for brevity # Additional fields as per the TokenTransaction schema "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "403": $ref: "#/components/responses/Forbidden" "429": $ref: "#/components/responses/TooManyRequests" "500": $ref: "#/components/responses/InternalServerError" "503": $ref: "#/components/responses/ServiceUnavailable" /token/offer/buy: post: tags: - FungibleToken summary: Purchase tokens from an existing offer. description: | Allows users to purchase tokens from an existing offer on the Mina blockchain. This endpoint facilitates the transaction where tokens are transferred from the offer address to the buyer's address in exchange for the specified price. operationId: buyTokens requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/TokenBuyTransactionParams" examples: buyRequestExample: summary: Example of a buy request value: txType: buy sender: B62qoQ7oMLTHHaW4g2DtRiKbAi41xGWRGhm59A9mof5pVZuUJhwLyUG tokenAddress: B62qmvJRT6DJsmBQmnTJ8vKSCNedhw1UczhgkCRgckaGB9fRhJ4Sa3J offerAddress: B62qn8Y8yRtZc6YpSCMLMFt3os14mndVMq5Aaf4JN834kYLs8riFS3c amount: 10000000000 responses: "200": description: Successfully built buy transaction. content: application/json: schema: $ref: "#/components/schemas/TokenTransaction" examples: buyResponseExample: summary: Example of a successful buy response value: txType: buy sender: B62qoQ7oMLTHHaW4g2DtRiKbAi41xGWRGhm59A9mof5pVZuUJhwLyUG nonce: 12 memo: buy 10 TEST7 fee: "100000000" walletPayload: transaction: '{"feePayer":{"body":{"publicKey":"B62qoQ7oMLTHHaW4g2Dt..."}' # Truncated for brevity # Additional fields as per the TokenTransaction schema "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "403": $ref: "#/components/responses/Forbidden" "429": $ref: "#/components/responses/TooManyRequests" "500": $ref: "#/components/responses/InternalServerError" "503": $ref: "#/components/responses/ServiceUnavailable" /token/bid/sell: post: tags: - FungibleToken summary: Sell a token to the Bid contract. description: | Allows token owners to sell their tokens to the Bid contract. operationId: sellTokens requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/TokenSellTransactionParams" responses: "200": description: Successfully built sell transaction. content: application/json: schema: $ref: "#/components/schemas/TokenTransaction" "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "403": $ref: "#/components/responses/Forbidden" "429": $ref: "#/components/responses/TooManyRequests" "500": $ref: "#/components/responses/InternalServerError" "503": $ref: "#/components/responses/ServiceUnavailable" /token/bid/withdraw: post: tags: - FungibleToken summary: Withdraw a previously placed bid on an token. description: | Allows users to withdraw a bid they have previously placed using the `/bid` endpoint. This transaction cancels the active bid, releasing any locked funds. operationId: withdrawTokenBid requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/TokenWithdrawBidTransactionParams" responses: "200": description: Successfully built withdraw bid transaction. content: application/json: schema: $ref: "#/components/schemas/TokenTransaction" "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "403": $ref: "#/components/responses/Forbidden" "429": $ref: "#/components/responses/TooManyRequests" "500": $ref: "#/components/responses/InternalServerError" "503": $ref: "#/components/responses/ServiceUnavailable" /token/offer/withdraw: post: tags: - FungibleToken summary: Withdraw a previously made offer to sell a token. description: | Allows users to withdraw an offer they have previously made using the `/offer` endpoint. This transaction cancels the active offer, releasing any locked tokens. operationId: withdrawTokenOffer requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/TokenWithdrawOfferTransactionParams" responses: "200": description: Successfully built withdraw offer transaction. content: application/json: schema: $ref: "#/components/schemas/TokenTransaction" "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "403": $ref: "#/components/responses/Forbidden" "429": $ref: "#/components/responses/TooManyRequests" "500": $ref: "#/components/responses/InternalServerError" "503": $ref: "#/components/responses/ServiceUnavailable" /token/bid/whitelist: post: tags: - FungibleToken summary: Update the bid whitelist description: | Allows administrators to update the whitelist of addresses permitted to interact with the Bid contract. This is essential for managing participation in bidding processes, especially for controlled or private auctions. operationId: updateTokenBidWhitelist requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/TokenUpdateBidWhitelistTransactionParams" responses: "200": description: Successfully built update bid whitelist transaction. content: application/json: schema: $ref: "#/components/schemas/TokenTransaction" "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "403": $ref: "#/components/responses/Forbidden" "429": $ref: "#/components/responses/TooManyRequests" "500": $ref: "#/components/responses/InternalServerError" "503": $ref: "#/components/responses/ServiceUnavailable" /token/offer/whitelist: post: tags: - FungibleToken summary: Update the offer whitelist description: | Allows administrators to update the whitelist of addresses permitted to interact with the Offer contract. This is essential for managing participation in offer processes, especially for controlled or private sales. operationId: updateTokenOfferWhitelist requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/TokenUpdateOfferWhitelistTransactionParams" responses: "200": description: Successfully built update offer whitelist transaction. content: application/json: schema: $ref: "#/components/schemas/TokenTransaction" "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "403": $ref: "#/components/responses/Forbidden" "429": $ref: "#/components/responses/TooManyRequests" "500": $ref: "#/components/responses/InternalServerError" "503": $ref: "#/components/responses/ServiceUnavailable" /token/admin/whitelist: post: tags: - FungibleToken summary: Update the advanced admin whitelist description: | Allows administrators to update the whitelist of admin contracts. operationId: updateTokenAdminWhitelist requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/TokenUpdateAdminWhitelistTransactionParams" responses: "200": description: Successfully built update admin whitelist transaction. content: application/json: schema: $ref: "#/components/schemas/TokenTransaction" "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "403": $ref: "#/components/responses/Forbidden" "429": $ref: "#/components/responses/TooManyRequests" "500": $ref: "#/components/responses/InternalServerError" "503": $ref: "#/components/responses/ServiceUnavailable" components: securitySchemes: ApiKeyAuth: type: apiKey in: header name: x-api-key description: "API key for authorization. Get your API key at https://minatokens.com/api" schemas: TokenInfoRequestParams: type: object required: - tokenAddress properties: tokenAddress: type: string description: The address of the token contract. example: B62qphSRYqif9bPjw4Kg2G3CA7V7NzHqtpRzeXkY164n3C9jXqGAfkA TokenSymbolAndAdmin: type: object required: - tokenAddress - adminContractAddress - adminAddress - tokenSymbol properties: tokenAddress: type: string description: The address of the token contract. adminContractAddress: type: string description: The address of the admin contract. adminAddress: type: string description: The address of the administrator. tokenSymbol: type: string description: The symbol of the token. BalanceRequestParams: type: object required: - address properties: tokenAddress: type: string description: The address of the token contract (optional). tokenId: type: string description: The token ID (optional). address: type: string description: The Mina address for which to retrieve the balance. TransactionsListRequestParams: type: object properties: tokenAddress: type: string description: The address of the token contract (optional). One of tokenAddress or tokenId is required. tokenId: type: string description: The token ID (optional). One of tokenAddress or tokenId is required. address: type: string description: The Mina address for which to retrieve the transactions. Optional BalanceResponse: type: object required: - address properties: tokenAddress: type: string description: The address of the token contract (optional). tokenId: type: string description: The token ID (optional). address: type: string description: The Mina address for which the balance was requested. balance: type: number description: The balance of the token for the specified address. hasAccount: type: boolean description: Indicates whether the account exists. NonceRequestParams: type: object required: - address properties: address: type: string description: The Mina address for which to retrieve the nonce. NonceResponse: type: object required: - address properties: address: type: string description: The Mina address for which the nonce was requested. nonce: type: number description: The nonce for the specified address. hasAccount: type: boolean description: Indicates whether the account exists. TokenHolder: type: object required: - address - balance - percentage - isZkappAccount properties: address: type: string description: The address of the token holder balance: type: number description: The total token balance held by this address percentage: type: number description: The percentage of total token supply held by this address isZkappAccount: type: boolean description: Whether this holder is a zkApp account TokenHoldersRequestParams: type: object required: - address properties: address: type: string description: The Mina address for which to retrieve the holders TokenHoldersResponse: type: object required: - holders properties: holders: type: array items: $ref: "#/components/schemas/TokenHolder" description: Array of token holders and their balances TransactionData: type: object required: - timestamp - status - updatedAccounts - accountUpdatesCount - proverAddress - isZkappAccount - hash - fee - memo properties: timestamp: type: number description: Timestamp of the transaction status: type: string description: Status of the transaction updatedAccounts: type: array items: type: object required: - accountAddress - isZkappAccount properties: accountAddress: type: string description: Address of the updated account isZkappAccount: type: boolean description: Whether this is a zkApp account verificationKeyHash: type: string description: Hash of the verification key accountUpdatesCount: type: number description: Number of account updates in the transaction proverAddress: type: string description: Address of the prover isZkappAccount: type: boolean description: Whether this is a zkApp account hash: type: string description: Transaction hash fee: type: number description: Transaction fee memo: type: string description: Transaction memo TransactionsListResponse: type: object required: - transactions properties: transactions: type: array items: $ref: "#/components/schemas/TransactionData" description: Array of transactions ErrorResponse: type: object properties: error: type: string description: Error message detailing the issue. JobId: type: object required: - jobId properties: jobId: type: string description: The job ID returned by the `/prove` endpoint. JobResults: type: object properties: success: type: boolean description: Indicates whether the job was successful. jobStatus: type: string enum: - created - started - finished - failed - used - restarted description: The current status of the job. error: type: string description: Error message if the job failed. results: type: array items: $ref: "#/components/schemas/JobResult" description: Results for each transaction in the job. JobResult: type: object required: - success properties: success: type: boolean description: Indicates whether the proof generation for this transaction was successful. error: type: string description: Error message if proof generation failed for this transaction. tx: type: string description: The transaction data. status: type: string description: The status of the transaction. hash: type: string description: The transaction hash if broadcasted. SendTransactionParams: type: object required: - transaction properties: transaction: type: string description: The transaction to send. SendTransactionReply: type: object required: - success properties: hash: type: string description: The transaction hash if successful. status: type: string description: The status of the transaction. success: type: boolean description: Whether the transaction was sent to the network. error: type: object description: Error details if the transaction failed. TransactionStatusParams: type: object required: - hash properties: hash: type: string description: The transaction hash to check the status of. TransactionStatus: type: object properties: hash: type: string description: The transaction hash. status: type: string enum: - pending - applied - failed - unknown description: The status of the transaction. error: type: string description: The transaction hash. details: type: object properties: blockHeight: type: integer format: int64 description: The height of the block containing the transaction. stateHash: type: string description: The state hash of the block. blockStatus: type: string description: The status of the block. timestamp: type: integer format: int64 description: The timestamp of the block. txHash: type: string description: The transaction hash. txStatus: type: string description: The status of the transaction in the block. description: The details of the transaction. TxStatus: type: object properties: blockHeight: type: integer format: int64 description: The height of the block containing the transaction. stateHash: type: string description: The state hash of the block. blockStatus: type: string description: The status of the block. timestamp: type: integer format: int64 description: The timestamp of the block. txHash: type: string description: The transaction hash. txStatus: type: string description: The status of the transaction in the block. FaucetParams: type: object required: - address properties: address: type: string description: The Mina address (public key) to receive the test tokens. FaucetResponse: type: object properties: success: type: boolean description: Indicates whether the faucet request was successful. hash: type: string description: The transaction hash of the faucet transfer if successful. error: type: string description: Error message if the request failed. NFTRequestParams: type: object properties: collectionAddress: type: string example: B62qs2NthDuxAT94tTFg6MtuaP1gaBxTZyNv9D3uQiQciy1VsaimNFT description: Always set to B62qs2NthDuxAT94tTFg6MtuaP1gaBxTZyNv9D3uQiQciy1VsaimNFT for Mina NFT V2. nftAddress: type: string example: B62qoT6jXebkJVmsUmxCxGJmvHJUXPNF417rms4PATi5R6Hw7e56CRt description: The unique NFT address. required: - collectionAddress NftV2RequestAnswer: type: object properties: contractAddress: type: string example: B62qs2NthDuxAT94tTFg6MtuaP1gaBxTZyNv9D3uQiQciy1VsaimNFT nftAddress: type: string example: B62qoT6jXebkJVmsUmxCxGJmvHJUXPNF417rms4PATi5R6Hw7e56CRt tokenId: type: string example: wXqDrUzWtK58CaWCzN2g3zseU275dhSnRtBthcroeqT6HGKkos tokenSymbol: type: string example: NFT contractUri: type: string example: https://minanft.io nullable: true name: type: string example: Minaty 0001 metadataRoot: type: object properties: data: type: string kind: type: string storage: type: string example: bafkreiffyjf6lpxw5uzniwam7lv7oyezfsxnnfj3yeo67ht3nch3gvgvwi owner: type: string example: B62qkX4VQYdmgc7dmLyiPpMhLRfrWjWnyoGGhdqF4bXtTcbv6E1HWsD price: type: number example: 0 version: type: number example: 1 metadata: type: object nullable: true algolia: type: object nullable: true NFTInfo: type: object required: - type - contractType - tokenAddress - collectionName - collectionAddress - symbol - uri - tokenId - name - image - metadataRoot - storage - metadataVerificationKeyHash - owner - version - id - canChangeOwnerByProof - canTransfer - canApprove - canChangeMetadata - canChangeStorage - canChangeName - canChangeMetadataVerificationKeyHash - canPause - isPaused - requireOwnerAuthorizationToUpgrade - metadata - status - rating - updated - created - chain - contractVerificationKeyHash - contractVersion properties: type: type: string enum: ["nft", "collection"] contractType: type: string enum: ["nft"] tokenAddress: type: string collectionName: type: string collectionAddress: type: string collectionUri: type: string description: The URI of the collection. collectionSymbol: type: string description: The symbol of the collection. collectionBaseURL: type: string description: The base URL of the collection. symbol: type: string uri: type: string tokenId: type: string name: type: string image: type: string description: type: string metadataRoot: type: string storage: type: string metadataVerificationKeyHash: type: string owner: type: string approved: type: string approvedVerificationKeyHash: type: string approvedType: type: string version: type: number id: type: string canChangeOwnerByProof: type: boolean canTransfer: type: boolean canApprove: type: boolean canChangeMetadata: type: boolean canChangeStorage: type: boolean canChangeName: type: boolean canChangeMetadataVerificationKeyHash: type: boolean canPause: type: boolean isPaused: type: boolean requireOwnerAuthorizationToUpgrade: type: boolean metadata: type: object status: type: string rating: type: number updated: type: number created: type: number chain: type: string price: type: number likes: type: number contractVerificationKeyHash: type: string description: The verification key hash of the contract. contractVersion: type: integer format: int32 description: The version number of the contract. CollectionInfo: type: object required: - contractType - collectionName - collectionAddress - symbol - uri - tokenId - creator - adminAddress - baseURL - royaltyFee - transferFee - requireTransferApproval - mintingIsLimited - collectionIsPaused - masterNFT - contractVerificationKeyHash - contractVersion - chain - isPaused - status - rating - updated - created properties: contractType: type: string enum: ["collection"] collectionName: type: string collectionAddress: type: string tokenId: type: string symbol: type: string uri: type: string isPaused: type: boolean banner: type: string creator: type: string adminAddress: type: string baseURL: type: string royaltyFee: type: number transferFee: type: string requireTransferApproval: type: boolean mintingIsLimited: type: boolean collectionIsPaused: type: boolean masterNFT: $ref: "#/components/schemas/NFTInfo" contractVerificationKeyHash: type: string description: The verification key hash of the contract. contractVersion: type: integer format: int32 description: The version number of the contract. chain: type: string updated: type: number created: type: number likes: type: number status: type: string rating: type: number NFTRequestAnswer: type: object required: - collection - nft properties: collection: $ref: "#/components/schemas/CollectionInfo" nft: $ref: "#/components/schemas/NFTInfo" TokenTransactionType: type: string enum: - "token:launch" - "token:mint" - "token:burn" - "token:redeem" - "token:transfer" - "token:bid:create" - "token:offer:create" - "token:offer:buy" - "token:bid:sell" - "token:airdrop" - "token:bid:withdraw" - "token:offer:withdraw" - "token:bid:whitelist" - "token:offer:whitelist" - "token:admin:whitelist" NftTransactionType: type: string enum: - "nft:launch" - "nft:mint" - "nft:transfer" - "nft:approve" - "nft:sell" - "nft:buy" TokenTransactionBaseParams: type: object required: - sender properties: txType: $ref: "#/components/schemas/TokenTransactionType" description: Type of the token transaction. tokenAddress: type: string description: Optional. The address of the token contract. sender: type: string description: The address (public key) of the sender. senderPrivateKey: type: string description: The private key of the sender. It is NOT recommended to use this field. Please use the `sender` field instead. Use this field at your own risk and only if you know what you are doing and do not have access to mina-signer or wallet to get the signature. nonce: type: integer format: int64 description: Optional. The nonce for the transaction. fee: type: integer format: int64 description: Optional. The fee for the transaction. memo: type: string description: Optional. A memo for the transaction. developerFee: type: number format: double description: Optional. The developer fee for the transaction. NftTransactionBaseParams: type: object required: - sender properties: txType: $ref: "#/components/schemas/NftTransactionType" description: Type of the NFT transaction. collectionAddress: type: string description: Optional. The address of the NFT collection. nftAddress: type: string description: Optional. The address of the NFT. sender: type: string description: The address (public key) of the sender. senderPrivateKey: type: string description: The private key of the sender. It is NOT recommended to use this field. Please use the `sender` field instead. Use this field at your own risk and only if you know what you are doing and do not have access to mina-signer or wallet to get the signature. nonce: type: integer format: int64 description: Optional. The nonce for the transaction. fee: type: integer format: int64 description: Optional. The fee for the transaction. memo: type: string description: Optional. A memo for the transaction. developerFee: type: number format: double description: Optional. The developer fee for the transaction. DeployedTokenTransactionBaseParams: allOf: - $ref: "#/components/schemas/TokenTransactionBaseParams" - type: object required: - tokenAddress properties: tokenAddress: type: string description: The address of the token contract. DeployedNftCollectionTransactionBaseParams: allOf: - $ref: "#/components/schemas/NftTransactionBaseParams" - type: object required: - collectionAddress properties: collectionAddress: type: string description: The address of the NFT collection. DeployedNftTransactionBaseParams: allOf: - $ref: "#/components/schemas/NftTransactionBaseParams" - type: object required: - collectionAddress - nftAddress properties: collectionAddress: type: string description: The address of the NFT collection. nftAddress: type: string description: The address of the NFT. LaunchTokenTransactionBaseParams: allOf: - $ref: "#/components/schemas/TokenTransactionBaseParams" - type: object required: - adminContract - symbol - uri properties: txType: type: string enum: - "token:launch" description: Must be "token:launch" adminContract: type: string enum: - standard - advanced - bondingCurve description: The type of admin contract to use. symbol: type: string description: The symbol of the token. decimals: type: integer format: int32 description: Optional. The number of decimal places for the token. uri: oneOf: - type: string format: uri - $ref: "#/components/schemas/TokenInfo" description: URI or token info object containing metadata. tokenAddress: type: string description: Optional. The address of the token contract. adminContractAddress: type: string description: Optional. The address of the admin contract. tokenContractPrivateKey: type: string description: Optional. Private key for the token contract. adminContractPrivateKey: type: string description: Optional. Private key for the admin contract. CollectionData: type: object properties: royaltyFee: type: integer format: int32 description: The royalty fee percentage (e.g., 1000 = 1%, 100 = 0.1%, 10000 = 10%, 100000 = 100%) transferFee: type: integer format: int64 description: The transfer fee amount requireTransferApproval: type: boolean description: If true, transferring NFTs requires approval from the admin contract mintingIsLimited: type: boolean description: If true, the minting is stopped and cannot be resumed isPaused: type: boolean description: Indicates whether the collection is currently paused NftMetadata: type: object required: - name - image properties: name: type: string description: The name of the NFT image: type: string description: The image URL or IPFS hash associated with the NFT description: type: string description: Optional description of the NFT banner: type: string description: Optional banner image URL or IPFS hash. Required for Collection Master NFT. traits: type: array items: $ref: '#/components/schemas/Trait' description: Array of traits associated with the NFT NftData: type: object properties: owner: type: string description: The public key of the owner of the NFT approved: type: string description: The public key of the approved address of the NFT version: type: integer format: int32 description: The version number of the NFT state id: type: string description: The unique identifier of the NFT within the collection. A bigint encoded as a string. canChangeOwnerByProof: type: boolean description: Determines whether the NFT's ownership can be changed via a zero-knowledge proof (readonly) canTransfer: type: boolean description: Specifies if the NFT's ownership can be transferred (readonly) canApprove: type: boolean description: Specifies if the NFT's approved address can be changed (readonly) canChangeMetadata: type: boolean description: Indicates whether the NFT's metadata can be updated (readonly) canChangeStorage: type: boolean description: Determines whether the storage associated with the NFT can be altered (readonly) canChangeName: type: boolean description: Specifies if the name of the NFT can be changed (readonly) canChangeMetadataVerificationKeyHash: type: boolean description: Indicates whether the verification key hash for the metadata can be changed (readonly) canPause: type: boolean description: Specifies if the NFT contract can be paused, preventing certain operations (readonly) isPaused: type: boolean description: Indicates whether the NFT contract is currently paused requireOwnerAuthorizationToUpgrade: type: boolean description: Determines whether the owner's authorization is required to upgrade the NFT's verification key (readonly) Trait: type: object required: - key - type - value properties: key: type: string description: The trait key/name type: type: string enum: - string - text - image - url - field - number - address - map - tree description: The type of the trait value value: oneOf: - type: string - type: object description: The trait value, can be a string or complex object depending on type isPrivate: type: boolean description: Optional flag indicating if this trait is private CMSNFTData: type: object required: - collectionAddress - name - imageURL properties: collectionAddress: type: string description: The address of the NFT collection symbol: type: string description: The symbol of the NFT name: type: string description: The name of the NFT description: type: string description: Optional description of the NFT metadataVerificationKeyHash: type: string description: The hash of the verification key used for metadata proofs, Field as a string imageURL: type: string description: URL to the NFT image traits: type: array items: $ref: '#/components/schemas/Trait' description: Array of traits associated with the NFT nftData: $ref: '#/components/schemas/NftData' description: Data associated with the NFT price: type: number format: double description: The price of the NFT mintStart: type: number format: int64 description: The start time of the minting period( unix timestamp in ms) mintEnd: type: number format: int64 description: The end time of the minting period( unix timestamp in ms) NftTransferParams: type: object required: - to properties: from: type: string description: The address of the owner or approved to: type: string description: The address of the recipient price: type: number description: The price of the NFT being transferred requireApproval: type: boolean description: If true, the transfer requires approval from the admin contract context: type: object description: The custom context for the transfer properties: custom: type: array size: 3 items: type: string description: The custom context for the transfer, 3 Fields NftApproveParams: type: object properties: to: type: string description: The address of the recipient. If not provided, the existing approval will be removed. NftSellParams: type: object required: - price properties: price: type: number description: The price of the NFT offerAddress: type: string description: The address of the offer contract offerPrivateKey: type: string description: The private key of the offer contract NftBuyParams: type: object properties: buyer: type: string description: The address of the buyer NftMintParams: type: object required: - name - data - metadata properties: name: type: string description: The name of the NFT address: type: string description: The address of the NFT contract addressPrivateKey: type: string description: The private key of the NFT contract tokenId: type: integer format: int64 description: The token ID of the NFT data: $ref: "#/components/schemas/NftData" description: The data associated with the NFT, including owner, approved, version, id, permissions and flags fee: type: integer format: int64 description: The fee associated with minting the NFT metadata: oneOf: - type: string - $ref: "#/components/schemas/NftMetadata" description: The metadata associated with the NFT, Field as a string or NftMetadata object storage: type: string description: The off-chain storage information (e.g., IPFS hash) metadataVerificationKeyHash: type: string description: The hash of the verification key used for metadata proofs, Field as a string expiry: type: integer format: int32 description: The expiry time slot for minting the NFT LaunchNftCollectionTransactionBaseParams: allOf: - $ref: "#/components/schemas/NftTransactionBaseParams" - type: object required: - collectionName - masterNFT properties: txType: type: string enum: - "nft:launch" description: Must be "nft:launch" adminContract: type: string enum: - standard - advanced description: The type of admin contract to use. Default is "standard". symbol: type: string description: The symbol of the NFT collection. Use NFT as a default value. url: type: string format: uri description: The URL of the NFT collection. collectionName: type: string description: The name of the NFT collection. creator: type: string description: The creator of the NFT collection. Should be the public key of the creator starting with B62. baseURL: type: string format: uri description: The base URL of the NFT collection, can be 'ipfs' or url with or without `https://`. Default is 'ipfs'. collectionData: $ref: "#/components/schemas/CollectionData" masterNFT: $ref: "#/components/schemas/NftMintParams" collectionAddress: type: string description: Optional. The address of the collection. adminContractAddress: type: string description: Optional. The address of the admin contract. collectionContractPrivateKey: type: string description: Optional. Private key for the collection contract. adminContractPrivateKey: type: string description: Optional. Private key for the admin contract. TokenMintTransactionParams: allOf: - $ref: "#/components/schemas/DeployedTokenTransactionBaseParams" - type: object required: - to - amount properties: txType: type: string enum: - "token:mint" description: Must be "token:mint" to: type: string description: The address to which tokens are to be minted. amount: type: number format: double description: The amount of tokens to mint. price: type: number format: double description: The price of the token in the bonding curve. NftMintTransactionParams: allOf: - $ref: "#/components/schemas/DeployedNftCollectionTransactionBaseParams" - type: object required: - txType - nftMintParams properties: txType: type: string enum: - "nft:mint" description: Must be "nft:mint" nftMintParams: $ref: "#/components/schemas/NftMintParams" NftTransferTransactionParams: allOf: - $ref: "#/components/schemas/DeployedNftTransactionBaseParams" - type: object required: - txType - nftTransferParams properties: txType: type: string enum: - "nft:transfer" description: Must be "nft:transfer" nftTransferParams: $ref: "#/components/schemas/NftTransferParams" NftApproveTransactionParams: allOf: - $ref: "#/components/schemas/DeployedNftTransactionBaseParams" - type: object required: - txType - nftApproveParams properties: txType: type: string enum: - "nft:approve" description: Must be "nft:approve" nftApproveParams: $ref: "#/components/schemas/NftApproveParams" NftSellTransactionParams: allOf: - $ref: "#/components/schemas/DeployedNftTransactionBaseParams" - type: object required: - txType - nftSellParams properties: txType: type: string enum: - "nft:sell" description: Must be "nft:sell" nftSellParams: $ref: "#/components/schemas/NftSellParams" NftBuyTransactionParams: allOf: - $ref: "#/components/schemas/DeployedNftTransactionBaseParams" - type: object required: - txType - nftBuyParams properties: txType: type: string enum: - "nft:buy" description: Must be "nft:buy" nftBuyParams: $ref: "#/components/schemas/NftBuyParams" TokenBurnTransactionParams: allOf: - $ref: "#/components/schemas/DeployedTokenTransactionBaseParams" - type: object required: - from - amount properties: txType: type: string enum: - "token:burn" description: Must be "token:burn" from: type: string description: The address from which tokens are to be burned. amount: type: number format: double description: The amount of tokens to burn. TokenRedeemTransactionParams: allOf: - $ref: "#/components/schemas/DeployedTokenTransactionBaseParams" - type: object required: - amount - price properties: txType: type: string enum: - "token:redeem" description: Must be "token:redeem" amount: type: number format: double description: The amount of tokens to redeem. price: type: number format: double description: The minimum price of the tokens to be redeemed. slippage: type: integer format: int32 minimum: 0 maximum: 999 description: The maximum slippage allowed for the redemption, default is 50 (5%). TokenTransferTransactionParams: allOf: - $ref: "#/components/schemas/DeployedTokenTransactionBaseParams" - type: object required: - to - amount properties: txType: type: string enum: - "token:transfer" description: Must be "token:transfer" to: type: string description: The address to which tokens are to be transferred. amount: type: number format: double description: The amount of tokens to transfer. TokenAirdropTransactionParams: allOf: - $ref: "#/components/schemas/DeployedTokenTransactionBaseParams" - type: object required: - recipients properties: txType: type: string enum: - "token:airdrop" description: Must be "token:airdrop" recipients: type: array items: type: object required: - address - amount properties: address: type: string description: The recipient's address amount: type: number format: double description: The amount to airdrop memo: type: string description: Optional memo for this recipient description: List of recipients and amounts for the airdrop TokenBidTransactionParams: allOf: - $ref: "#/components/schemas/DeployedTokenTransactionBaseParams" - type: object required: - amount - price properties: txType: type: string enum: - "token:bid:create" description: Must be "token:bid:create" bidPrivateKey: type: string description: Optional. The private key for bidding. bidAddress: type: string description: Optional. The address for bidding. amount: type: number format: double description: The amount to bid. price: type: number format: double description: The price to bid. whitelist: $ref: "#/components/schemas/Whitelist" TokenOfferTransactionParams: allOf: - $ref: "#/components/schemas/DeployedTokenTransactionBaseParams" - type: object required: - amount - price properties: txType: type: string enum: - "token:offer:create" description: Must be "token:offer:create" offerPrivateKey: type: string description: Optional. The private key for offering. offerAddress: type: string description: Optional. The address for offering. amount: type: number format: double description: The amount to offer. price: type: number format: double description: The price to offer. whitelist: $ref: "#/components/schemas/Whitelist" TokenBuyTransactionParams: allOf: - $ref: "#/components/schemas/DeployedTokenTransactionBaseParams" - type: object required: - offerAddress - amount properties: txType: type: string enum: - "token:offer:buy" description: Must be "token:offer:buy" offerAddress: type: string description: The address of the offer to buy from. amount: type: number format: double description: The amount of tokens to buy. TokenSellTransactionParams: allOf: - $ref: "#/components/schemas/DeployedTokenTransactionBaseParams" - type: object required: - bidAddress - amount properties: txType: type: string enum: - "token:bid:sell" description: Must be "token:bid:sell" bidAddress: type: string description: The address of the bid to sell to. amount: type: number format: double description: The amount of tokens to sell. TokenWithdrawBidTransactionParams: allOf: - $ref: "#/components/schemas/DeployedTokenTransactionBaseParams" - type: object required: - bidAddress - amount properties: txType: type: string enum: - "token:bid:withdraw" description: Must be "token:bid:withdraw" bidAddress: type: string description: The address of the bid to withdraw from. amount: type: number format: double description: The amount to withdraw from the bid. TokenWithdrawOfferTransactionParams: allOf: - $ref: "#/components/schemas/DeployedTokenTransactionBaseParams" - type: object required: - offerAddress - amount properties: txType: type: string enum: - "token:offer:withdraw" description: Must be "token:offer:withdraw" offerAddress: type: string description: The address of the offer to withdraw from. amount: type: number format: double description: The amount to withdraw from the offer. TokenUpdateBidWhitelistTransactionParams: allOf: - $ref: "#/components/schemas/DeployedTokenTransactionBaseParams" - type: object required: - bidAddress - whitelist properties: txType: type: string enum: - "token:bid:whitelist" description: Must be "token:bid:whitelist" bidAddress: type: string description: The address of the bid to update whitelist for. whitelist: $ref: "#/components/schemas/Whitelist" description: Either a list of whitelisted addresses with optional amounts, or a string representing a whitelist contract address TokenUpdateOfferWhitelistTransactionParams: allOf: - $ref: "#/components/schemas/DeployedTokenTransactionBaseParams" - type: object required: - offerAddress - whitelist properties: txType: type: string enum: - "token:offer:whitelist" description: Must be "token:offer:whitelist" offerAddress: type: string description: The address of the offer to update whitelist for. whitelist: $ref: "#/components/schemas/Whitelist" description: Either a list of whitelisted addresses with optional amounts, or a string representing a whitelist contract address TokenUpdateAdminWhitelistTransactionParams: allOf: - $ref: "#/components/schemas/DeployedTokenTransactionBaseParams" - type: object required: - adminAddress - whitelist properties: txType: type: string enum: - "token:admin:whitelist" description: Must be "token:admin:whitelist" adminAddress: type: string description: The address of the admin to update whitelist for. whitelist: $ref: "#/components/schemas/Whitelist" description: Either a list of whitelisted addresses with optional amounts, or a string representing a whitelist contract address LaunchTokenStandardAdminParams: allOf: - $ref: "#/components/schemas/LaunchTokenTransactionBaseParams" - type: object required: - adminContract properties: adminContract: type: string enum: - standard description: Must be "standard" for standard admin contract. LaunchNftCollectionStandardAdminParams: allOf: - $ref: "#/components/schemas/LaunchNftCollectionTransactionBaseParams" - type: object required: - adminContract properties: adminContract: type: string enum: - standard description: Must be "standard" for standard admin contract. LaunchTokenAdvancedAdminParams: allOf: - $ref: "#/components/schemas/LaunchTokenTransactionBaseParams" - type: object required: - adminContract - canMint properties: adminContract: type: string enum: - advanced description: Must be "advanced" for advanced admin contract. canMint: type: string enum: - whitelist - anyone description: Specifies who can mint tokens. requireAdminSignatureForMint: type: boolean description: Optional. Whether admin signature is required for minting. whitelist: $ref: "#/components/schemas/Whitelist" description: Optional. List of whitelisted addresses with optional amounts, or a string. totalSupply: type: number format: double description: Optional. Maximum total supply. Uses UInt64.MAXINT() if not provided. AdvancedNftCollectionAdminData: type: object properties: canPause: type: boolean description: Indicates whether the contract can be paused isPaused: type: boolean description: Indicates whether the contract is currently paused allowChangeRoyalty: type: boolean description: Indicates whether the contract can change the royalty fee allowChangeTransferFee: type: boolean description: Indicates whether the contract can change the transfer fee allowChangeBaseUri: type: boolean description: Indicates whether the contract can change the base URI allowChangeCreator: type: boolean description: Indicates whether the contract can change the creator allowChangeAdmin: type: boolean description: Indicates whether the contract can change the admin allowChangeName: type: boolean description: Indicates whether the contract can change the name LaunchNftCollectionAdvancedAdminParams: allOf: - $ref: "#/components/schemas/LaunchNftCollectionTransactionBaseParams" - type: object required: - adminContract - upgradeAuthority properties: adminContract: type: string enum: - advanced description: Must be "advanced" for advanced admin contract. upgradeAuthority: type: string description: The address of the upgrade authority contract adminData: $ref: "#/components/schemas/AdvancedNftCollectionAdminData" description: The admin data for the NFT collection whitelist: $ref: "#/components/schemas/Whitelist" description: Optional. List of whitelisted addresses with optional amounts, or a string. LaunchTokenBondingCurveAdminParams: allOf: - $ref: "#/components/schemas/LaunchTokenTransactionBaseParams" - type: object required: - adminContract properties: adminContract: type: string enum: - bondingCurve description: Must be "bondingCurve" for bonding curve admin contract. TokenInfo: type: object properties: symbol: type: string description: The symbol of the token. name: type: string description: Optional. The name of the token. description: type: string description: Optional. Description of the token. imageUrl: type: string format: uri description: Optional. URL of the token image. imageBase64: type: string description: Optional. Base64-encoded image data (max 1 MB). twitter: type: string description: Optional. Twitter handle associated with the token. discord: type: string description: Optional. Discord link associated with the token. telegram: type: string description: Optional. Telegram link associated with the token. instagram: type: string description: Optional. Instagram handle associated with the token. facebook: type: string description: Optional. Facebook page associated with the token. website: type: string format: uri description: Optional. Official website of the token. tokenContractCode: type: string description: Optional. Code for the token contract. adminContractsCode: type: array items: type: string description: Optional. Code for the admin contracts. TransactionPayloads: type: object required: - sender - nonce - memo - fee - walletPayload - minaSignerPayload - proverPayload - signedData - transaction properties: sender: type: string description: The address initiating the transaction. nonce: type: integer format: int64 description: The nonce for the transaction. memo: type: string description: A memo for the transaction. fee: type: number format: double description: The fee for the transaction. walletPayload: type: object properties: nonce: type: integer format: int64 description: The nonce for the transaction. transaction: type: string description: The transaction data. onlySign: type: boolean description: Indicates if only signature is needed. feePayer: type: object properties: fee: type: number format: double description: The fee for the transaction. memo: type: string description: A memo for the transaction. minaSignerPayload: type: object required: - zkappCommand - feePayer properties: zkappCommand: type: object additionalProperties: true description: The zkApp command data. feePayer: type: object properties: feePayer: type: string description: The fee payer's address. fee: type: number format: double description: The fee for the transaction. nonce: type: integer format: int64 description: The nonce for the transaction. memo: type: string description: A memo for the transaction. proverPayload: type: string description: The payload for the prover. signedData: type: string description: The signed data for the transaction. transaction: type: string description: The raw transaction data. sendTransaction: type: boolean description: Optional. Whether to broadcast the transaction after proving. TokenTransactionParams: oneOf: - $ref: "#/components/schemas/LaunchTokenStandardAdminParams" - $ref: "#/components/schemas/LaunchTokenAdvancedAdminParams" - $ref: "#/components/schemas/TokenMintTransactionParams" - $ref: "#/components/schemas/TokenBurnTransactionParams" - $ref: "#/components/schemas/TokenRedeemTransactionParams" - $ref: "#/components/schemas/TokenTransferTransactionParams" - $ref: "#/components/schemas/TokenAirdropTransactionParams" - $ref: "#/components/schemas/TokenOfferTransactionParams" - $ref: "#/components/schemas/TokenBidTransactionParams" - $ref: "#/components/schemas/TokenBuyTransactionParams" - $ref: "#/components/schemas/TokenSellTransactionParams" - $ref: "#/components/schemas/TokenWithdrawBidTransactionParams" - $ref: "#/components/schemas/TokenWithdrawOfferTransactionParams" - $ref: "#/components/schemas/TokenUpdateBidWhitelistTransactionParams" - $ref: "#/components/schemas/TokenUpdateOfferWhitelistTransactionParams" - $ref: "#/components/schemas/TokenUpdateAdminWhitelistTransactionParams" NftTransactionParams: oneOf: - $ref: "#/components/schemas/LaunchNftCollectionStandardAdminParams" - $ref: "#/components/schemas/LaunchNftCollectionAdvancedAdminParams" - $ref: "#/components/schemas/NftMintTransactionParams" - $ref: "#/components/schemas/NftSellTransactionParams" - $ref: "#/components/schemas/NftBuyTransactionParams" - $ref: "#/components/schemas/NftTransferTransactionParams" - $ref: "#/components/schemas/NftApproveTransactionParams" TokenTransaction: type: object allOf: - $ref: "#/components/schemas/TransactionPayloads" - type: object required: - request - symbol properties: symbol: type: string description: The symbol of the token. request: allOf: - $ref: "#/components/schemas/TokenTransactionParams" - type: object required: - txType properties: txType: $ref: "#/components/schemas/TokenTransactionType" description: The type of the token transaction. NftTransaction: type: object allOf: - $ref: "#/components/schemas/TransactionPayloads" - type: object required: - request - symbol - collectionName - nftName properties: symbol: type: string description: The symbol of the NFT collection. collectionName: type: string description: The name of the NFT collection. nftName: type: string description: The name of the NFT. storage: type: string description: The storage of the NFT (IPFS hash). privateMetadata: type: string description: The private metadata of the NFT. metadataRoot: type: string description: The metadata root of the NFT. map: type: object description: The serialized metadata map of the NFT. request: allOf: - $ref: "#/components/schemas/NftTransactionParams" - type: object required: - txType properties: txType: $ref: "#/components/schemas/NftTransactionType" description: The type of the NFT transaction. TokenTransactions: type: object required: - txs properties: txs: type: array items: $ref: "#/components/schemas/TokenTransaction" description: Array of token transactions. NftTransactions: type: object required: - txs properties: txs: type: array items: $ref: "#/components/schemas/NftTransaction" description: Array of NFT transactions. ProveTokenTransaction: type: object required: - tx - signedData properties: tx: $ref: "#/components/schemas/TokenTransaction" description: The transaction object. signedData: type: string description: The signed data for the transaction. sendTransaction: type: boolean description: Optional. Whether to broadcast the transaction after proving. ProveNftTransaction: type: object required: - tx - signedData properties: tx: $ref: "#/components/schemas/NftTransaction" description: The transaction object. signedData: type: string description: The signed data for the transaction. sendTransaction: type: boolean description: Optional. Whether to broadcast the transaction after proving. ProveTokenTransactions: type: object required: - txs properties: txs: type: array items: $ref: "#/components/schemas/ProveTokenTransaction" description: Array of transactions to be proved. ProveNftTransactions: type: object required: - txs properties: txs: type: array items: $ref: "#/components/schemas/ProveNftTransaction" description: Array of transactions to be proved. TokenState: type: object required: - tokenAddress - tokenId - adminContractAddress - adminAddress - adminTokenBalance - totalSupply - isPaused - decimals - tokenSymbol - verificationKeyHash - uri - version - adminTokenSymbol - adminUri - adminVerificationKeyHash - adminVersion properties: tokenAddress: type: string description: The address of the token contract. tokenId: type: string description: The unique identifier of the token. adminContractAddress: type: string description: The address of the admin contract. adminAddress: type: string description: The address of the administrator. adminTokenBalance: type: number format: double description: The token balance of the administrator. totalSupply: type: number format: double description: The total supply of the token. isPaused: type: boolean description: Indicates if the token contract is paused. decimals: type: integer format: int32 description: The number of decimal places the token uses. tokenSymbol: type: string description: The symbol of the token. verificationKeyHash: type: string description: The verification key hash of the token contract. uri: type: string description: The URI of the token metadata. version: type: integer format: int32 description: The version number of the token contract. adminTokenSymbol: type: string description: The symbol of the admin token. adminUri: type: string description: The URI of the admin token metadata. adminVerificationKeyHash: type: string description: The verification key hash of the admin contract. adminVersion: type: integer format: int32 ProofResult: type: object properties: success: type: boolean description: Indicates whether the proof generation was successful. hash: type: string description: The transaction hash if the proof was successfully applied. error: type: string description: Error message if proof generation failed. AirdropTransactionResponse: type: object properties: txs: type: array items: $ref: "#/components/schemas/TokenTransaction" description: List of token transactions created for the airdrop. Whitelist: oneOf: - type: array items: type: object required: - address properties: address: type: string description: The whitelisted address. amount: type: number format: double description: Optional. The amount allowed to bid. - type: string description: Optional. List of whitelisted addresses with optional amounts, or a string. ContractInfoRequest: type: object required: - address properties: address: type: string description: The contract address. tokenId: type: string description: Optional. The tokenId. ContractPropertyType: type: string enum: - name - role - address - tokenId - verificationKey - verificationKeyHash - zkappVersion - bigint - number - field - boolean - ipfs - string - uri - symbol - bondingCurveMintPrice - bondingCurveRedeemPrice ContractProperty: type: object required: - type - value properties: type: $ref: "#/components/schemas/ContractPropertyType" value: type: string presentation: type: string ContractInfo: type: object required: - name - address - tokenId - derivedTokenId - symbol - uri - verificationKey - verificationKeyHash - zkappVersion properties: name: allOf: - $ref: "#/components/schemas/ContractProperty" - properties: type: enum: ["name"] address: allOf: - $ref: "#/components/schemas/ContractProperty" - properties: type: enum: ["address"] tokenId: allOf: - $ref: "#/components/schemas/ContractProperty" - properties: type: enum: ["tokenId"] derivedTokenId: allOf: - $ref: "#/components/schemas/ContractProperty" - properties: type: enum: ["tokenId"] symbol: allOf: - $ref: "#/components/schemas/ContractProperty" - properties: type: enum: ["symbol"] uri: allOf: - $ref: "#/components/schemas/ContractProperty" - properties: type: enum: ["uri"] verificationKey: allOf: - $ref: "#/components/schemas/ContractProperty" - properties: type: enum: ["verificationKey"] verificationKeyHash: allOf: - $ref: "#/components/schemas/ContractProperty" - properties: type: enum: ["verificationKeyHash"] zkappVersion: allOf: - $ref: "#/components/schemas/ContractProperty" - properties: type: enum: ["zkappVersion"] additionalProperties: $ref: "#/components/schemas/ContractProperty" responses: BadRequest: description: Bad request - invalid input parameters. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" Unauthorized: description: Unauthorized - user not authenticated. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" Forbidden: description: Forbidden - user doesn't have permission. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" TooManyRequests: description: Too many requests. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" InternalServerError: description: Internal server error - something went wrong during the request. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" ServiceUnavailable: description: Service unavailable - blockchain or other external service is down. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" security: - ApiKeyAuth: []