Build a peer-to-peer NFT marketplace and allow your customers to sell and buy assets. When an asset is sold, the creator is automatically paid, the asset is instantly transferred to the buyer, and you as the owner of the marketplace automatically receive a percentage of the transaction.
Each marketplace-related API supports its own set of the blockchains. The list of the supported blockchains is provided in the API description further in this section.
2 credits per API call
Deploy an NFT marketplace smart contract on the blockchain. With a deployed marketplace smart contract, you and your customers can create new listings for assets such as non-fungible tokens and combinations of token types as described by the ERC-721 and ERC-1155 standards on the Ethereum blockchain or by the equivalent standards on the other blockchains. As the marketplace operator, you can set a fee as a percentage of the asset price that will be paid on top of the asset price.
The purchase process looks like the following:
buyAssetFromListing()
method is called against the marketplace smart contract) and send the required amount of the native assets to the marketplace smart contract.buyAssetFromListing()
method is called against the marketplace smart contract).This API is supported for the following blockchains:
Signing a transaction
When deploying an NFT marketplace smart contract, you are charged a fee for the transaction, and you must sign the transaction with the private key of the blockchain address from which the fee will be deducted.
Providing the private key in the API is not a secure way of signing transactions, because the private key can be stolen or exposed. Your private keys should never leave your security perimeter. You should use the private keys only for testing a solution you are building on the testnet of a blockchain.
For signing transactions on the mainnet, we strongly recommend that you use the Tatum Key Management System (KMS) and provide the signature ID instead of the private key in the API. Alternatively, you can use the Tatum JavaScript client.
OK
Bad Request. Validation failed for the given object in the HTTP Body or Request parameters.
Unauthorized. Not valid or inactive subscription key present in the HTTP Header.
Forbidden. The request is authenticated, but it is not possible to perform the required operation due to a logical error or invalid permissions.
Internal server error. There was an error on the server while processing the request.
{- "chain": "ETH",
- "feeRecipient": "0x687422eEA2cB73B5d3e242bA5456b782919AFc85",
- "marketplaceFee": 150,
- "fromPrivateKey": "0x05e150c73f1920ec14caa1e0b6aa09940899678051a78542840c2668ce5080c2"
}
{- "txId": "c83f8818db43d9ba4accfe454aa44fc33123d47a4f89d47b314d6748eb0e9bc9"
}
2 credits per API call
Update an NFT marketplace on Solana.
You can update it only if you are the marketplace operator.
This API is in alpha and is supported only for the mainnet on Solana.
Signing a transaction
When updating an NFT marketplace, you are charged a fee for the transaction, and you must sign the transaction with the private key of the blockchain address from which the fee will be deducted.
Providing the private key in the API is not a secure way of signing transactions, because the private key can be stolen or exposed. Your private keys should never leave your security perimeter. You should use the private keys only for testing a solution you are building on the testnet of a blockchain.
For signing transactions on the mainnet, we strongly recommend that you use the Tatum Key Management System (KMS) and provide the signature ID instead of the private key in the API. Alternatively, you can use the Tatum JavaScript client.
OK
Bad Request. Validation failed for the given object in the HTTP Body or Request parameters.
Unauthorized. Not valid or inactive subscription key present in the HTTP Header.
Forbidden. The request is authenticated, but it is not possible to perform the required operation due to a logical error or invalid permissions.
Internal server error. There was an error on the server while processing the request.
{- "chain": "SOL",
- "contractAddress": "FZAS4mtPvswgVxbpc117SqfNgCDLTCtk5CoeAtt58FWU",
- "from": "FZAS4mtPvswgVxbpc117SqfNgCDLTCtk5CoeAtt58FWU",
- "fromPrivateKey": "zgsAKfjuXrAxEyuYRxbbxPM3rdsPbJPnGreaGMbcdUApJ6wHnCqQnf9b1RNPdeZxsRMkezh4VgXQ7YrbpndGtEv"
}
{- "txId": "c83f8818db43d9ba4accfe454aa44fc33123d47a4f89d47b314d6748eb0e9bc9"
}
2 credits per API call
Create a new listing for an asset on the NFT marketplace. The listing can be offered for the native blockchain assets (for example, ETH, MATIC, and so on) or for any fungible tokens.
After the listing is created, allow the marketplace smart contract to transfer the asset that you are selling.
You can create a listing only for an existing asset that you own (you must be the owner of the asset).
This API is supported for the following blockchains:
A known issue on Harmony
On Harmony, when you are viewing a transaction in the Harmony Blockchain Explorer, the transaction status may be displayed as the following:
Error reverted:x0
This is a known issue with the Harmony Blockchain Explorer. This status does not mean that the transaction failed. You can safely ignore it.
The "execution reverted" message
When making this API call, you may get the following message:
Although one or more Error Occurred [execution reverted] Contract Execution Completed
This message is a result of the marketplace version check and has no impact on completing the API call. You can safely ignore it.
Signing a transaction
When creating a new listing on the NFT marketplace, you are charged a fee for the transaction, and you must sign the transaction with the private key of the blockchain address from which the fee will be deducted.
Providing the private key in the API is not a secure way of signing transactions, because the private key can be stolen or exposed. Your private keys should never leave your security perimeter. You should use the private keys only for testing a solution you are building on the testnet of a blockchain.
For signing transactions on the mainnet, we strongly recommend that you use the Tatum Key Management System (KMS) and provide the signature ID instead of the private key in the API. Alternatively, you can use the Tatum JavaScript client.
OK
Bad Request. Validation failed for the given object in the HTTP Body or Request parameters.
Unauthorized. Not valid or inactive subscription key present in the HTTP Header.
Forbidden. The request is authenticated, but it is not possible to perform the required operation due to a logical error or invalid permissions.
Internal server error. There was an error on the server while processing the request.
{- "chain": "ETH",
- "contractAddress": "0x687422eEA2cB73B5d3e242bA5456b782919AFc85",
- "nftAddress": "0x687422eEA2cB73B5d3e242bA5456b782919AFc85",
- "seller": "0x687422eEA2cB73B5d3e242bA5456b782919AFc85",
- "listingId": "string",
- "tokenId": "100000",
- "price": "100000",
- "isErc721": true,
- "fromPrivateKey": "0x05e150c73f1920ec14caa1e0b6aa09940899678051a78542840c2668ce5080c2"
}
{- "txId": "c83f8818db43d9ba4accfe454aa44fc33123d47a4f89d47b314d6748eb0e9bc9"
}
2 credits per API call
Buy an asset listed on the NFT marketplace.
You can buy the asset either for the native blockchain currency (for example, ETH, MATIC, and so on) or for the fungible tokens of the blockchain.
amount
request body parameter).This API is supported for the following blockchains:
The "execution reverted" message
When making this API call, you may get the following message:
Although one or more Error Occurred [execution reverted] Contract Execution Completed
This message is a result of the marketplace version check and has no impact on completing the API call. You can safely ignore it.
Signing a transaction
When buying an asset on the NFT marketplace, you are charged a fee for the transaction, and you must sign the transaction with the private key of the blockchain address from which the fee will be deducted.
Providing the private key in the API is not a secure way of signing transactions, because the private key can be stolen or exposed. Your private keys should never leave your security perimeter. You should use the private keys only for testing a solution you are building on the testnet of a blockchain.
For signing transactions on the mainnet, we strongly recommend that you use the Tatum Key Management System (KMS) and provide the signature ID instead of the private key in the API. Alternatively, you can use the Tatum JavaScript client.
chain required | string The blockchain to work with |
contractAddress required | string = 42 characters The blockchain address of the marketplace smart contract |
listingId required | string [ 1 .. 200 ] characters The ID of the listing with the asset that you want to buy |
fromPrivateKey required | string = 66 characters The private key of the blockchain address from which the fee will be deducted |
amount | string^[+]?((\d+(\.\d*)?)|(\.\d+))$ (Only if you pay with the native blockchain currency) The price of the asset that you want to buy plus the marketplace fee. Do not use if you pay with fungible tokens. |
erc20Address | string = 42 characters (Only if you pay with the fungible tokens) The blockchain address of the fungible tokens. Do not use if you pay with the native blockchain currency. |
buyer | string = 42 characters (Only if you want to buy the asset on behalf of someone else and this person wants to pay with the fungible tokens; for example, for buying the asset from a custodial wallet address) The blockchain address of the buyer on whose behalf you are buying the asset |
nonce | number The nonce to be set to the transaction; if not present, the last known nonce will be used |
object (CustomFee) The custom defined fee; if not present, will be calculated automatically | |
OK
Bad Request. Validation failed for the given object in the HTTP Body or Request parameters.
Unauthorized. Not valid or inactive subscription key present in the HTTP Header.
Forbidden. The request is authenticated, but it is not possible to perform the required operation due to a logical error or invalid permissions.
Internal server error. There was an error on the server while processing the request.
{- "chain": "ETH",
- "contractAddress": "0x687422eEA2cB73B5d3e242bA5456b782919AFc85",
- "listingId": "string",
- "fromPrivateKey": "0x05e150c73f1920ec14caa1e0b6aa09940899678051a78542840c2668ce5080c2"
}
{- "txId": "c83f8818db43d9ba4accfe454aa44fc33123d47a4f89d47b314d6748eb0e9bc9"
}
2 credits per API call
Cancel the selling of an asset on the NFT marketplace.
You can cancel the selling only if you are the seller of the asset or the marketplace operator. Once the selling is canceled, the asset is returned to the seller.
You cannot cancel the selling if the asset has already been purchased.
This API is supported for the following blockchains:
The "execution reverted" message
When making this API call, you may get the following message:
Although one or more Error Occurred [execution reverted] Contract Execution Completed
This message is a result of the marketplace version check and has no impact on completing the API call. You can safely ignore it.
Signing a transaction
When cancelling the selling of an asset, you are charged a fee for the transaction, and you must sign the transaction with the private key of the blockchain address from which the fee will be deducted.
Providing the private key in the API is not a secure way of signing transactions, because the private key can be stolen or exposed. Your private keys should never leave your security perimeter. You should use the private keys only for testing a solution you are building on the testnet of a blockchain.
For signing transactions on the mainnet, we strongly recommend that you use the Tatum Key Management System (KMS) and provide the signature ID instead of the private key in the API. Alternatively, you can use the Tatum JavaScript client.
OK
Bad Request. Validation failed for the given object in the HTTP Body or Request parameters.
Unauthorized. Not valid or inactive subscription key present in the HTTP Header.
Forbidden. The request is authenticated, but it is not possible to perform the required operation due to a logical error or invalid permissions.
Internal server error. There was an error on the server while processing the request.
{- "chain": "ETH",
- "contractAddress": "0x687422eEA2cB73B5d3e242bA5456b782919AFc85",
- "listingId": "string",
- "fromPrivateKey": "0x05e150c73f1920ec14caa1e0b6aa09940899678051a78542840c2668ce5080c2"
}
{- "txId": "c83f8818db43d9ba4accfe454aa44fc33123d47a4f89d47b314d6748eb0e9bc9"
}
1 credit per API call
Get the open, sold, or cancelled listings from the NFT marketplace.
This API is supported for the following blockchains:
OK
Bad Request. Validation failed for the given object in the HTTP Body or Request parameters.
Unauthorized. Not valid or inactive subscription key present in the HTTP Header.
Forbidden. The request is authenticated, but it is not possible to required perform operation due to logical error or invalid permissions.
Internal server error. There was an error on the server while processing the request.
[- "12345"
]
1 credit per API call
Get information about a specific listing on the NFT marketplace.
This API is supported for the following blockchains:
OK
Bad Request. Validation failed for the given object in the HTTP Body or Request parameters.
Unauthorized. Not valid or inactive subscription key present in the HTTP Header.
Forbidden. The request is authenticated, but it is not possible to required perform operation due to logical error or invalid permissions.
Internal server error. There was an error on the server while processing the request.
{- "amount": "1",
- "buyer": "0xc21C81ef03f98898Fb155E00C364e8a7b9D158b8",
- "erc20Address": "0xc21C81ef03f98898Fb155E00C364e8a7b9D158b8",
- "isErc721": true,
- "listingId": "12345",
- "nftAddress": "0xc21C81ef03f98898Fb155E00C364e8a7b9D158b8",
- "price": "1.234",
- "seller": "0xc21C81ef03f98898Fb155E00C364e8a7b9D158b8",
- "state": "1"
}
1 credit per API call
Get information about an NFT marketplace on Solana.
This API is in alpha and is supported only for the mainnet on Solana.
OK
Bad Request. Validation failed for the given object in the HTTP Body or Request parameters.
Unauthorized. Not valid or inactive subscription key present in the HTTP Header.
Forbidden. The request is authenticated, but it is not possible to required perform operation due to logical error or invalid permissions.
Internal server error. There was an error on the server while processing the request.
{- "feeAccount": "FZAS4mtPvswgVxbpc117SqfNgCDLTCtk5CoeAtt58FWU",
- "treasuryAccount": "FZAS4mtPvswgVxbpc117SqfNgCDLTCtk5CoeAtt58FWU",
- "authority": "FZAS4mtPvswgVxbpc117SqfNgCDLTCtk5CoeAtt58FWU",
- "creator": "FZAS4mtPvswgVxbpc117SqfNgCDLTCtk5CoeAtt58FWU",
- "marketplaceFee": 150,
- "treasuryMint": "FZAS4mtPvswgVxbpc117SqfNgCDLTCtk5CoeAtt58FWU",
- "treasuryWithdrawalDestination": "FZAS4mtPvswgVxbpc117SqfNgCDLTCtk5CoeAtt58FWU",
- "feeWithdrawalDestination": "FZAS4mtPvswgVxbpc117SqfNgCDLTCtk5CoeAtt58FWU",
- "requiresSignOff": true,
- "canChangeSalePrice": true
}
1 credit per API call
Get the NFT marketplace fee.
This API is supported for the following blockchains:
OK
Bad Request. Validation failed for the given object in the HTTP Body or Request parameters.
Unauthorized. Not valid or inactive subscription key present in the HTTP Header.
Forbidden. The request is authenticated, but it is not possible to required perform operation due to logical error or invalid permissions.
Internal server error. There was an error on the server while processing the request.
2.25
1 credit per API call
Get the recipient of the NFT marketplace fee.
This API is supported for the following blockchains:
OK
Bad Request. Validation failed for the given object in the HTTP Body or Request parameters.
Unauthorized. Not valid or inactive subscription key present in the HTTP Header.
Forbidden. The request is authenticated, but it is not possible to required perform operation due to logical error or invalid permissions.
Internal server error. There was an error on the server while processing the request.
{- "address": "0xe6e7340394958674cdf8606936d292f565e4ecc4"
}
2 credits per API call
Update the recipient of the NFT marketplace fee.
You can update the fee recipient only if you are the marketplace operator.
This API is supported for the following blockchains:
Signing a transaction
When updating the recipient of the NFT marketplace fee, you are charged a fee for the transaction, and you must sign the transaction with the private key of the blockchain address from which the fee will be deducted.
Providing the private key in the API is not a secure way of signing transactions, because the private key can be stolen or exposed. Your private keys should never leave your security perimeter. You should use the private keys only for testing a solution you are building on the testnet of a blockchain.
For signing transactions on the mainnet, we strongly recommend that you use the Tatum Key Management System (KMS) and provide the signature ID instead of the private key in the API. Alternatively, you can use the Tatum JavaScript client.
OK
Bad Request. Validation failed for the given object in the HTTP Body or Request parameters.
Unauthorized. Not valid or inactive subscription key present in the HTTP Header.
Forbidden. The request is authenticated, but it is not possible to perform the required operation due to a logical error or invalid permissions.
Internal server error. There was an error on the server while processing the request.
{- "chain": "ETH",
- "contractAddress": "0x687422eEA2cB73B5d3e242bA5456b782919AFc85",
- "feeRecipient": "0x687422eEA2cB73B5d3e242bA5456b782919AFc85",
- "fromPrivateKey": "0x05e150c73f1920ec14caa1e0b6aa09940899678051a78542840c2668ce5080c2"
}
{- "txId": "c83f8818db43d9ba4accfe454aa44fc33123d47a4f89d47b314d6748eb0e9bc9"
}
2 credits per API call
Update the NFT marketplace fee.
You can update the marketplace fee only if you are the marketplace operator.
This API is supported for the following blockchains:
Signing a transaction
When updating the NFT marketplace fee, you are charged a fee for the transaction, and you must sign the transaction with the private key of the blockchain address from which the fee will be deducted.
Providing the private key in the API is not a secure way of signing transactions, because the private key can be stolen or exposed. Your private keys should never leave your security perimeter. You should use the private keys only for testing a solution you are building on the testnet of a blockchain.
For signing transactions on the mainnet, we strongly recommend that you use the Tatum Key Management System (KMS) and provide the signature ID instead of the private key in the API. Alternatively, you can use the Tatum JavaScript client.
OK
Bad Request. Validation failed for the given object in the HTTP Body or Request parameters.
Unauthorized. Not valid or inactive subscription key present in the HTTP Header.
Forbidden. The request is authenticated, but it is not possible to perform the required operation due to a logical error or invalid permissions.
Internal server error. There was an error on the server while processing the request.
{- "chain": "ETH",
- "contractAddress": "0x687422eEA2cB73B5d3e242bA5456b782919AFc85",
- "marketplaceFee": 150,
- "fromPrivateKey": "0x05e150c73f1920ec14caa1e0b6aa09940899678051a78542840c2668ce5080c2"
}
{- "txId": "c83f8818db43d9ba4accfe454aa44fc33123d47a4f89d47b314d6748eb0e9bc9"
}
2 credits per API call
Withdraw funds from the NFT marketplace fee account on Solana.
You can withdraw the funds only if you are the marketplace fee recipient.
This API is in alpha and is supported only for the mainnet on Solana.
Signing a transaction
When withdrawing the funds, you are charged a fee for the transaction, and you must sign the transaction with the private key of the blockchain address from which the fee will be deducted.
Providing the private key in the API is not a secure way of signing transactions, because the private key can be stolen or exposed. Your private keys should never leave your security perimeter. You should use the private keys only for testing a solution you are building on the testnet of a blockchain.
For signing transactions on the mainnet, we strongly recommend that you use the Tatum Key Management System (KMS) and provide the signature ID instead of the private key in the API. Alternatively, you can use the Tatum JavaScript client.
OK
Bad Request. Validation failed for the given object in the HTTP Body or Request parameters.
Unauthorized. Not valid or inactive subscription key present in the HTTP Header.
Forbidden. The request is authenticated, but it is not possible to perform the required operation due to a logical error or invalid permissions.
Internal server error. There was an error on the server while processing the request.
{- "chain": "SOL",
- "contractAddress": "FZAS4mtPvswgVxbpc117SqfNgCDLTCtk5CoeAtt58FWU",
- "from": "FZAS4mtPvswgVxbpc117SqfNgCDLTCtk5CoeAtt58FWU",
- "amount": "100000",
- "fromPrivateKey": "zgsAKfjuXrAxEyuYRxbbxPM3rdsPbJPnGreaGMbcdUApJ6wHnCqQnf9b1RNPdeZxsRMkezh4VgXQ7YrbpndGtEv"
}
{- "txId": "c83f8818db43d9ba4accfe454aa44fc33123d47a4f89d47b314d6748eb0e9bc9"
}
2 credits per API call
Withdraw funds from the NFT marketplace treasury account on Solana.
You can withdraw the funds only if you are the marketplace fee recipient.
This API is in alpha and is supported only for the mainnet on Solana.
Signing a transaction
When withdrawing the funds, you are charged a fee for the transaction, and you must sign the transaction with the private key of the blockchain address from which the fee will be deducted.
Providing the private key in the API is not a secure way of signing transactions, because the private key can be stolen or exposed. Your private keys should never leave your security perimeter. You should use the private keys only for testing a solution you are building on the testnet of a blockchain.
For signing transactions on the mainnet, we strongly recommend that you use the Tatum Key Management System (KMS) and provide the signature ID instead of the private key in the API. Alternatively, you can use the Tatum JavaScript client.
OK
Bad Request. Validation failed for the given object in the HTTP Body or Request parameters.
Unauthorized. Not valid or inactive subscription key present in the HTTP Header.
Forbidden. The request is authenticated, but it is not possible to perform the required operation due to a logical error or invalid permissions.
Internal server error. There was an error on the server while processing the request.
{- "chain": "SOL",
- "contractAddress": "FZAS4mtPvswgVxbpc117SqfNgCDLTCtk5CoeAtt58FWU",
- "from": "FZAS4mtPvswgVxbpc117SqfNgCDLTCtk5CoeAtt58FWU",
- "amount": "100000",
- "fromPrivateKey": "zgsAKfjuXrAxEyuYRxbbxPM3rdsPbJPnGreaGMbcdUApJ6wHnCqQnf9b1RNPdeZxsRMkezh4VgXQ7YrbpndGtEv"
}
{- "txId": "c83f8818db43d9ba4accfe454aa44fc33123d47a4f89d47b314d6748eb0e9bc9"
}