UNPKG

@tatumio/nft-connector

Version:

NFT Connector for Tatum API

1,211 lines (1,197 loc) 171 kB
openapi: 3.0.0 servers: - url: 'https://api-eu1.tatum.io' info: version: 1.0.1 title: Tatum NFT Abstraction API tags: - description: | <p>NFT stands for "non-fungible token." Non-fungible means that each token is unique and irreplaceable. This principle gives NFTs their value and gives rise to a wide range of interesting potential use cases.<br/> NFTs can be used for nearly any digital asset or good to ensure authenticity and scarcity. The possibilities are endless, but here are a few example use cases: <ul> <li><b>In-game assets</b> - NFTs can be used to create unique collectibles in the form of characters, weapons, skins, or other equipment. Players can resell or trade assets directly as they choose, and their authenticity is easily verifiable. No more eBay, no more scammers.</li> <li><b>Music and other digital media</b> - NFTs can be used to create rare and unique collectible digital releases. Similarly, NFTs can be used to sell videos, art, or any other type of digital media. Collectors can own digital originals of their favorite songs, movies, or virtually anything else you can imagine.</li> <li><b>Digital sports merch</b> - Trading cards, memorabilia, classic moments in sports history, and one-of-a-kind experiences can also be sold as NFTs, opening up a world of possibilities for sports leagues and teams worldwide. The NBA Top Shot website sells collectible “moments” from the league’s history, and at the time of writing, the website is completely sold out and closed for new sign-ups.</li> <br/> These endpoints wraps up standard NFT implementation and operations, which can be done with them. Endpoints are blockchain agnostic, the only differentatior is the <b>chain</b> parameter in the URL path.<br/><br/> Tatum now supports NFT these blockchains:<br/> <ul> <li><b>Ethereum</b></li> <li><b>Polygon (Matic)</b></li> <li><b>Kcs (KCS)</b></li> <li><b>Celo</b></li> <li><b>Harmony.ONE</b></li> <li><b>Tron</b></li> <li><b>Flow</b></li> <li><b>Binance Smart Chain</b></li> <li><b>Algorand</b></li> </ul> </p> name: Blockchain / NFT paths: /v3/nft/deploy: post: description: | <h4>100 credits per API call on FLOW, 2 credits on another chains. Tatum covers the fee connected to the transaction costs in subscription credits for FLOW. This operation can be done on mainnet only for paid plans.</h4><br/> <p>Deploy NFT Smart Contract. This method creates new ERC721 Smart Contract (Non-Fungible Tokens) on the blockchain. Smart contract is standardized and audited. It is possible to mint, burn and transfer tokens. It is also possible to mint multiple tokens at once.<br/> Tatum now supports NFT these blockchains:<br/> <ul> <li><b>Ethereum</b></li> <li><b>Polygon (Matic)</b></li> <li><b>Kcs (KCS)</b></li> <li><b>Celo</b></li> <li><b>Harmony.ONE</b></li> <li><b>Flow</b></li> <li><b>Tron</b></li> <li><b>Binance Smart Chain</b></li> </ul> It is possible to see the code of the deployed contract <a href="https://github.com/tatumio/smart-contracts/tree/master/contracts/tatum" target="_blank">for EVM chains here</a> or here <a href="https://github.com/tatumio/flow-contracts" target="_blank">for Flow</a>.<br/><br/> This operation needs the private key of the blockchain address. Every time the funds are transferred, the transaction must be signed with the corresponding private key. No one should ever send it's own private keys to the internet because there is a strong possibility of stealing keys and loss of funds. In this method, it is possible to enter privateKey or signatureId. PrivateKey should be used only for quick development on testnet versions of blockchain when there is no risk of losing funds. In production, <a href="https://github.com/tatumio/tatum-kms" target="_blank">Tatum KMS</a> should be used for the highest security standards, and signatureId should be present in the request. Alternatively, using the Tatum client library for supported languages. </p> operationId: NftDeployErc721 parameters: - description: "Type of Ethereum testnet. Defaults to ropsten. Valid only for ETH invocations." in: header name: x-testnet-type required: false schema: default: ethereum-ropsten type: string enum: - ethereum-ropsten - ethereum-rinkeby requestBody: content: application/json: schema: oneOf: - $ref: "#/components/schemas/DeployNftCelo" - $ref: "#/components/schemas/DeployNftCeloKMS" - $ref: "#/components/schemas/DeployNftTron" - $ref: "#/components/schemas/DeployNftTronKMS" - $ref: "#/components/schemas/DeployNft" - $ref: "#/components/schemas/DeployNftKMS" - $ref: "#/components/schemas/DeployNftFlowPK" - $ref: "#/components/schemas/DeployNftFlowMnemonic" - $ref: "#/components/schemas/DeployNftFlowKMS" required: true responses: 200: content: application/json: schema: oneOf: - $ref: "#/components/schemas/TransactionHashKMS" - $ref: "#/components/schemas/SignatureId" description: OK 400: &API400 content: application/json: schema: $ref: "#/components/schemas/Error400" description: Bad Request. Validation failed for the given object in the HTTP Body or Request parameters. 401: &API401 content: application/json: schema: oneOf: - $ref: "#/components/schemas/Error401NotActive" - $ref: "#/components/schemas/Error401Invalid" description: Unauthorized. Not valid or inactive subscription key present in the HTTP Header. 403: &API403 description: Forbidden. The request is authenticated, but it is not possible to required perform operation due to logical error or invalid permissions. content: application/json: schema: oneOf: - $ref: "#/components/schemas/Error403" 500: &API500 content: application/json: schema: $ref: "#/components/schemas/Error500" description: Internal server error. There was an error on the server during the processing of the request. security: - X-Api-Key: [ ] x-code-samples: summary: Deploy NFT Smart Contract. tags: - Blockchain / NFT /v3/nft/mint: post: description: | <h4>100 credits per API call on FLOW, 2 credits on another chains. Tatum covers the fee connected to the transaction costs in subscription credits for FLOW. This operation can be done on mainnet only for paid plans.</h4><br/> <p>Create one NFT Token and transfer it to destination account. Create and transfer any NFT token from smart contract defined in contractAddress. It is possible to add URL to the created token with a more detailed information about it.<br/><br/> Tatum now supports NFT these blockchains:<br/> <ul> <li><b>Ethereum</b></li> <li><b>Polygon (Matic)</b></li> <li><b>Kcs (KCS)</b></li> <li><b>Celo</b></li> <li><b>Solana</b></li> <li><b>Harmony.ONE</b></li> <li><b>Tron</b></li> <li><b>Flow</b></li> <li><b>Binance Smart Chain</b></li> </ul> <br/> For Solana, NFTs are not deployed, only minted right away. Newly created NFT creates new address on the blockchain and owner of the NFT owns with it's private key the account of the NFT. <br/> This operation works in two modes. First mode works just like other NFT endpoints. Every time the funds are transferred, the transaction must be signed with the corresponding private key. No one should ever send it's own private keys to the internet because there is a strong possibility of stealing keys and loss of funds. In this method, it is possible to enter privateKey or signatureId. PrivateKey should be used only for quick development on testnet versions of blockchain when there is no risk of losing funds. In production, <a href="https://github.com/tatumio/tatum-kms" target="_blank">Tatum KMS</a> should be used for the highest security standards, and signatureId should be present in the request. Alternatively, using the Tatum client library for supported languages. Second mode works without private key or signature id. Mint NFT requests use built-in smart contract, private key and token id which are provided by Tatum. You dont need to provide fromPrivateKey (or signatureId), contractAddress and tokenId fields to perform the mint NFT request. Performed request without fromPrivateKey or signatureId fields will be populated with following attributes: <ul> <li><b>fromPrivateKey</b> - a built-in private key connected to the address from which will be NFT transaction fees paid.</li> <li><b>tokenId</b> - a counter which starts from 0 and is increased for each NFT mint request by 1. The tokenId is provided per each chain and mainnet/testnet version of network.</li> <li><b>contractAddress</b> - represents Tatum built in smart contract address of the minted NFT.</li> </ul> The blockchain fee of the performed transaction is paid from the address connected with built-in private key and is debitted in form of credits. The credits are debitted only if NFT mint requests are performed with paid API key plan. We transform fee to the credits in accordance to the rates provided by the Tatum. It means if you perform mint NFT request with following body: <pre>{ "chain": "CELO", "to": "0xBC2eBA680EE50d685cc4Fe65f102AA70AfB27D3F", "url": "ipfs://QmXJJ6UF5WkF4WTJvsdhiA1etGwBLfpva7Vr9AudGMe3pj" }</pre> The fields contractAddress, fromPrivateKey and tokenId will be internally filled in following way: <pre>{ "chain": "CELO", "to": "0xBC2eBA680EE50d685cc4Fe65f102AA70AfB27D3F", "url": "ipfs://QmXJJ6UF5WkF4WTJvsdhiA1etGwBLfpva7Vr9AudGMe3pj", "fromPrivateKey": "{tatumBuiltInPrivateKey}", "tokenId": "{tatumBuiltInTokenId + 1}", "contractAddress": "0x45871ED5F15203C0ce791eFE5f4B5044833aE10e" }</pre> Keep in mind that your credit amount will be debitted accordingly to the rate of the selected blockchain and cost of transaction fees. We have prepared following smart contracts for minting without private key: <table> <tr> <th>Chain</th> <th>Testnet/Mainnet</th> <th>Address</th> <th>Smart contract address</th> </tr> <tr> <td>MATIC</td> <td>Testnet</td> <td>0x542b9ac4945a3836fd12ad98acbc76a0c8b743f5</td> <td>0xCd2AdA00c48A27FAa5Cc67F9A1ed55B89dDf7F77</td> </tr> <tr> <td>BSC</td> <td>Testnet</td> <td>0xc16ae5e8c985b906935a0cadf4e24f0400531883</td> <td>0xF73075aa67561791352fbEe8278115487Fd90ab6</td> </tr> <tr> <td>ONE</td> <td>Testnet</td> <td>0x8906f62d40293ddca77fdf6714c3f63265deddf0</td> <td>0x427ddbe3ad5e1e77e010c02e61e9bdef82dcaeea</td> </tr> <tr> <td>ETH</td> <td>Testnet</td> <td>0x51abC4c9e7BFfaA99bBE4dDC33d75067EBD0384F</td> <td>0xAe7D8842D0295B1f24a8842cBd5eB83Ae2fd0946</td> </tr> <tr> <td>CELO</td> <td>Testnet</td> <td>0xBC2eBA680EE50d685cc4Fe65f102AA70AfB27D3F</td> <td>0x45871ED5F15203C0ce791eFE5f4B5044833aE10e</td> </tr> <tr> <td>MATIC</td> <td>Mainnet</td> <td>0xcf9e127455d28e7362380aec1b92ddee8200b295</td> <td>0x6709bdda623af7eb152cb2fe2562ab7e031e564f</td> </tr> <tr> <td>KCS</td> <td>Mainnet</td> <td>0xcf9e127455d28e7362380aec1b92ddee8200b295</td> <td>0x6709bdda623af7eb152cb2fe2562ab7e031e564f</td> </tr> <tr> <td>BSC</td> <td>Mainnet</td> <td>0xcf9e127455d28e7362380aec1b92ddee8200b295</td> <td>0x6709bdda623af7eb152cb2fe2562ab7e031e564f</td> </tr> <tr> <td>ETH</td> <td>Mainnet</td> <td>0xcf9e127455d28e7362380aec1b92ddee8200b295</td> <td>0x789c00ed7ddd72a806dbac40df926df32fde3c2f</td> </tr> <tr> <td>ONE</td> <td>Mainnet</td> <td>0xcf9e127455d28e7362380aec1b92ddee8200b295</td> <td>0x6709bdda623af7eb152cb2fe2562ab7e031e564f</td> </tr> <tr> <td>CELO</td> <td>Mainnet</td> <td>0xcf9e127455d28e7362380aec1b92ddee8200b295</td> <td>0x6709bdda623af7eb152cb2fe2562ab7e031e564f</td> </tr> </table> To add ETH mainnet smart contract contact sales@tatum.io. If there will be a low amount of coins on any testnet address you are free to send coins to the address. In future we will provide also addresses and smart contracts for the mainnet version. </p> operationId: NftMintErc721 parameters: - description: "Type of Ethereum testnet. Defaults to ropsten. Valid only for ETH invocations." in: header name: x-testnet-type required: false schema: default: ethereum-ropsten type: string enum: - ethereum-ropsten - ethereum-rinkeby requestBody: content: application/json: schema: oneOf: - $ref: "#/components/schemas/MintNftCelo" - $ref: "#/components/schemas/MintNftKMSCelo" - $ref: "#/components/schemas/MintNftTron" - $ref: "#/components/schemas/MintNftKMSTron" - $ref: "#/components/schemas/MintNft" - $ref: "#/components/schemas/MintNftKMS" - $ref: "#/components/schemas/MintNftSolana" - $ref: "#/components/schemas/MintNftSolanaKMS" - $ref: "#/components/schemas/MintNftFlowPK" - $ref: "#/components/schemas/MintNftFlowMnemonic" - $ref: "#/components/schemas/MintNftFlowKMS" required: true responses: 200: content: application/json: schema: oneOf: - $ref: "#/components/schemas/TransactionHashKMS" - $ref: "#/components/schemas/FlowMintedResult" - $ref: "#/components/schemas/SolanaMintedResult" - $ref: "#/components/schemas/SignatureId" description: OK 400: <<: *API400 401: <<: *API401 403: description: Forbidden. The request is authenticated, but it is not possible to required perform operation due to logical error or invalid permissions. content: application/json: schema: oneOf: - $ref: "#/components/schemas/Error403Celo" 500: <<: *API500 security: - X-Api-Key: [ ] x-code-samples: summary: Mint NFT tags: - Blockchain / NFT /v3/nft/transaction: post: description: | <h4>100 credits per API call on FLOW, 2 credits on another chains. Tatum covers the fee connected to the transaction costs in subscription credits for FLOW. This operation can be done on mainnet only for paid plans.</h4><br/> <p>Transfer NFT Tokens from account to account. Transfer any NFT token from smart contract defined in contractAddress. Only 1 specific token with specified tokenId can be transfered. This method invokes ERC721 method safeTransfer() to transfer the token in case of ETH, Celo and BSC.<br/><br/> Tatum now supports NFT these blockchains:<br/> <ul> <li><b>Ethereum</b></li> <li><b>Polygon (Matic)</b></li> <li><b>Kcs (KCS)</b></li> <li><b>Flow</b></li> <li><b>Celo</b></li> <li><b>Harmony.ONE</b></li> <li><b>Tron</b></li> <li><b>Binance Smart Chain</b></li> <li><b>Algorand</b></li> <li><b>Solana</b></li> </ul> This operation needs the private key of the blockchain address. Every time the funds are transferred, the transaction must be signed with the corresponding private key. No one should ever send it's own private keys to the internet because there is a strong possibility of stealing keys and loss of funds. In this method, it is possible to enter privateKey or signatureId. PrivateKey should be used only for quick development on testnet versions of blockchain when there is no risk of losing funds. In production, <a href="https://github.com/tatumio/tatum-kms" target="_blank">Tatum KMS</a> should be used for the highest security standards, and signatureId should be present in the request. Alternatively, using the Tatum client library for supported languages. Algorand is unique a way that the receiving account should be ready before sending the NFT asset. To perform this, the receiving account should transfer the NFT asset with 0 amount to itself. During the process, it's using the same API as the main transaction: the only difference is that the "fromPrivateKey" should be the privateKey of the receiving account. </p> operationId: NftTransferErc721 parameters: - description: "Type of Ethereum testnet. Defaults to ropsten. Valid only for ETH invocations." in: header name: x-testnet-type required: false schema: default: ethereum-ropsten type: string enum: - ethereum-ropsten - ethereum-rinkeby requestBody: content: application/json: schema: oneOf: - $ref: "#/components/schemas/TransferNft" - $ref: "#/components/schemas/TransferNftCelo" - $ref: "#/components/schemas/TransferNftTron" - $ref: "#/components/schemas/TransferNftSolana" - $ref: "#/components/schemas/TransferNftFlowPK" - $ref: "#/components/schemas/TransferNftFlowMnemonic" - $ref: "#/components/schemas/TransferNftKMS" - $ref: "#/components/schemas/TransferNftKMSCelo" - $ref: "#/components/schemas/TransferNftKMSTron" - $ref: "#/components/schemas/TransferNftSolanaKMS" - $ref: "#/components/schemas/TransferNftFlowKMS" required: true responses: 200: content: application/json: schema: oneOf: - $ref: "#/components/schemas/TransactionHashKMS" - $ref: "#/components/schemas/SignatureId" description: OK 400: <<: *API400 401: <<: *API401 403: description: Forbidden. The request is authenticated, but it is not possible to required perform operation due to logical error or invalid permissions. content: application/json: schema: oneOf: - $ref: "#/components/schemas/Error403Celo" 500: <<: *API500 security: - X-Api-Key: [ ] x-code-samples: summary: Transfer NFT Token tags: - Blockchain / NFT /v3/nft/mint/batch: post: description: | <h4>100 credits per API call on FLOW, 2 credits on another chains. Tatum covers the fee connected to the transaction costs in subscription credits for FLOW. This operation can be done on mainnet only for paid plans.</h4><br/> <p>Create multiple NFT Tokens and transfer them to destination account. Create and transfer any NFT tokens from smart contract defined in contractAddress.<br/><br/> Tatum now supports NFT these blockchains:<br/> <ul> <li><b>Ethereum</b></li> <li><b>Polygon (Matic)</b></li> <li><b>Kcs (KCS)</b></li> <li><b>Celo</b></li> <li><b>Harmony.ONE</b></li> <li><b>Tron</b></li> <li><b>Flow</b></li> <li><b>Binance Smart Chain</b></li> </ul> This operation needs the private key of the blockchain address. Every time the funds are transferred, the transaction must be signed with the corresponding private key. No one should ever send it's own private keys to the internet because there is a strong possibility of stealing keys and loss of funds. In this method, it is possible to enter privateKey or signatureId. PrivateKey should be used only for quick development on testnet versions of blockchain when there is no risk of losing funds. In production, <a href="https://github.com/tatumio/tatum-kms" target="_blank">Tatum KMS</a> should be used for the highest security standards, and signatureId should be present in the request. Alternatively, using the Tatum client library for supported languages. </p> operationId: NftMintMultipleErc721 parameters: - description: "Type of Ethereum testnet. Defaults to ropsten. Valid only for ETH invocations." in: header name: x-testnet-type required: false schema: default: ethereum-ropsten type: string enum: - ethereum-ropsten - ethereum-rinkeby requestBody: content: application/json: schema: oneOf: - $ref: "#/components/schemas/MintMultipleNftCelo" - $ref: "#/components/schemas/MintMultipleNftKMSCelo" - $ref: "#/components/schemas/MintMultipleNftTron" - $ref: "#/components/schemas/MintMultipleNftKMSTron" - $ref: "#/components/schemas/MintMultipleNft" - $ref: "#/components/schemas/MintMultipleNftKMS" - $ref: "#/components/schemas/MintMultipleNftFlowPK" - $ref: "#/components/schemas/MintMultipleNftFlowMnemonic" - $ref: "#/components/schemas/MintMultipleNftFlowKMS" required: true responses: 200: content: application/json: schema: oneOf: - $ref: "#/components/schemas/TransactionHashKMS" - $ref: "#/components/schemas/FlowMintedMultipleResult" - $ref: "#/components/schemas/SignatureId" description: OK 400: <<: *API400 401: <<: *API401 403: description: Forbidden. The request is authenticated, but it is not possible to required perform operation due to logical error or invalid permissions. content: application/json: schema: oneOf: - $ref: "#/components/schemas/Error403Celo" 500: <<: *API500 security: - X-Api-Key: [ ] x-code-samples: summary: Mint NFT Multiple Tokens tags: - Blockchain / NFT /v3/nft/burn: post: description: | <h4>100 credits per API call on FLOW, 2 credits on another chains. Tatum covers the fee connected to the transaction costs in subscription credits for FLOW. This operation can be done on mainnet only for paid plans.</h4><br/> <p>Burn one NFT Token. This method destroys any NFT token from smart contract defined in contractAddress.<br/><br/> Tatum now supports NFT these blockchains:<br/> <ul> <li><b>Ethereum</b></li> <li><b>Polygon (Matic)</b></li> <li><b>Kcs (KCS)</b></li> <li><b>Celo</b></li> <li><b>Harmony.ONE</b></li> <li><b>Tron</b></li> <li><b>Flow</b></li> <li><b>Binance Smart Chain</b></li> <li><b>Algorand</b></li> </ul> This operation needs the private key of the blockchain address. Every time the funds are transferred, the transaction must be signed with the corresponding private key. No one should ever send it's own private keys to the internet because there is a strong possibility of stealing keys and loss of funds. In this method, it is possible to enter privateKey or signatureId. PrivateKey should be used only for quick development on testnet versions of blockchain when there is no risk of losing funds. In production, <a href="https://github.com/tatumio/tatum-kms" target="_blank">Tatum KMS</a> should be used for the highest security standards, and signatureId should be present in the request. Alternatively, using the Tatum client library for supported languages. </p> operationId: NftBurnErc721 parameters: - description: "Type of Ethereum testnet. Defaults to ropsten. Valid only for ETH invocations." in: header name: x-testnet-type required: false schema: default: ethereum-ropsten type: string enum: - ethereum-ropsten - ethereum-rinkeby requestBody: content: application/json: schema: oneOf: - $ref: "#/components/schemas/BurnNftCelo" - $ref: "#/components/schemas/BurnNftKMSCelo" - $ref: "#/components/schemas/BurnNftTron" - $ref: "#/components/schemas/BurnNftKMSTron" - $ref: "#/components/schemas/BurnNft" - $ref: "#/components/schemas/BurnNftKMS" - $ref: "#/components/schemas/BurnNftFlowPK" - $ref: "#/components/schemas/BurnNftFlowMnemonic" - $ref: "#/components/schemas/BurnNftFlowKMS" required: true responses: 200: content: application/json: schema: oneOf: - $ref: "#/components/schemas/TransactionHashKMS" - $ref: "#/components/schemas/SignatureId" description: OK 400: <<: *API400 401: <<: *API401 403: description: Forbidden. The request is authenticated, but it is not possible to required perform operation due to logical error or invalid permissions. content: application/json: schema: oneOf: - $ref: "#/components/schemas/Error403Celo" 500: <<: *API500 security: - X-Api-Key: [ ] x-code-samples: summary: Burn NFT tags: - Blockchain / NFT /v3/nft/mint/add: post: description: | <h4>2 credits.</h4><br/> <p>Add new minter of NFT Tokens. This method adds minter permission to new minter address.<br/><br/> Tatum now supports NFT these blockchains:<br/> <ul> <li><b>Ethereum</b></li> <li><b>Polygon (Matic)</b></li> <li><b>Kcs (KCS)</b></li> <li><b>Celo</b></li> <li><b>Harmony.ONE</b></li> <li><b>Binance Smart Chain</b></li> </ul> This operation needs the private key of the blockchain address. Every time the funds are transferred, the transaction must be signed with the corresponding private key. No one should ever send it's own private keys to the internet because there is a strong possibility of stealing keys and loss of funds. In this method, it is possible to enter privateKey or signatureId. PrivateKey should be used only for quick development on testnet versions of blockchain when there is no risk of losing funds. In production, <a href="https://github.com/tatumio/tatum-kms" target="_blank">Tatum KMS</a> should be used for the highest security standards, and signatureId should be present in the request. Alternatively, using the Tatum client library for supported languages. </p> operationId: NftAddMinter parameters: - description: "Type of Ethereum testnet. Defaults to ropsten. Valid only for ETH invocations." in: header name: x-testnet-type required: false schema: default: ethereum-ropsten type: string enum: - ethereum-ropsten - ethereum-rinkeby requestBody: content: application/json: schema: oneOf: - $ref: "#/components/schemas/AddNftMinter" - $ref: "#/components/schemas/AddNftMinterKMS" required: true responses: 200: content: application/json: schema: oneOf: - $ref: "#/components/schemas/TransactionHashKMS" - $ref: "#/components/schemas/SignatureId" description: OK 400: <<: *API400 401: <<: *API401 403: description: Forbidden. The request is authenticated, but it is not possible to required perform operation due to logical error or invalid permissions. content: application/json: schema: oneOf: - $ref: "#/components/schemas/Error403Celo" 500: <<: *API500 security: - X-Api-Key: [ ] x-code-samples: summary: Add NFT Minter tags: - Blockchain / NFT /v3/nft/royalty: put: description: | <h4>2 credits per API call.</h4><br/> <p>Update royalty cashback value for one NFT Token. This method updates the first royalty value of specific author for 1 token. If royalty value is set to 0, it will disable the royalty system for the token. Only from author's address of the royalty can change it's royalty value, not the owner of the token.<br/><br/> Tatum now supports NFT these blockchains:<br/> <ul> <li><b>Ethereum</b></li> <li><b>Polygon (Matic)</b></li> <li><b>Kcs (KCS)</b></li> <li><b>Celo</b></li> <li><b>Harmony.ONE</b></li> <li><b>Tron</b></li> <li><b>Binance Smart Chain</b></li> </ul> This operation needs the private key of the blockchain address. Every time the funds are transferred, the transaction must be signed with the corresponding private key. No one should ever send it's own private keys to the internet because there is a strong possibility of stealing keys and loss of funds. In this method, it is possible to enter privateKey or signatureId. PrivateKey should be used only for quick development on testnet versions of blockchain when there is no risk of losing funds. In production, <a href="https://github.com/tatumio/tatum-kms" target="_blank">Tatum KMS</a> should be used for the highest security standards, and signatureId should be present in the request. Alternatively, using the Tatum client library for supported languages. </p> operationId: NftUpdateCashbackErc721 parameters: - description: "Type of Ethereum testnet. Defaults to ropsten. Valid only for ETH invocations." in: header name: x-testnet-type required: false schema: default: ethereum-ropsten type: string enum: - ethereum-ropsten - ethereum-rinkeby requestBody: content: application/json: schema: oneOf: - $ref: "#/components/schemas/UpdateCashbackValueForAuthorNftCelo" - $ref: "#/components/schemas/UpdateCashbackValueForAuthorNftKMSCelo" - $ref: "#/components/schemas/UpdateCashbackValueForAuthorNftTron" - $ref: "#/components/schemas/UpdateCashbackValueForAuthorNftKMSTron" - $ref: "#/components/schemas/UpdateCashbackValueForAuthorNft" - $ref: "#/components/schemas/UpdateCashbackValueForAuthorNftKMS" required: true responses: 200: content: application/json: schema: oneOf: - $ref: "#/components/schemas/TransactionHashKMS" - $ref: "#/components/schemas/SignatureId" description: OK 400: <<: *API400 401: <<: *API401 403: description: Forbidden. The request is authenticated, but it is not possible to required perform operation due to logical error or invalid permissions. content: application/json: schema: oneOf: - $ref: "#/components/schemas/Error403Celo" 500: <<: *API500 security: - X-Api-Key: [ ] x-code-samples: summary: Update Royalty NFT tags: - Blockchain / NFT /v3/nft/transaction/{chain}/{address}/{tokenAddress}: get: description: "<h4>1 credit per API call.</h4><br/><p>Get NFT transactions by address. This includes incoming and outgoing transactions for the address.</p>" operationId: NftGetTransactionByAddress parameters: - description: "Blockchain to work with" in: path name: chain required: true schema: type: string enum: - CELO - ETH - MATIC example: CELO - description: "Account address" in: path name: address required: true schema: type: string example: "0x8ce4e40889a13971681391aad29e88efaf91f784" - description: "Token address" in: path name: tokenAddress required: true schema: type: string example: "0x1ce4e40889a13971681391aad29e88efaf91f784" - description: Max number of items per page is 50. in: query name: pageSize schema: type: number example: 10 maximum: 50 minimum: 1 required: true - description: Offset to obtain next page of the data. in: query name: offset schema: type: number example: 0 - description: Transactions from this block onwords will be included. in: query name: from schema: type: number minimum: 0 example: 1087623 - description: Transactions up to this block will be included. in: query name: to schema: type: number minimum: 0 example: 1087823 responses: 200: content: application/json: schema: type: array items: oneOf: - $ref: "#/components/schemas/NftTx" description: OK 400: <<: *API400 401: <<: *API401 500: <<: *API500 security: - X-Api-Key: [ ] x-code-samples: summary: Get NFT transactions by address tags: - Blockchain / NFT /v3/nft/transaction/tokenId/{chain}/{tokenAddress}/{tokenId}: get: description: "<h4>1 credit per API call.</h4><br/><p>Get NFT transactions by token. This includes incoming and outgoing transactions for the token.</p>" operationId: NftGetTransactionByToken parameters: - description: "Blockchain to work with" in: path name: chain required: true schema: type: string enum: - CELO - ETH - MATIC example: CELO - description: "NFT Token ID" in: path name: tokenId required: true schema: type: integer minimum: 0 example: 1 - description: "Token address" in: path name: tokenAddress required: true schema: type: string example: "0x1ce4e40889a13971681391aad29e88efaf91f784" - description: Max number of items per page is 50. in: query name: pageSize schema: type: number example: 10 maximum: 50 minimum: 1 required: true - description: Offset to obtain next page of the data. in: query name: offset schema: type: number example: 0 - description: Transactions from this block onwords will be included. in: query name: from schema: type: number minimum: 0 example: 1087623 - description: Transactions up to this block will be included. in: query name: to schema: type: number minimum: 0 example: 1087823 responses: 200: content: application/json: schema: type: array items: oneOf: - $ref: "#/components/schemas/NftTx" description: OK 400: <<: *API400 401: <<: *API401 500: <<: *API500 security: - X-Api-Key: [ ] x-code-samples: summary: Get NFT transactions by token tags: - Blockchain / NFT /v3/nft/address/{chain}/{hash}: get: description: | <h4>1 credit per API call.</h4><br/> <p>Get NFT contract address from deploy transaction. This method is deprecated, use <a href="#operation/SCGetContractAddress">Get contract address</a> instead.</p> deprecated: true operationId: NftGetContractAddress parameters: - description: Blockchain to work with in: path name: chain required: true schema: type: string enum: - ETH - ONE - CELO - TRON - FLOW - MATIC - KCS - BSC - description: "Transaction hash" in: path name: hash required: true schema: type: string example: "0xe6e7340394958674cdf8606936d292f565e4ecc476aaa8b258ec8a141f7c75d7" - description: "Type of Ethereum testnet. Defaults to ropsten. Valid only for ETH invocations." in: header name: x-testnet-type required: false schema: default: ethereum-ropsten type: string enum: - ethereum-ropsten - ethereum-rinkeby responses: 200: content: application/json: schema: type: object properties: contractAddress: type: string description: Address of the NFT token. example: "0xc21C81ef03f98898Fb155E00C364e8a7b9D158b8" description: OK 400: <<: *API400 401: <<: *API401 403: description: Forbidden. The request is authenticated, but it is not possible to required perform operation due to logical error or invalid permissions. content: application/json: schema: oneOf: - $ref: "#/components/schemas/Error403TxNotFound" 500: <<: *API500 security: - X-Api-Key: [ ] x-code-samples: summary: Get contract address from transaction tags: - Blockchain / NFT /v3/nft/transaction/{chain}/{hash}: get: description: "<h4>1 credit per API call.</h4><br/><p>Get NFT transaction by transaction hash.</p>" operationId: NftGetTransactErc721 parameters: - description: Blockchain to work with in: path name: chain required: true schema: type: string enum: - ETH - MATIC - KCS - ONE - CELO - TRON - FLOW - BSC - description: "Transaction hash" in: path name: hash required: true schema: type: string example: "0xe6e7340394958674cdf8606936d292f565e4ecc476aaa8b258ec8a141f7c75d7" - description: "Type of Ethereum testnet. Defaults to ropsten. Valid only for ETH invocations." in: header name: x-testnet-type required: false schema: default: ethereum-ropsten type: string enum: - ethereum-ropsten - ethereum-rinkeby responses: 200: content: application/json: schema: oneOf: - $ref: "#/components/schemas/CeloTx" - $ref: "#/components/schemas/EthTx" - $ref: "#/components/schemas/FlowTx" description: OK 400: <<: *API400 401: <<: *API401 403: description: Forbidden. The request is authenticated, but it is not possible to required perform operation due to logical error or invalid permissions. content: application/json: schema: oneOf: - $ref: "#/components/schemas/Error403TxNotFound" 500: <<: *API500 security: - X-Api-Key: [ ] x-code-samples: summary: Get Transaction tags: - Blockchain / NFT /v3/nft/address/balance/{chain}/{address}: get: description: | <h4>1 credit per API call + 5 credits for each owned token.</h4><br/><p>Get NFTs on address. Returns all NFTs this address holds.</p> operationId: NftGetTokensByAddressErc721 parameters: - description: Blockchain to work with in: path name: chain required: true schema: type: string example: ETH enum: - ALGO - CELO - MATIC - ETH - description: "Account address" in: path name: address required: true schema: type: string example: "NTAESFCB3WOD7SAOL42KSPVARLB3JFA3MNX3AESWHYVT2RMYDVZI6YLG4Y" responses: 200: content: application/json: schema: type: array items: type: object required: - contractAddress - balances properties: contractAddress: type: string example: "43821281" description: Contract address of the NFT. In Algorand case, it will be asset-id.. balances: type: array items: type: string description: Amount of tokens available. It is always 1 or 0 for NFTs on Algorand, tokenId for EVM based chains like CELO or MATIC. example: "1" metadata: type: array items: type: object required: - tokenID properties: tokenId: description: TokenID of the NFT token owned by this address. example: "1" type: string url: description: Metadata URL of the TokenID. This data don't have to be present, safest way (if not present) is to obtain them from the NFT Contract.tokenURI() method call. example: "ipfs://QmXFpaS3S7CkLZvihLFA9JbawKdqhjg8dJeDkPntmkD2Pc" type: string metadata: type: object description: Metadata scheme obtained from the url. This data don't have to be present, safest way (if not present) is to obtain them from the NFT Contract.tokenURI() method call. example: {"name": "Example NFT name", "description": "Example NFT description", "image": "ipfs://QmP4R7ACZ7JRQ6sLdmnPHqjWEXxzdnPvhAV2f6RnQ8uxJ6"} description: OK 400: <<: *API400 401: <<: *API401 403: description: Forbidden. The request is authenticated, but it is not possible to required perform operation due to logical error or invalid permissions. content: application/json: schema: $ref: "#/components/schemas/Error403" 500: <<: *API500 security: - X-Api-Key: [ ] x-code-samples: summary: Get NFT tokens for address tags: - Blockchain / NFT /v3/nft/balance/{chain}/{contractAddress}/{address}: get: description: | <h4>1 credit per API call.</h4><br/><p>Get NFTs on Account. Returns tokenIDs of tokens Account holds. This method is valid only for tokens deplyed using Tatum API - it reads data from the smart contract.</p> operationId: NftGetBalanceErc721 parameters: - description: Blockchain to work with in: path name: chain required: true schema: type: string enum: - ETH - MATIC - KCS - ONE - CELO - TRON - FLOW - BSC - description: "Account address" in: path name: address required: true schema: type: string example: "0x3223AEB8404C7525FcAA6C512f91e287AE9FfE7B" - description: "NFT contract address" in: path name: contractAddress required: true schema: type: string example: "0x94Ce79B9F001E25BBEbE7C01998A78F7B27D1326" - description: "Type of Ethereum testnet. Defaults to ropsten. Valid only for ETH invocations." in: header name: x-testnet-type required: false schema: default: ethereum-ropsten type: string enum: - ethereum-ropsten - ethereum-rinkeby responses: 200: content: application/json: schema: type: array items: type: string description: Token ID. example: "10" description: OK 400: <<: *API400 401: <<: *API401 403: description: Forbidden. The request is authenticated, but it is not possible to required perform operation due to logical error or invalid permissions. content: application/json: schema: $ref: "#/components/schemas/Error403Celo" 500: <<: *API500 security: - X-Api-Key: [ ] x-code-samples: summary: Get NFT Account balance tags: - Blockchain / NFT /v3/nft/provenance/{chain}/{contractAddress}/{tokenId}: get: description: "<h4>1 credit per API call.</h4><br/><p>Get NFT token provenance data, valid only for provenance contract.</p>" operationId: NftGetProvenanceDataErc721 parameters: - description: Blockchain to work with in: path name: chain required: true schema: type: string enum: - ETH - MATIC - KCS - ONE - CELO - BSC - description: "Token ID" in: path name: tokenId required: true schema: type: string example: "1" maxLength: 32 - description: "NFT contract address" in: path name: contractAddress required: true schema: type: string example: "0x94Ce79B9F001E25BBEbE7C01998A78F7B27D1326" - description: "Type of Ethereum testnet. Defaults to ropsten. Valid only for ETH invocations." in: header name: x-testnet-type required: false schema: