Fungible tokens are interchangeable and are used as a blockchain representation of the currency. Fungible tokens are described by the ERC-20 standard on the Ethereum blockchain or by the equivalent standard on the other blockchains.
Each API related to fungible tokens supports its own set of the blockchains. The list of the supported blockchains is provided in the operation description further in this section.
2 credits per API call
Deploy a fungible token smart contract on the blockchain. In a deployed smart contract, you can mint and burn fungible tokens. The whole supply of fungible tokens (the supply
parameter in the request body) will be transferred to the specified blockchain address (the address
parameter in the request body).
Smart contracts are standardized and audited.
This API is supported for the following blockchains:
You can review the code of a deployed smart contract here.
Signing a transaction
When deploying a fungible token 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 required perform operation due to logical error or invalid permissions.
Internal server error. There was an error on the server during the processing of the request.
{- "chain": "ETH",
- "symbol": "ERC_SYMBOL",
- "name": "MyERC20",
- "supply": "10000000",
- "digits": 18,
- "address": "0xa0Ca9FF38Bad06eBe64f0fDfF279cAE35129F5C6",
- "fromPrivateKey": "0x05e150c73f1920ec14caa1e0b6aa09940899678051a78542840c2668ce5080c2"
}
{- "txId": "c83f8818db43d9ba4accfe454aa44fc33123d47a4f89d47b314d6748eb0e9bc9"
}
2 credits per API call
Create new fungible tokens in the smart contract (the contractAddress
parameter in the request body) and transfer them to the specified blockchain address (the to
parameter in the request body). You can mint new fungible tokens only if the current supply of tokens in the smart contract is lower than the total supply set for this contract.
This API is supported for the following blockchains:
Signing a transaction
When minting fungible tokens, 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 required perform operation due to logical error or invalid permissions.
Internal server error. There was an error on the server during the processing of the request.
{- "chain": "ETH",
- "amount": "100000",
- "to": "0x687422eEA2cB73B5d3e242bA5456b782919AFc85",
- "contractAddress": "0x687422eEA2cB73B5d3e242bA5456b782919AFc85",
- "fromPrivateKey": "0x05e150c73f1920ec14caa1e0b6aa09940899678051a78542840c2668ce5080c2"
}
{- "txId": "c83f8818db43d9ba4accfe454aa44fc33123d47a4f89d47b314d6748eb0e9bc9"
}
2 credits per API call
Burn fungible tokens. Burning fungible tokens deletes the specified supply of the tokens (the amount
parameter in the request body) from the smart contract (the contractAddress
parameter in the request body).
This API is supported for the following blockchains:
Signing a transaction
When burning fungible tokens, 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 required perform operation due to logical error or invalid permissions.
Internal server error. There was an error on the server during the processing of the request.
{- "chain": "ETH",
- "amount": "100000",
- "contractAddress": "0x687422eEA2cB73B5d3e242bA5456b782919AFc85",
- "fromPrivateKey": "0x05e150c73f1920ec14caa1e0b6aa09940899678051a78542840c2668ce5080c2"
}
{- "txId": "c83f8818db43d9ba4accfe454aa44fc33123d47a4f89d47b314d6748eb0e9bc9"
}
2 credits per API call
Allow a blockchain address (the spender
parameter in the request body) to transfer and burn fungible tokens on behalf of the smart contract owner.
This API is supported for the following blockchains:
Signing a transaction
When allowing a blockchain address to transfer and burn fungible tokens, 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 required perform operation due to logical error or invalid permissions.
Internal server error. There was an error on the server during the processing of the request.
{- "chain": "ETH",
- "contractAddress": "0x687422eEA2cB73B5d3e242bA5456b782919AFc85",
- "spender": "0x687422eEA2cB73B5d3e242bA5456b782919AFc85",
- "amount": "100000",
- "fromPrivateKey": "0x05e150c73f1920ec14caa1e0b6aa09940899678051a78542840c2668ce5080c2"
}
{- "txId": "c83f8818db43d9ba4accfe454aa44fc33123d47a4f89d47b314d6748eb0e9bc9"
}
2 credits per API call
Transfer a supply of fungible tokens existing in the smart contract (the contractAddress
parameter in the request body) to the specified blockchain address (the to
parameter in the request body).
Transferring fungible tokens invokes the transfer()
method.
This API is supported for the following blockchains:
Transferring fungible tokens on Algorand
On Algorand, the recipient has to agree in advance to receive your fungible tokens because Algorand charges users for storing the tokens on their addresses, and an Algorand blockchain address by default does not receive the tokens unless explicitly agreed. Before transferring the fungible tokens, make sure that the recipient has agreed to receive the NFT to their address.
Blockchain-specific APIs to transfer fungible tokens
You can also use blockchain-specific APIs for transferring fungible tokens on the following blockchains:
Signing a transaction
When transferring fungible tokens, 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 |
to required | string [ 1 .. 50 ] characters The blockchain address to send the fungible tokens to |
contractAddress required | string [ 42 .. 43 ] characters The blockchain address of the fungible token smart contract |
amount required | string^[+]?((\d+(\.\d*)?)|(\.\d+))$ The amount of the fungible tokens to be sent |
digits required | number [ 1 .. 30 ] The number of decimal places that the fungible tokens have; to find out how many decimal places are used in the fungible tokens, check out the smart contract |
fromPrivateKey required | string = 66 characters The private key of the blockchain address from which the fee will be deducted |
nonce | number >= 0 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 required perform operation due to logical error or invalid permissions.
Internal server error. There was an error on the server during the processing of the request.
{- "chain": "ETH",
- "to": "0x687422eEA2cB73B5d3e242bA5456b782919AFc85",
- "contractAddress": "0x687422eEA2cB73B5d3e242bA5456b782919AFc85",
- "amount": "100000",
- "digits": 18,
- "fromPrivateKey": "0x05e150c73f1920ec14caa1e0b6aa09940899678051a78542840c2668ce5080c2"
}
{- "txId": "c83f8818db43d9ba4accfe454aa44fc33123d47a4f89d47b314d6748eb0e9bc9"
}
1 credit per API call
Get incoming and outgoing transactions related to fungible tokens on a blockchain address.
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.
Internal server error. There was an error on the server during the processing of the request.
[- {
- "blockNumber": 6541235,
- "txId": "0x955c1037608c7aecb6d1a3f150ce7d0a80536bcabb0deb69d62f55292cc4c372",
- "contractAddress": "0x4f54fAD27F7F46C102Cd49b8E75C5593397cd9c3",
- "amount": "1",
- "from": "0x780c3de0aba1b51f04cfe8a5d9d277d4ad032b8d",
- "to": "0x8cb76aed9c5e336ef961265c6079c14e9cd3d2ea"
}
]
1 credit per API call
Get the number of the fungible tokens minted on a specific smart contract (the contractAddress
path parameter in the request endpoint URL) that a blockchain address holds.
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 during the processing of the request.
{- "balance": "10"
}
1 credit per API call
Get the number of all fungible tokens that a blockchain address holds across a blockchain. The tokens are returned grouped by the smart contracts they were minted on.
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 during the processing of the request.
[- {
- "contractAddress": "string",
- "amount": "10"
}
]