An endpoint to handle operations between a virtual account and the blockchain, e.g. to create blockchain transactions from virtual accounts, create custom fungible tokens and custom assets, and register them as a regular currency into the virtual account.
Send BTC (Bitcoin) from a virtual account to the blockchain. This will create Tatum internal withdrawal request with ID. If every system works as expected, withdrawal request is marked as complete and transaction id is assigned to it.
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.
{- "senderAccountId": "5e68c66581f2ee32bc354087",
- "address": "mpTwPdF8up9kidgcAStriUPwRdnE9MRAg7",
- "amount": "0.001",
- "mnemonic": "urge pulp usage sister evidence arrest palm math please chief egg abuse",
- "xpub": "xpub6EsCk1uU6cJzqvP9CdsTiJwT2rF748YkPnhv5Qo8q44DG7nn2vbyt48YRsNSUYS44jFCW9gwvD9kLQu9AuqXpTpM1c5hgg9PsuBLdeNncid"
}
{- "id": "5e68c66581f2ee32bc354087",
- "txId": "c83f8818db43d9ba4accfe454aa44fc33123d47a4f89d47b314d6748eb0e9bc9",
- "completed": true
}
Send BCH (Bitcoin Cash) from a virtual account to the blockchain. This will create Tatum internal withdrawal request with ID. If every system works as expected, withdrawal request is marked as complete and transaction id is assigned to it.
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.
{- "senderAccountId": "5e68c66581f2ee32bc354087",
- "address": "bitcoincash:qrd9khmeg4nqag3h5gzu8vjt537pm7le85lcauzez",
- "amount": "0.001",
- "mnemonic": "urge pulp usage sister evidence arrest palm math please chief egg abuse",
- "xpub": "xpub6EsCk1uU6cJzqvP9CdsTiJwT2rF748YkPnhv5Qo8q44DG7nn2vbyt48YRsNSUYS44jFCW9gwvD9kLQu9AuqXpTpM1c5hgg9PsuBLdeNncid"
}
{- "id": "5e68c66581f2ee32bc354087",
- "txId": "c83f8818db43d9ba4accfe454aa44fc33123d47a4f89d47b314d6748eb0e9bc9",
- "completed": true
}
Send LTC (Litecoin) from a virtual account to the blockchain. This will create Tatum internal withdrawal request with ID. If every system works as expected, withdrawal request is marked as complete and transaction id is assigned to it.
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.
{- "senderAccountId": "5e68c66581f2ee32bc354087",
- "address": "mpTwPdF8up9kidgcAStriUPwRdnE9MRAg7",
- "amount": "0.001",
- "mnemonic": "urge pulp usage sister evidence arrest palm math please chief egg abuse",
- "xpub": "xpub6EsCk1uU6cJzqvP9CdsTiJwT2rF748YkPnhv5Qo8q44DG7nn2vbyt48YRsNSUYS44jFCW9gwvD9kLQu9AuqXpTpM1c5hgg9PsuBLdeNncid"
}
{- "id": "5e68c66581f2ee32bc354087",
- "txId": "c83f8818db43d9ba4accfe454aa44fc33123d47a4f89d47b314d6748eb0e9bc9",
- "completed": true
}
Send FLOW (Flow) or FUSD from a virtual account to the blockchain. This will create Tatum internal withdrawal request with ID. If every system works as expected, withdrawal request is marked as complete and transaction id is assigned to it.
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.
{- "senderAccountId": "61b3bffddfb389cde19c73be",
- "account": "0x955cd3f17b2fd8ad",
- "address": "0x955cd3f17b2fd8ae",
- "amount": "10000",
- "mnemonic": "urge pulp usage sister evidence arrest palm math please chief egg abuse",
- "index": 0
}
{- "id": "5e68c66581f2ee32bc354087",
- "txId": "c83f8818db43d9ba4accfe454aa44fc33123d47a4f89d47b314d6748eb0e9bc9",
- "completed": true
}
Send DOGE (Dogecoin) from a virtual account to the blockchain. This will create Tatum internal withdrawal request with ID. If every system works as expected, withdrawal request is marked as complete and transaction id is assigned to it.
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.
{- "senderAccountId": "5e68c66581f2ee32bc354087",
- "address": "mpTwPdF8up9kidgcAStriUPwRdnE9MRAg7",
- "amount": "0.001",
- "mnemonic": "urge pulp usage sister evidence arrest palm math please chief egg abuse",
- "xpub": "xpub6EsCk1uU6cJzqvP9CdsTiJwT2rF748YkPnhv5Qo8q44DG7nn2vbyt48YRsNSUYS44jFCW9gwvD9kLQu9AuqXpTpM1c5hgg9PsuBLdeNncid"
}
{- "id": "5e68c66581f2ee32bc354087",
- "txId": "c83f8818db43d9ba4accfe454aa44fc33123d47a4f89d47b314d6748eb0e9bc9",
- "completed": true
}
Send ETH (Ethereum) from a virtual account to the blockchain. This will create Tatum internal withdrawal request with ID. If every system works as expected, withdrawal request is marked as complete and transaction id is assigned to it.
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": "0x687422eEA2cB73B5d3e242bA5456b782919AFc85",
- "amount": "100000",
- "privateKey": "0x687422eEA2cB73B5d3e242bA5456b782919AFc85",
- "senderAccountId": "5e68c66581f2ee32bc354087"
}
{- "id": "5e68c66581f2ee32bc354087",
- "txId": "c83f8818db43d9ba4accfe454aa44fc33123d47a4f89d47b314d6748eb0e9bc9",
- "completed": true
}
Send MATIC (Polygon) or ERC-20-equivalent Polygon tokens from a virtual account to the blockchain. This will create Tatum internal withdrawal request with ID. If every system works as expected, withdrawal request is marked as complete and transaction id is assigned to it.
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": "0x687422eEA2cB73B5d3e242bA5456b782919AFc85",
- "amount": "100000",
- "privateKey": "0x687422eEA2cB73B5d3e242bA5456b782919AFc85",
- "senderAccountId": "5e68c66581f2ee32bc354087"
}
{- "id": "5e68c66581f2ee32bc354087",
- "txId": "c83f8818db43d9ba4accfe454aa44fc33123d47a4f89d47b314d6748eb0e9bc9",
- "completed": true
}
Send KCS (KuCoin Community Chain (KCC)) or ERC-20-equivalent KCC tokens from a virtual account to the blockchain. This will create Tatum internal withdrawal request with ID. If every system works as expected, withdrawal request is marked as complete and transaction id is assigned to it.
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": "0x687422eEA2cB73B5d3e242bA5456b782919AFc85",
- "amount": "100000",
- "fromPrivateKey": "0x687422eEA2cB73B5d3e242bA5456b782919AFc85",
- "senderAccountId": "5e68c66581f2ee32bc354087"
}
{- "id": "5e68c66581f2ee32bc354087",
- "txId": "c83f8818db43d9ba4accfe454aa44fc33123d47a4f89d47b314d6748eb0e9bc9",
- "completed": true
}
Send Ethereum ERC-20 tokens from a virtual account to the blockchain. This will create Tatum internal withdrawal request with ID. If every system works as expected, withdrawal request is marked as complete and transaction id is assigned to it.
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.
{- "senderAccountId": "5e68c66581f2ee32bc354087",
- "address": "0x687422eEA2cB73B5d3e242bA5456b782919AFc85",
- "amount": "100000",
- "privateKey": "0x687422eEA2cB73B5d3e242bA5456b782919AFc85"
}
{- "id": "5e68c66581f2ee32bc354087",
- "txId": "c83f8818db43d9ba4accfe454aa44fc33123d47a4f89d47b314d6748eb0e9bc9",
- "completed": true
}
This method is deprecated.
Use this method instead.
First step to create new ERC20 token with given supply on Ethereum blockchain with support of Tatum's private ledger.
This method only creates Tatum Private ledger virtual currency with predefined parameters. It will not generate any blockchain smart contract.
The whole supply of ERC20 token is stored in the customer's newly created account. Then it is possible to create new Tatum accounts with ERC20 token name as account's currency.
Newly created account is frozen until the specific ERC20 smart contract address is linked with the Tatum virtual currency, representing the token.
Order of the steps to create ERC20 smart contract with Tatum private ledger support:
symbol required | string [ 1 .. 30 ] characters ^[a-zA-Z0-9_]+$ The name of the token; used as an identifier within the Tatum platform and as a currency symbol on the blockchain |
supply required | string <= 38 characters ^[+]?((\d+(\.\d*)?)|(\.\d+))$ The supply of the token |
decimals required | number >= 0 The number of decimal places that the token has |
description required | string [ 1 .. 100 ] characters The description of the token; used as a description within the Tatum platform and as a currency name on the blockchain |
xpub required | string [ 1 .. 150 ] characters The extended public key of the wallet from which a deposit address for the virtual account will be generated |
derivationIndex required | integer <int32> <= 2147483647 The derivation index to use together with the extended public key to generate the deposit address |
basePair required | string (FiatOrCryptoCurrency) The base pair for the virtual currency that represents the token; used to calculate the value of a transaction |
baseRate | number >= 0 Default: 1 The exchange rate for the base pair; one unit of the created virtual currency equals 1 unit of |
object (CustomerRegistration) If a customer with the specified external ID does not exist, a new customer is created. If a customer with the specified external ID exists, it is updated with the provided information. | |
accountingCurrency | string (FiatCurrency) Default: "USD" The ISO 4217 code of the currency in which all transactions for the created virtual account will be billed |
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.
{- "symbol": "MY_TOKEN",
- "supply": "1000000.0",
- "decimals": 8,
- "description": "My Public Token",
- "xpub": "xpub6EsCk1uU6cJzqvP9CdsTiJwT2rF748YkPnhv5Qo8q44DG7nn2vbyt48YRsNSUYS44jFCW9gwvD9kLQu9AuqXpTpM1c5hgg9PsuBLdeNncid",
- "derivationIndex": 0,
- "basePair": "AED"
}
{- "accountId": "5e68c66581f2ee32bc354087",
- "address": "0xa7673161CbfE0116A4De9E341f8465940c2211d4"
}
4 credits per API call
Deploy an Ethereum ERC-20 smart contract. This is a helper method, which is combination of Register new ERC20 token in the ledger and Deploy blockchain ERC20.
After deploying a contract to blockchain, the contract address will become available and must be stored within Tatum. Otherwise, it will not be possible to interact with it and starts automatic blockchain synchronization.
Signing a transaction
When deploying an Ethereum ERC-20 smart contract to the blockchain and a virtual account, 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 while processing the request.
{- "symbol": "MY_TOKEN",
- "supply": "10000000",
- "description": "My Public Token",
- "address": "0x687422eEA2cB73B5d3e242bA5456b782919AFc85",
- "mnemonic": "urge pulp usage sister evidence arrest palm math please chief egg abuse",
- "index": 0,
- "basePair": "AED"
}
{- "accountId": "5e68c66581f2ee32bc354087",
- "txId": "c83f8818db43d9ba4accfe454aa44fc33123d47a4f89d47b314d6748eb0e9bc9"
}
Send BSC (BNB Smart Chain) or BEP-20 tokens from a virtual account to the blockchain. This will create Tatum internal withdrawal request with ID. If every system works as expected, withdrawal request is marked as complete and transaction id is assigned to it.
nonce | number >= 0 The nonce to be set to the transaction; if not present, the last known nonce will be used |
address required | string = 42 characters Blockchain address to send assets |
amount required | string <= 38 characters ^[+]?((\d+(\.\d*)?)|(\.\d+))$ Amount to be sent. |
compliant | boolean Compliance check, if withdrawal is not compliant, it will not be processed. |
privateKey required | string = 66 characters Private key of sender address. Either mnemonic and index, privateKey or signature Id must be present - depends on the type of account and xpub. |
paymentId | string [ 1 .. 100 ] characters Identifier of the payment, shown for created Transaction within Tatum sender account. |
senderAccountId required | string = 24 characters Sender account ID |
senderNote | string [ 1 .. 500 ] characters Note visible to owner of withdrawing account |
gasLimit | string^[+]?\d+$ Gas limit for transaction in gas price. If not set, automatic calculation will be used. |
gasPrice | string^[+]?\d+$ Gas price in Gwei. If not set, automatic calculation will be used. |
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": "0x687422eEA2cB73B5d3e242bA5456b782919AFc85",
- "amount": "100000",
- "privateKey": "0x687422eEA2cB73B5d3e242bA5456b782919AFc85",
- "senderAccountId": "5e68c66581f2ee32bc354087"
}
{- "id": "5e68c66581f2ee32bc354087",
- "txId": "c83f8818db43d9ba4accfe454aa44fc33123d47a4f89d47b314d6748eb0e9bc9",
- "completed": true
}
This method is deprecated.
Use this method instead.
First step to create new BEP20 token with given supply on BSC blockchain with support of Tatum's private ledger.
This method only creates Tatum Private ledger virtual currency with predefined parameters. It will not generate any blockchain smart contract.
The whole supply of BEP20 token is stored in the customer's newly created account. Then it is possible to create new Tatum accounts with BEP20 token name as account's currency.
Newly created account is frozen until the specific BEP20 smart contract address is linked with the Tatum virtual currency, representing the token.
Order of the steps to create BEP20 smart contract with Tatum private ledger support:
symbol required | string [ 1 .. 30 ] characters ^[a-zA-Z0-9_]+$ The name of the token; used as an identifier within the Tatum platform and as a currency symbol on the blockchain | ||||||||
supply required | string <= 38 characters ^[+]?((\d+(\.\d*)?)|(\.\d+))$ The supply of the token | ||||||||
decimals required | number >= 0 The number of decimal places that the token has | ||||||||
description required | string [ 1 .. 100 ] characters The description of the token; used as a description within the Tatum platform and as a currency name on the blockchain | ||||||||
xpub required | string [ 1 .. 150 ] characters The extended public key of the wallet from which a deposit address for the virtual account will be generated | ||||||||
derivationIndex required | integer <int32> <= 2147483647 The derivation index to use together with the extended public key to generate the deposit address | ||||||||
basePair required | string (FiatOrCryptoCurrency) The base pair for the virtual currency that represents the token; used to calculate the value of a transaction | ||||||||
baseRate | number >= 0 Default: 1 The exchange rate for the base pair; one unit of the created virtual currency equals 1 unit of | ||||||||
object (CustomerRegistration) If a customer with the specified external ID does not exist, a new customer is created. If a customer with the specified external ID exists, it is updated with the provided information. | |||||||||
| |||||||||
accountingCurrency | string (FiatCurrency) Default: "USD" The ISO 4217 code of the currency in which all transactions for the created virtual account will be billed |
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.
{- "symbol": "MY_TOKEN",
- "supply": "1000000.0",
- "decimals": 8,
- "description": "My Public Token",
- "xpub": "xpub6EsCk1uU6cJzqvP9CdsTiJwT2rF748YkPnhv5Qo8q44DG7nn2vbyt48YRsNSUYS44jFCW9gwvD9kLQu9AuqXpTpM1c5hgg9PsuBLdeNncid",
- "derivationIndex": 0,
- "basePair": "AED"
}
{- "accountId": "5e68c66581f2ee32bc354087",
- "address": "0xa7673161CbfE0116A4De9E341f8465940c2211d4"
}
4 credits per API call
Deploy a BNB Smart Chain BEP-20 smart contract. This is a helper method, which is combination of Register new BEP20 token in the ledger and Deploy blockchain ERC20.
After deploying a contract to blockchain, the contract address will become available and must be stored within Tatum. Otherwise, it will not be possible to interact with it and starts automatic blockchain synchronization.
Signing a transaction
When deploying a BNB Smart Chain BEP-20 smart contract to the blockchain and a virtual account, 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.
symbol required | string [ 1 .. 30 ] characters ^[a-zA-Z0-9_]+$ The name of the token; used as an identifier within the Tatum platform and as a currency symbol on the blockchain | ||||||||
supply required | string <= 38 characters ^[+]?((\d+(\.\d*)?)|(\.\d+))$ The supply of the token | ||||||||
description required | string [ 1 .. 100 ] characters The description of the token; used as a description within the Tatum platform and as a currency name on the blockchain | ||||||||
address required | string = 42 characters The blockchain address to be assigned to the virtual account as a deposit address | ||||||||
mnemonic required | string [ 1 .. 500 ] characters The mnemonic to generate the private key for the blockchain address from which the fee for deploying the smart contract will be deducted; is used together with the derivation index of this address | ||||||||
index required | integer <= 2147483647 The derivation index of the blockchain address from which the fee for deploying the smart contract will be deducted; is used together with the mnemonic to generate the private key for this address | ||||||||
basePair required | string (FiatOrCryptoCurrency) The base pair for the virtual currency that represents the token; used to calculate the value of a transaction | ||||||||
baseRate | number >= 0 Default: 1 The exchange rate for the base pair; one unit of the created virtual currency equals 1 unit of | ||||||||
nonce | number >= 0 The nonce to be set to the transaction; if not present, the last known nonce will be used | ||||||||
object (CustomerRegistration) If a customer with the specified external ID does not exist, a new customer is created. If a customer with the specified external ID exists, it is updated with the provided information. | |||||||||
|
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.
{- "symbol": "MY_TOKEN",
- "supply": "10000000",
- "description": "My Public Token",
- "address": "0x687422eEA2cB73B5d3e242bA5456b782919AFc85",
- "mnemonic": "urge pulp usage sister evidence arrest palm math please chief egg abuse",
- "index": 0,
- "basePair": "AED"
}
{- "accountId": "5e68c66581f2ee32bc354087",
- "txId": "c83f8818db43d9ba4accfe454aa44fc33123d47a4f89d47b314d6748eb0e9bc9"
}
Send KLAY or ERC-20-equivalent tokens from a virtual account to the blockchain. This will create Tatum internal withdrawal request with ID. If every system works as expected, withdrawal request is marked as complete and transaction id is assigned to it.
nonce | number >= 0 The nonce to be set to the transaction; if not present, the last known nonce will be used |
address required | string = 42 characters Blockchain address to send assets |
amount required | string <= 38 characters ^[+]?((\d+(\.\d*)?)|(\.\d+))$ Amount to be sent in Ether | MATIC | XDC | KCS. |
compliant | boolean Compliance check, if withdrawal is not compliant, it will not be processed. |
privateKey required | string = 66 characters Private key of sender address. Either mnemonic and index, privateKey or signature Id must be present - depends on the type of account and xpub. |
paymentId | string [ 1 .. 100 ] characters Identifier of the payment, shown for created Transaction within Tatum sender account. |
senderAccountId required | string = 24 characters Sender account ID |
senderNote | string [ 1 .. 500 ] characters Note visible to owner of withdrawing account |
gasLimit | string^[+]?\d+$ Gas limit for transaction in gas price. If not set, automatic calculation will be used. |
gasPrice | string^[+]?\d+$ Gas price in Gwei. If not set, automatic calculation will be used. |
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": "0x687422eEA2cB73B5d3e242bA5456b782919AFc85",
- "amount": "100000",
- "privateKey": "0x687422eEA2cB73B5d3e242bA5456b782919AFc85",
- "senderAccountId": "5e68c66581f2ee32bc354087"
}
{- "id": "5e68c66581f2ee32bc354087",
- "txId": "c83f8818db43d9ba4accfe454aa44fc33123d47a4f89d47b314d6748eb0e9bc9",
- "completed": true
}
4 credits per API call
Deploy a Klaytn ERC-20-equivalent smart contract. This is a helper method, which is combination of Register new ERC20 token in the ledger and Deploy blockchain ERC20.
After deploying a contract to blockchain, the contract address will become available and must be stored within Tatum. Otherwise, it will not be possible to interact with it and starts automatic blockchain synchronization.
Signing a transaction
When deploying a Klaytn ERC-20-equivalent smart contract to the blockchain and a virtual account, 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.
symbol required | string [ 1 .. 30 ] characters ^[a-zA-Z0-9_]+$ The name of the token; used as an identifier within the Tatum platform and as a currency symbol on the blockchain | ||||||||
supply required | string <= 38 characters ^[+]?((\d+(\.\d*)?)|(\.\d+))$ The supply of the token | ||||||||
description required | string [ 1 .. 100 ] characters The description of the token; used as a description within the Tatum platform and as a currency name on the blockchain | ||||||||
address required | string = 42 characters The blockchain address to be assigned to the virtual account as a deposit address | ||||||||
mnemonic required | string [ 1 .. 500 ] characters The mnemonic to generate the private key for the blockchain address from which the fee for deploying the smart contract will be deducted; is used together with the derivation index of this address | ||||||||
index required | integer <= 2147483647 The derivation index of the blockchain address from which the fee for deploying the smart contract will be deducted; is used together with the mnemonic to generate the private key for this address | ||||||||
basePair required | string (FiatOrCryptoCurrency) The base pair for the virtual currency that represents the token; used to calculate the value of a transaction | ||||||||
baseRate | number >= 0 Default: 1 The exchange rate for the base pair; one unit of the created virtual currency equals 1 unit of | ||||||||
nonce | number >= 0 The nonce to be set to the transaction; if not present, the last known nonce will be used | ||||||||
object (CustomerRegistration) If a customer with the specified external ID does not exist, a new customer is created. If a customer with the specified external ID exists, it is updated with the provided information. | |||||||||
|
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.
{- "symbol": "MY_TOKEN",
- "supply": "10000000",
- "description": "My Public Token",
- "address": "0x687422eEA2cB73B5d3e242bA5456b782919AFc85",
- "mnemonic": "urge pulp usage sister evidence arrest palm math please chief egg abuse",
- "index": 0,
- "basePair": "AED"
}
{- "accountId": "5e68c66581f2ee32bc354087",
- "txId": "c83f8818db43d9ba4accfe454aa44fc33123d47a4f89d47b314d6748eb0e9bc9"
}
Send XDC (XinFin) or ERC-20-equivalent XinFin tokens from a virtual account to the blockchain. This will create Tatum internal withdrawal request with ID. If every system works as expected, withdrawal request is marked as complete and transaction id is assigned to it.
nonce | number >= 0 The nonce to be set to the transaction; if not present, the last known nonce will be used |
address required | string = 42 characters Blockchain address to send assets |
amount required | string <= 38 characters ^[+]?((\d+(\.\d*)?)|(\.\d+))$ Amount to be sent in Ether | MATIC | XDC | KCS. |
compliant | boolean Compliance check, if withdrawal is not compliant, it will not be processed. |
privateKey required | string = 66 characters Private key of sender address. Either mnemonic and index, privateKey or signature Id must be present - depends on the type of account and xpub. |
paymentId | string [ 1 .. 100 ] characters Identifier of the payment, shown for created Transaction within Tatum sender account. |
senderAccountId required | string = 24 characters Sender account ID |
senderNote | string [ 1 .. 500 ] characters Note visible to owner of withdrawing account |
gasLimit | string^[+]?\d+$ Gas limit for transaction in gas price. If not set, automatic calculation will be used. |
gasPrice | string^[+]?\d+$ Gas price in Gwei. If not set, automatic calculation will be used. |
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": "0x687422eEA2cB73B5d3e242bA5456b782919AFc85",
- "amount": "100000",
- "privateKey": "0x687422eEA2cB73B5d3e242bA5456b782919AFc85",
- "senderAccountId": "5e68c66581f2ee32bc354087"
}
{- "id": "5e68c66581f2ee32bc354087",
- "txId": "c83f8818db43d9ba4accfe454aa44fc33123d47a4f89d47b314d6748eb0e9bc9",
- "completed": true
}
This method is deprecated.
Use this method instead.
First step to create new ERC20 token with given supply on XDC blockchain with support of Tatum's private ledger.
This method only creates Tatum Private ledger virtual currency with predefined parameters. It will not generate any blockchain smart contract.
The whole supply of ERC20 token is stored in the customer's newly created account. Then it is possible to create new Tatum accounts with ERC20 token name as account's currency.
Newly created account is frozen until the specific ERC20 smart contract address is linked with the Tatum virtual currency, representing the token.
Order of the steps to create ERC20 smart contract with Tatum private ledger support:
symbol required | string [ 1 .. 30 ] characters ^[a-zA-Z0-9_]+$ The name of the token; used as an identifier within the Tatum platform and as a currency symbol on the blockchain | ||||||||
supply required | string <= 38 characters ^[+]?((\d+(\.\d*)?)|(\.\d+))$ The supply of the token | ||||||||
decimals required | number >= 0 The number of decimal places that the token has | ||||||||
description required | string [ 1 .. 100 ] characters The description of the token; used as a description within the Tatum platform and as a currency name on the blockchain | ||||||||
xpub required | string [ 1 .. 150 ] characters The extended public key of the wallet from which a deposit address for the virtual account will be generated | ||||||||
derivationIndex required | integer <int32> <= 2147483647 The derivation index to use together with the extended public key to generate the deposit address | ||||||||
basePair required | string (FiatOrCryptoCurrency) The base pair for the virtual currency that represents the token; used to calculate the value of a transaction | ||||||||
baseRate | number >= 0 Default: 1 The exchange rate for the base pair; one unit of the created virtual currency equals 1 unit of | ||||||||
object (CustomerRegistration) If a customer with the specified external ID does not exist, a new customer is created. If a customer with the specified external ID exists, it is updated with the provided information. | |||||||||
| |||||||||
accountingCurrency | string (FiatCurrency) Default: "USD" The ISO 4217 code of the currency in which all transactions for the created virtual account will be billed |
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.
{- "symbol": "MY_TOKEN",
- "supply": "1000000.0",
- "decimals": 8,
- "description": "My Public Token",
- "xpub": "xpub6EsCk1uU6cJzqvP9CdsTiJwT2rF748YkPnhv5Qo8q44DG7nn2vbyt48YRsNSUYS44jFCW9gwvD9kLQu9AuqXpTpM1c5hgg9PsuBLdeNncid",
- "derivationIndex": 0,
- "basePair": "AED"
}
{- "accountId": "5e68c66581f2ee32bc354087",
- "address": "0xa7673161CbfE0116A4De9E341f8465940c2211d4"
}
4 credits per API call
Deploy a XinFin ERC-20-equivalent smart contract. This is a helper method, which is combination of Register new ERC20 token in the ledger and Deploy blockchain ERC20.
After deploying a contract to blockchain, the contract address will become available and must be stored within Tatum. Otherwise, it will not be possible to interact with it and starts automatic blockchain synchronization.
Signing a transaction
When deploying a XinFin ERC-20-equivalent smart contract to the blockchain and a virtual account, 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.
symbol required | string [ 1 .. 30 ] characters ^[a-zA-Z0-9_]+$ The name of the token; used as an identifier within the Tatum platform and as a currency symbol on the blockchain | ||||||||
supply required | string <= 38 characters ^[+]?((\d+(\.\d*)?)|(\.\d+))$ The supply of the token | ||||||||
description required | string [ 1 .. 100 ] characters The description of the token; used as a description within the Tatum platform and as a currency name on the blockchain | ||||||||
address required | string = 42 characters The blockchain address to be assigned to the virtual account as a deposit address | ||||||||
mnemonic required | string [ 1 .. 500 ] characters The mnemonic to generate the private key for the blockchain address from which the fee for deploying the smart contract will be deducted; is used together with the derivation index of this address | ||||||||
index required | integer <= 2147483647 The derivation index of the blockchain address from which the fee for deploying the smart contract will be deducted; is used together with the mnemonic to generate the private key for this address | ||||||||
basePair required | string (FiatOrCryptoCurrency) The base pair for the virtual currency that represents the token; used to calculate the value of a transaction | ||||||||
baseRate | number >= 0 Default: 1 The exchange rate for the base pair; one unit of the created virtual currency equals 1 unit of | ||||||||
nonce | number >= 0 The nonce to be set to the transaction; if not present, the last known nonce will be used | ||||||||
object (CustomerRegistration) If a customer with the specified external ID does not exist, a new customer is created. If a customer with the specified external ID exists, it is updated with the provided information. | |||||||||
|
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.
{- "symbol": "MY_TOKEN",
- "supply": "10000000",
- "description": "My Public Token",
- "address": "0x687422eEA2cB73B5d3e242bA5456b782919AFc85",
- "mnemonic": "urge pulp usage sister evidence arrest palm math please chief egg abuse",
- "index": 0,
- "basePair": "AED"
}
{- "accountId": "5e68c66581f2ee32bc354087",
- "txId": "c83f8818db43d9ba4accfe454aa44fc33123d47a4f89d47b314d6748eb0e9bc9"
}
Send ONE (Harmony) or HRM-20 tokens from a virtual account to the blockchain. This will create Tatum internal withdrawal request with ID. If every system works as expected, withdrawal request is marked as complete and transaction id is assigned to it.
nonce | number >= 0 The nonce to be set to the transaction; if not present, the last known nonce will be used |
address required | string = 42 characters Blockchain address to send assets |
amount required | string <= 38 characters ^[+]?((\d+(\.\d*)?)|(\.\d+))$ Amount to be sent in Ether | MATIC | XDC | KCS. |
compliant | boolean Compliance check, if withdrawal is not compliant, it will not be processed. |
privateKey required | string = 66 characters Private key of sender address. Either mnemonic and index, privateKey or signature Id must be present - depends on the type of account and xpub. |
paymentId | string [ 1 .. 100 ] characters Identifier of the payment, shown for created Transaction within Tatum sender account. |
senderAccountId required | string = 24 characters Sender account ID |
senderNote | string [ 1 .. 500 ] characters Note visible to owner of withdrawing account |
gasLimit | string^[+]?\d+$ Gas limit for transaction in gas price. If not set, automatic calculation will be used. |
gasPrice | string^[+]?\d+$ Gas price in Gwei. If not set, automatic calculation will be used. |
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": "0x687422eEA2cB73B5d3e242bA5456b782919AFc85",
- "amount": "100000",
- "privateKey": "0x687422eEA2cB73B5d3e242bA5456b782919AFc85",
- "senderAccountId": "5e68c66581f2ee32bc354087"
}
{- "id": "5e68c66581f2ee32bc354087",
- "txId": "c83f8818db43d9ba4accfe454aa44fc33123d47a4f89d47b314d6748eb0e9bc9",
- "completed": true
}
This method is deprecated.
Use this method instead.
First step to create new HRM20 token with given supply on ONE blockchain with support of Tatum's private ledger.
This method only creates Tatum Private ledger virtual currency with predefined parameters. It will not generate any blockchain smart contract.
The whole supply of HRM20 token is stored in the customer's newly created account. Then it is possible to create new Tatum accounts with HRM20 token name as account's currency.
Newly created account is frozen until the specific HRM20 smart contract address is linked with the Tatum virtual currency, representing the token.
Order of the steps to create HRM20 smart contract with Tatum private ledger support:
symbol required | string [ 1 .. 30 ] characters ^[a-zA-Z0-9_]+$ The name of the token; used as an identifier within the Tatum platform and as a currency symbol on the blockchain | ||||||||
supply required | string <= 38 characters ^[+]?((\d+(\.\d*)?)|(\.\d+))$ The supply of the token | ||||||||
decimals required | number >= 0 The number of decimal places that the token has | ||||||||
description required | string [ 1 .. 100 ] characters The description of the token; used as a description within the Tatum platform and as a currency name on the blockchain | ||||||||
xpub required | string [ 1 .. 150 ] characters The extended public key of the wallet from which a deposit address for the virtual account will be generated | ||||||||
derivationIndex required | integer <int32> <= 2147483647 The derivation index to use together with the extended public key to generate the deposit address | ||||||||
basePair required | string (FiatOrCryptoCurrency) The base pair for the virtual currency that represents the token; used to calculate the value of a transaction | ||||||||
baseRate | number >= 0 Default: 1 The exchange rate for the base pair; one unit of the created virtual currency equals 1 unit of | ||||||||
object (CustomerRegistration) If a customer with the specified external ID does not exist, a new customer is created. If a customer with the specified external ID exists, it is updated with the provided information. | |||||||||
| |||||||||
accountingCurrency | string (FiatCurrency) Default: "USD" The ISO 4217 code of the currency in which all transactions for the created virtual account will be billed |
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.
{- "symbol": "MY_TOKEN",
- "supply": "1000000.0",
- "decimals": 8,
- "description": "My Public Token",
- "xpub": "xpub6EsCk1uU6cJzqvP9CdsTiJwT2rF748YkPnhv5Qo8q44DG7nn2vbyt48YRsNSUYS44jFCW9gwvD9kLQu9AuqXpTpM1c5hgg9PsuBLdeNncid",
- "derivationIndex": 0,
- "basePair": "AED"
}
{- "accountId": "5e68c66581f2ee32bc354087",
- "address": "0xa7673161CbfE0116A4De9E341f8465940c2211d4"
}
4 credits per API call
Deploy a Harmony HRM-20 smart contract. This is a helper method, which is combination of Register new HRM20 token in the ledger and Deploy blockchain ERC20.
After deploying a contract to blockchain, the contract address will become available and must be stored within Tatum. Otherwise, it will not be possible to interact with it and starts automatic blockchain synchronization.
Signing a transaction
When deploying a Harmony HRM-20 smart contract to the blockchain and a virtual account, 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.
symbol required | string [ 1 .. 30 ] characters ^[a-zA-Z0-9_]+$ The name of the token; used as an identifier within the Tatum platform and as a currency symbol on the blockchain | ||||||||
supply required | string <= 38 characters ^[+]?((\d+(\.\d*)?)|(\.\d+))$ The supply of the token | ||||||||
description required | string [ 1 .. 100 ] characters The description of the token; used as a description within the Tatum platform and as a currency name on the blockchain | ||||||||
address required | string = 42 characters The blockchain address to be assigned to the virtual account as a deposit address | ||||||||
mnemonic required | string [ 1 .. 500 ] characters The mnemonic to generate the private key for the blockchain address from which the fee for deploying the smart contract will be deducted; is used together with the derivation index of this address | ||||||||
index required | integer <= 2147483647 The derivation index of the blockchain address from which the fee for deploying the smart contract will be deducted; is used together with the mnemonic to generate the private key for this address | ||||||||
basePair required | string (FiatOrCryptoCurrency) The base pair for the virtual currency that represents the token; used to calculate the value of a transaction | ||||||||
baseRate | number >= 0 Default: 1 The exchange rate for the base pair; one unit of the created virtual currency equals 1 unit of | ||||||||
nonce | number >= 0 The nonce to be set to the transaction; if not present, the last known nonce will be used | ||||||||
object (CustomerRegistration) If a customer with the specified external ID does not exist, a new customer is created. If a customer with the specified external ID exists, it is updated with the provided information. | |||||||||
|
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.
{- "symbol": "MY_TOKEN",
- "supply": "10000000",
- "description": "My Public Token",
- "address": "0x687422eEA2cB73B5d3e242bA5456b782919AFc85",
- "mnemonic": "urge pulp usage sister evidence arrest palm math please chief egg abuse",
- "index": 0,
- "basePair": "AED"
}
{- "accountId": "5e68c66581f2ee32bc354087",
- "txId": "c83f8818db43d9ba4accfe454aa44fc33123d47a4f89d47b314d6748eb0e9bc9"
}
This is the first step to create a new ERC-20 or ERC-20 equivalent token with some supply in a virtual account.
This method only creates Tatum Private ledger virtual currency with predefined parameters. It will not generate any blockchain smart contract.
The whole supply of token is stored in the customer's newly created account. Then it is possible to create new Tatum accounts with token name as account's currency.
Newly created account is frozen until the specific smart contract address is linked with the Tatum virtual currency, representing the token.
Order of the steps to create smart contract with Tatum private ledger support:
symbol required | string [ 1 .. 30 ] characters ^[a-zA-Z0-9_]+$ The name of the token; used as an identifier within the Tatum platform and as a currency symbol on the blockchain | ||||||||
supply required | string <= 38 characters ^[+]?((\d+(\.\d*)?)|(\.\d+))$ The supply of the token | ||||||||
decimals required | number >= 0 The number of decimal places that the token has | ||||||||
description required | string [ 1 .. 100 ] characters The description of the token; used as a description within the Tatum platform and as a currency name on the blockchain | ||||||||
xpub required | string [ 1 .. 150 ] characters The extended public key of the wallet from which a deposit address for the virtual account will be generated | ||||||||
derivationIndex required | integer <int32> <= 2147483647 The derivation index to use together with the extended public key to generate the deposit address | ||||||||
basePair required | string (FiatOrCryptoCurrency) The base pair for the virtual currency that represents the token; used to calculate the value of a transaction | ||||||||
baseRate | number >= 0 Default: 1 The exchange rate for the base pair; one unit of the created virtual currency equals 1 unit of | ||||||||
object (CustomerRegistration) If a customer with the specified external ID does not exist, a new customer is created. If a customer with the specified external ID exists, it is updated with the provided information. | |||||||||
| |||||||||
accountingCurrency | string (FiatCurrency) Default: "USD" The ISO 4217 code of the currency in which all transactions for the created virtual account will be billed |
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.
{- "symbol": "MY_TOKEN",
- "supply": "1000000.0",
- "decimals": 8,
- "description": "My Public Token",
- "xpub": "xpub6EsCk1uU6cJzqvP9CdsTiJwT2rF748YkPnhv5Qo8q44DG7nn2vbyt48YRsNSUYS44jFCW9gwvD9kLQu9AuqXpTpM1c5hgg9PsuBLdeNncid",
- "derivationIndex": 0,
- "basePair": "AED"
}
{- "accountId": "5e68c66581f2ee32bc354087",
- "address": "0xa7673161CbfE0116A4De9E341f8465940c2211d4"
}
2 credits per API call
Set the contract address of an ERC-20, ERC-20-equivalent (for example, BEP-20, HRM-20, and so on), or TRC-10 token to be able to communicate with the smart contract.
After creating and deploying the token to the blockchain, the smart contract address is generated and must be set within Tatum. If the address is not set, the Tatum platform will not be able to detect incoming deposits of the tokens and transfer the tokens from virtual accounts to blockchain addresses.
NOTE:
assetId
), for example, 55351976
.tokenId
), for example, 1234567
.address required | string [ 1 .. 100 ] characters On Algorand, this is the asset ID; on TRON, this is the token ID; on the other blockchains, this is the address of the smart contract. Example: 0x687422eEA2cB73B5d3e242bA5456b782919AFc85 |
name required | string [ 1 .. 30 ] characters ^[a-zA-Z0-9_]+$ The name of the token (the token symbol) Example: MY_TOKEN |
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.
{- "errorCode": "validation.failed",
- "message": "Request validation failed. Please see data for additional information.",
- "statusCode": 400,
- "data": [
- {
- "target": {
- "property": 12345
}, - "value": 12345,
- "property": "property1",
- "constraints": {
- "min": "property1 must not be less than 50000"
}
}
]
}
Send CELO (Celo), ERC-20-equivalent Celo tokens, cUSD, or cEUR from a virtual account to the blockchain. This will create Tatum internal withdrawal request with ID. If every system works as expected, withdrawal request is marked as complete and transaction id is assigned to it.
nonce | number >= 0 The nonce to be set to the transaction; if not present, the last known nonce will be used |
address required | string = 42 characters Blockchain address to send assets |
amount required | string <= 38 characters ^[+]?((\d+(\.\d*)?)|(\.\d+))$ Amount to be sent. |
compliant | boolean Compliance check, if withdrawal is not compliant, it will not be processed. |
privateKey required | string = 66 characters Private key of sender address. Either mnemonic and index, privateKey or signature Id must be present - depends on the type of account and xpub. |
paymentId | string [ 1 .. 100 ] characters Identifier of the payment, shown for created Transaction within Tatum sender account. |
senderAccountId required | string = 24 characters Sender account ID |
feeCurrency required | string The currency in which the transaction fee will be paid |
senderNote | string [ 1 .. 500 ] characters Note visible to owner of withdrawing account |
gasLimit | string^[+]?\d+$ Gas limit for transaction in gas price. If not set, automatic calculation will be used. |
gasPrice | string^[+]?\d+$ Gas price in Gwei. If not set, automatic calculation will be used. |
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": "0x687422eEA2cB73B5d3e242bA5456b782919AFc85",
- "amount": "100000",
- "privateKey": "0x687422eEA2cB73B5d3e242bA5456b782919AFc85",
- "senderAccountId": "5e68c66581f2ee32bc354087",
- "feeCurrency": "CELO"
}
{- "id": "5e68c66581f2ee32bc354087",
- "txId": "c83f8818db43d9ba4accfe454aa44fc33123d47a4f89d47b314d6748eb0e9bc9",
- "completed": true
}
This method is deprecated.
Use this method instead.
First step to create new ERC-20 token with given supply on Celo blockchain with support of Tatum's private ledger.
This method only creates Tatum Private ledger virtual currency with predefined parameters. It will not generate any blockchain smart contract.
The whole supply of ERC-20 token is stored in the customer's newly created account. Then it is possible to create new Tatum accounts with ERC-20 token name as account's currency.
Newly created account is frozen until the specific ERC-20 smart contract address is linked with the Tatum virtual currency, representing the token.
Order of the steps to create ERC-20 smart contract with Tatum private ledger support:
symbol required | string [ 1 .. 30 ] characters ^[a-zA-Z0-9_]+$ The name of the token; used as an identifier within the Tatum platform and as a currency symbol on the blockchain | ||||||||
supply required | string <= 38 characters ^[+]?((\d+(\.\d*)?)|(\.\d+))$ The supply of the token | ||||||||
decimals required | number >= 0 The number of decimal places that the token has | ||||||||
description required | string [ 1 .. 100 ] characters The description of the token; used as a description within the Tatum platform and as a currency name on the blockchain | ||||||||
xpub required | string [ 1 .. 150 ] characters The extended public key of the wallet from which a deposit address for the virtual account will be generated | ||||||||
derivationIndex required | integer <int32> <= 2147483647 The derivation index to use together with the extended public key to generate the deposit address | ||||||||
basePair required | string (FiatOrCryptoCurrency) The base pair for the virtual currency that represents the token; used to calculate the value of a transaction | ||||||||
baseRate | number >= 0 Default: 1 The exchange rate for the base pair; one unit of the created virtual currency equals 1 unit of | ||||||||
object (CustomerRegistration) If a customer with the specified external ID does not exist, a new customer is created. If a customer with the specified external ID exists, it is updated with the provided information. | |||||||||
| |||||||||
accountingCurrency | string (FiatCurrency) Default: "USD" The ISO 4217 code of the currency in which all transactions for the created virtual account will be billed |
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.
{- "symbol": "MY_TOKEN",
- "supply": "1000000.0",
- "decimals": 8,
- "description": "My Public Token",
- "xpub": "xpub6EsCk1uU6cJzqvP9CdsTiJwT2rF748YkPnhv5Qo8q44DG7nn2vbyt48YRsNSUYS44jFCW9gwvD9kLQu9AuqXpTpM1c5hgg9PsuBLdeNncid",
- "derivationIndex": 0,
- "basePair": "AED"
}
{- "accountId": "5e68c66581f2ee32bc354087",
- "address": "0xa7673161CbfE0116A4De9E341f8465940c2211d4"
}
4 credits per API call
Deploy a Celo ERC-20-equivalent smart contract. This is a helper method, which is combination of Register new Celo ERC-20 token in the ledger and Deploy blockchain ERC20.
After deploying a contract to blockchain, the contract address will become available and must be stored within Tatum. Otherwise, it will not be possible to interact with it and starts automatic blockchain synchronization.
Signing a transaction
When deploying a Celo ERC-20-equivalent smart contract to the blockchain and a virtual account, 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.
feeCurrency required | string The currency in which the transaction fee will be paid | ||||||||
symbol required | string [ 1 .. 30 ] characters ^[a-zA-Z0-9_]+$ The name of the token; used as an identifier within the Tatum platform and as a currency symbol on the blockchain | ||||||||
supply required | string <= 38 characters ^[+]?((\d+(\.\d*)?)|(\.\d+))$ The supply of the token | ||||||||
description required | string [ 1 .. 100 ] characters The description of the token; used as a description within the Tatum platform and as a currency name on the blockchain | ||||||||
address required | string = 42 characters The blockchain address to be assigned to the virtual account as a deposit address | ||||||||
mnemonic required | string [ 1 .. 500 ] characters The mnemonic to generate the private key for the blockchain address from which the fee for deploying the smart contract will be deducted; is used together with the derivation index of this address | ||||||||
index required | integer <= 2147483647 The derivation index of the blockchain address from which the fee for deploying the smart contract will be deducted; is used together with the mnemonic to generate the private key for this address | ||||||||
basePair required | string (FiatOrCryptoCurrency) The base pair for the virtual currency that represents the token; used to calculate the value of a transaction | ||||||||
baseRate | number >= 0 Default: 1 The exchange rate for the base pair; one unit of the created virtual currency equals 1 unit of | ||||||||
nonce | number >= 0 The nonce to be set to the transaction; if not present, the last known nonce will be used | ||||||||
object (CustomerRegistration) If a customer with the specified external ID does not exist, a new customer is created. If a customer with the specified external ID exists, it is updated with the provided information. | |||||||||
|
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.
{- "feeCurrency": "CELO",
- "symbol": "MY_TOKEN",
- "supply": "10000000",
- "description": "My Public Token",
- "address": "0x687422eEA2cB73B5d3e242bA5456b782919AFc85",
- "mnemonic": "urge pulp usage sister evidence arrest palm math please chief egg abuse",
- "index": 0,
- "basePair": "AED"
}
{- "accountId": "5e68c66581f2ee32bc354087",
- "txId": "c83f8818db43d9ba4accfe454aa44fc33123d47a4f89d47b314d6748eb0e9bc9"
}
4 credits per API call
Deploy a KuCoin Community Chain (KCC) ERC-20-equivalent smart contract. This is a helper method, which is combination of Register new Kcs ERC20 token in the ledger and Deploy blockchain ERC20.
After deploying a contract to blockchain, the contract address will become available and must be stored within Tatum. Otherwise, it will not be possible to interact with it and starts automatic blockchain synchronization.
Signing a transaction
When deploying a KCC ERC-20-equivalent smart contract to the blockchain and a virtual account, 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.
symbol required | string [ 1 .. 30 ] characters ^[a-zA-Z0-9_]+$ The name of the token; used as an identifier within the Tatum platform and as a currency symbol on the blockchain | ||||||||
supply required | string <= 38 characters ^[+]?((\d+(\.\d*)?)|(\.\d+))$ The supply of the token | ||||||||
description required | string [ 1 .. 100 ] characters The description of the token; used as a description within the Tatum platform and as a currency name on the blockchain | ||||||||
address required | string = 42 characters The blockchain address to be assigned to the virtual account as a deposit address | ||||||||
mnemonic required | string [ 1 .. 500 ] characters The mnemonic to generate the private key for the blockchain address from which the fee for deploying the smart contract will be deducted; is used together with the derivation index of this address | ||||||||
index required | integer <= 2147483647 The derivation index of the blockchain address from which the fee for deploying the smart contract will be deducted; is used together with the mnemonic to generate the private key for this address | ||||||||
basePair required | string (FiatOrCryptoCurrency) The base pair for the virtual currency that represents the token; used to calculate the value of a transaction | ||||||||
baseRate | number >= 0 Default: 1 The exchange rate for the base pair; one unit of the created virtual currency equals 1 unit of | ||||||||
nonce | number >= 0 The nonce to be set to the transaction; if not present, the last known nonce will be used | ||||||||
object (CustomerRegistration) If a customer with the specified external ID does not exist, a new customer is created. If a customer with the specified external ID exists, it is updated with the provided information. | |||||||||
|
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.
{- "symbol": "MY_TOKEN",
- "supply": "10000000",
- "description": "My Public Token",
- "address": "0x687422eEA2cB73B5d3e242bA5456b782919AFc85",
- "mnemonic": "urge pulp usage sister evidence arrest palm math please chief egg abuse",
- "index": 0,
- "basePair": "AED"
}
{- "accountId": "5e68c66581f2ee32bc354087",
- "txId": "c83f8818db43d9ba4accfe454aa44fc33123d47a4f89d47b314d6748eb0e9bc9"
}
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.
{- "errorCode": "validation.failed",
- "message": "Request validation failed. Please see data for additional information.",
- "statusCode": 400,
- "data": [
- {
- "target": {
- "property": 12345
}, - "value": 12345,
- "property": "property1",
- "constraints": {
- "min": "property1 must not be less than 50000"
}
}
]
}
10 credits per API call
Send SOL (Solana), USDC_SOL, or custom SPL tokens from a virtual account to the blockchain. This will create Tatum internal withdrawal request with ID. When every system works as expected, withdrawal request is marked as complete and transaction id is assigned to it.
It is possible to perform ledger to blockchain transaction for ledger accounts without blockchain address assigned to them.
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 losing 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, Tatum KMS 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.
senderAccountId required | string = 24 characters Sender account ID |
from required | string [ 32 .. 44 ] characters Blockchain account to send from |
address required | string [ 32 .. 44 ] characters Blockchain address to send assets |
amount required | string <= 38 characters ^[+]?((\d+(\.\d*)?)|(\.\d+))$ Amount to be sent, in SOL / USDC_SOL or custom SPL token based on the senderAccountId currency type. |
privateKey required | string [ 87 .. 128 ] characters Private key for account. Private key, or signature Id must be present. |
fee | string <= 38 characters ^[+]?((\d+(\.\d*)?)|(\.\d+))$ Fee to be charged for the operation. For SOL, fee is decided by the blockchain, but default SOL fee is 0.000005. This fee will be only charged on top of the withdrawal amount to the virtual account. |
compliant | boolean Compliance check, if withdrawal is not compliant, it will not be processed. |
paymentId | string [ 1 .. 100 ] characters Identifier of the payment, shown for created Transaction within Tatum sender account. |
senderNote | string [ 1 .. 500 ] characters Note visible to owner of withdrawing account. |
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.
{- "senderAccountId": "61b3bffddfb389cde19c73be",
- "from": "FykfMwA9WNShzPJbbb9DNXsfgDgS3XZzWiFgrVXfWoPJ",
- "address": "9B5XszUGdMaxCZ7uSQhPzdks5ZQSmWxrmzCSvtJ6Ns6g",
- "amount": "10000",
- "privateKey": "zgsAKfjuXrAxEyuYRxbbxPM3rdsPbJPnGreaGMbcdUApJ6wHnCqQnf9b1RNPdeZxsRMkezh4VgXQ7YrbpndGtEv"
}
{- "id": "5e68c66581f2ee32bc354087",
- "txId": "c83f8818db43d9ba4accfe454aa44fc33123d47a4f89d47b314d6748eb0e9bc9",
- "completed": true
}
10 credits per API call
Send XLM (Stellar) or XLM-based assets from a virtual account to the blockchain. This will create Tatum internal withdrawal request with ID. When every system works as expected, withdrawal request is marked as complete and transaction id is assigned to it.
It is possible to perform ledger to blockchain transaction for ledger accounts without blockchain address assigned to them.
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 losing 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, Tatum KMS 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.
senderAccountId required | string = 24 characters Sender account ID |
fromAccount required | string = 56 characters Blockchain account to send from |
address required | string = 56 characters Blockchain address to send assets |
amount required | string <= 38 characters ^[+]?((\d+(\.\d*)?)|(\.\d+))$ Amount to be sent, in XLM or XLM-based Asset. |
secret required | string = 56 characters Secret for account. Secret, or signature Id must be present. |
compliant | boolean Compliance check, if withdrawal is not compliant, it will not be processed. |
attr | string <= 64 characters ^[ -~]{0,64}$ Short message to recipient. Usually used as an account discriminator. It can be either 28 characters long ASCII text, 64 characters long HEX string or uint64 number. When using as an account disciminator in Tatum Offchain ledger, can be in format of destination_acc|source_acc. |
paymentId | string [ 1 .. 100 ] characters Identifier of the payment, shown for created Transaction within Tatum sender account. |
senderNote | string [ 1 .. 500 ] characters Note visible to owner of withdrawing account. |
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.
{- "senderAccountId": "61b3bffddfb389cde19c73be",
- "fromAccount": "GBRPYHIL2CI3FNQ4BXLFMNDLFJUNPU2HY3ZMFSHONUCEOASW7QC7OX2H",
- "address": "GBRPYHIL2CI3FNQ4BXLFMNDLFJUNPU2HY3ZMFSHONUCEOASW7QC7OX2H",
- "amount": "10000",
- "secret": "SCVVKNLBHOWBNJYHD3CNROOA2P3K35I5GNTYUHLLMUHMHWQYNEI7LVED"
}
{- "id": "5e68c66581f2ee32bc354087",
- "txId": "c83f8818db43d9ba4accfe454aa44fc33123d47a4f89d47b314d6748eb0e9bc9",
- "completed": true
}
Create an XLM-based asset in a virtual account. The asset must be created and configured on the Stellar blockchain before creating a trust line.
This API call will create an internal virtual currency. You can create virtual accounts with off-chain support.
issuerAccount required | string = 56 characters Blockchain address of the issuer of the assets. |
token required | string [ 1 .. 12 ] characters ^[a-zA-Z0-9]{1,12}$ Asset name. |
basePair required | string (FiatOrCryptoCurrency) Base pair for Asset. Transaction value will be calculated according to this base pair. e.g. 1 TOKEN123 is equal to 1 EUR, if basePair is set to EUR. |
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.
{- "issuerAccount": "GC5LAVZ5UPLIFDH6SI33PNVL5TKWA4ODXTI3WEF5JM6LRM5MNGVJ56TT",
- "token": "TOKEN123",
- "basePair": "AED"
}
{- "errorCode": "validation.failed",
- "message": "Request validation failed. Please see data for additional information.",
- "statusCode": 400,
- "data": [
- {
- "target": {
- "property": 12345
}, - "value": 12345,
- "property": "property1",
- "constraints": {
- "min": "property1 must not be less than 50000"
}
}
]
}
Send XRP from a virtual account to the blockchain. This will create Tatum internal withdrawal request with ID. When every system works as expected, withdrawal request is marked as complete and transaction id is assigned to it.
senderAccountId required | string = 24 characters Sender account ID |
account required | string [ 1 .. 100 ] characters XRP account address. Must be the one used for generating deposit tags. |
address required | string [ 1 .. 100 ] characters Blockchain address to send assets |
amount required | string <= 38 characters ^[+]?((\d+(\.\d*)?)|(\.\d+))$ Amount to be sent, in XRP. |
compliant | boolean Compliance check, if withdrawal is not compliant, it will not be processed. |
attr | string Destination tag of the recipient account, if any. Must be stringified uint32. |
sourceTag | integer Source tag of sender account, if any. |
paymentId | string [ 1 .. 100 ] characters Identifier of the payment, shown for created Transaction within Tatum sender account. |
secret required | string = 29 characters Secret for account. Secret, or signature Id must be present. |
senderNote | string [ 1 .. 500 ] characters Note visible to owner of withdrawing account. |
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.
{- "senderAccountId": "61b3bffddfb389cde19c73be",
- "account": "rPRxSZzTFd6Yez3UMxFUPJvnhUhjewpjfV",
- "address": "rPRxSZzTFd6Yez3UMxFUPJvnhUhjewpjfV",
- "amount": "10000",
- "secret": "snSFTHdvSYQKKkYntvEt8cnmZuPJB"
}
{- "id": "5e68c66581f2ee32bc354087",
- "txId": "c83f8818db43d9ba4accfe454aa44fc33123d47a4f89d47b314d6748eb0e9bc9",
- "completed": true
}
Create an XRP-based asset in a virtual account. The asset must be created and configured on the XRPL blockchain before creating a trust line.
This API call will create an internal virtual currency. You can create virtual accounts with off-chain support.
issuerAccount required | string [ 33 .. 34 ] characters Blockchain address of the issuer of the assets. |
token required | string = 40 characters ^[A-F0-9]{40}$ Asset name. |
basePair required | string (FiatOrCryptoCurrency) Base pair for Asset. Transaction value will be calculated according to this base pair. e.g. 1 TOKEN123 is equal to 1 EUR, if basePair is set to EUR. |
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.
{- "issuerAccount": "rsCZjvenhxsFycrb33gPSfXdrTNAS5uiR1",
- "token": "DA39A3EE5E6B4B0D3255BFEF95601890AFD80709",
- "basePair": "AED"
}
{- "errorCode": "validation.failed",
- "message": "Request validation failed. Please see data for additional information.",
- "statusCode": 400,
- "data": [
- {
- "target": {
- "property": 12345
}, - "value": 12345,
- "property": "property1",
- "constraints": {
- "min": "property1 must not be less than 50000"
}
}
]
}
Send BNB (BNB Beacon Chain) or BNB assets from a virtual account to the blockchain. This will create Tatum internal withdrawal request with ID. When every system works as expected, withdrawal request is marked as complete and transaction id is assigned to it.
senderAccountId required | string = 24 characters Sender account ID |
address required | string [ 1 .. 100 ] characters Blockchain address to send assets |
amount required | string <= 38 characters ^[+]?((\d+(\.\d*)?)|(\.\d+))$ Amount to be sent, in BNB. |
compliant | boolean Compliance check, if withdrawal is not compliant, it will not be processed. |
attr | string Memo of the recipient account, if any. |
paymentId | string [ 1 .. 100 ] characters Identifier of the payment, shown for created Transaction within Tatum sender account. |
fromPrivateKey required | string = 64 characters Private key of sender address. |
senderNote | string [ 1 .. 500 ] characters Note visible to owner of withdrawing account. |
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.
{- "senderAccountId": "61b3bffddfb389cde19c73be",
- "address": "tbnb1q82g2h9q0kfe7sysnj5w7nlak92csfjztymp39",
- "amount": "10000",
- "fromPrivateKey": "8ac4b14b38d8a5af58019088ce5a24b764536bccd1981cf79d3e09e9d1f2ad31"
}
{- "id": "5e68c66581f2ee32bc354087",
- "txId": "c83f8818db43d9ba4accfe454aa44fc33123d47a4f89d47b314d6748eb0e9bc9",
- "completed": true
}
Create a BNB-based asset in a virtual account. The asset must first be created and configured on BNB Beacon Chain blockhain.
This API call will create an internal virtual currency. You can create virtual accounts with off-chain support.
token required | string [ 1 .. 12 ] characters ^[a-zA-Z0-9\-]{1,12}$ Asset name. |
basePair required | string (FiatOrCryptoCurrency) Base pair for Asset. Transaction value will be calculated according to this base pair. e.g. 1 TOKEN123 is equal to 1 EUR, if basePair is set to EUR. |
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.
{- "token": "NNB-B90",
- "basePair": "AED"
}
{- "errorCode": "validation.failed",
- "message": "Request validation failed. Please see data for additional information.",
- "statusCode": 400,
- "data": [
- {
- "target": {
- "property": 12345
}, - "value": 12345,
- "property": "property1",
- "constraints": {
- "min": "property1 must not be less than 50000"
}
}
]
}
Send ADA (Cardano) from a virtual account to the blockchain. This will create Tatum internal withdrawal request with ID. If every system works as expected, withdrawal request is marked as complete and transaction id is assigned to it.
address required | string [ 110 .. 90 ] characters Blockchain address to send assets |
amount required | string <= 38 characters ^[+]?((\d+(\.\d*)?)|(\.\d+))$ Amount to be sent in ADA. |
compliant | boolean Compliance check, if withdrawal is not compliant, it will not be processed. |
fee | string^[+]?((\d+(\.\d*)?)|(\.\d+))$ Fee to be submitted as a transaction fee to blockchain. If none is set, default value of 1 ADA is used. |
index required | integer <= 2147483647 Derivation index of sender address. |
mnemonic required | string [ 1 .. 500 ] characters Mnemonic to generate private key for sender address. Either mnemonic and index, privateKey or signature Id must be present - depends on the type of account and xpub. |
xpub required | string [ 1 .. 192 ] characters Extended public key (xpub) of the wallet associated with the accounts. Should be present, when mnemonic is used. |
paymentId | string [ 1 .. 100 ] characters Identifier of the payment, shown for created Transaction within Tatum sender account. |
senderAccountId required | string = 24 characters Sender account ID |
senderNote | string [ 1 .. 500 ] characters Note visible to owner of withdrawing account |
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": "addr1qyyxyhaa2e7kxeqcc72w7f747zqlgwwwstlzsg9umuxc40wnhawldxl4nan95rhtlcnju9q2r8j9qz8vslwsmrkj5r4spxhep9",
- "amount": "100000",
- "index": 0,
- "mnemonic": "urge pulp usage sister evidence arrest palm math please chief egg abuse",
- "xpub": "41253768cd7c5831988e580cfc7eeecaa78bf52a1ede2bd2f245406605adfbadd5911ab567bc3dc7713e29c2c14bb898b24bb1f01a4992605343ad14703037b9",
- "senderAccountId": "5e68c66581f2ee32bc354087"
}
{- "id": "5e68c66581f2ee32bc354087",
- "txId": "c83f8818db43d9ba4accfe454aa44fc33123d47a4f89d47b314d6748eb0e9bc9",
- "completed": true
}
Send TRON or TRX assets from a virtual account to the blockchain. This will create Tatum internal withdrawal request with ID. If every system works as expected, withdrawal request is marked as complete and transaction id is assigned to it.
address required | string = 34 characters Blockchain address to send assets |
amount required | string <= 38 characters ^[+]?((\d+(\.\d*)?)|(\.\d+))$ Amount to be sent in Tron. |
compliant | boolean Compliance check, if withdrawal is not compliant, it will not be processed. |
fromPrivateKey required | string = 64 characters Private key of sender address. Either mnemonic and index, privateKey or signature Id must be present - depends on the type of account and xpub. |
fee | string^[+]?((\d+(\.\d*)?)|(\.\d+))$ Fee to be submitted as a transaction fee to blockchain. If none is set, default value of 2.5 TRX is used. |
paymentId | string [ 1 .. 100 ] characters Identifier of the payment, shown for created Transaction within Tatum sender account. |
senderAccountId required | string = 24 characters Sender account ID |
senderNote | string [ 1 .. 500 ] characters Note visible to owner of withdrawing account |
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": "TVAEYCmc15awaDRAjUZ1kvcHwQQaoPw2CW",
- "amount": "100000",
- "fromPrivateKey": "e75d702ce00987633f8009fbb1eabb5b187cb5b50fe9179a8d6cee6bab076b66",
- "senderAccountId": "5e68c66581f2ee32bc354087"
}
{- "id": "5e68c66581f2ee32bc354087",
- "txId": "c83f8818db43d9ba4accfe454aa44fc33123d47a4f89d47b314d6748eb0e9bc9",
- "completed": true
}
First step to create new TRC 10/20 token with given supply on the Tron blockchain with support of Tatum's private ledger.
This method only creates Tatum Private ledger virtual currency with predefined parameters. It will not generate any blockchain smart contract.
The whole supply of TRC 10/20 token is stored in the customer's newly created account. Then it is possible to create new Tatum accounts with TRC 10/20 token name as account's currency.
Newly created account is frozen until the specific TRC 10/20 smart contract address is linked with the Tatum virtual currency, representing the token.
Order of the steps to create TRC 10/20 smart contract with Tatum private ledger support:
symbol required | string [ 1 .. 30 ] characters ^[a-zA-Z0-9_]+$ The name of the token; used as an identifier within the Tatum platform and as a currency symbol on the blockchain | ||||||||
supply required | string <= 38 characters ^[+]?((\d+(\.\d*)?)|(\.\d+))$ The supply of the token | ||||||||
decimals required | number >= 0 The number of decimal places that the token has | ||||||||
type required | string The type of the token | ||||||||
description required | string [ 1 .. 100 ] characters The description of the token; used as a description within the Tatum platform and as a currency name on the blockchain | ||||||||
address required | string = 34 characters The blockchain address to be assigned to the virtual account as a deposit address | ||||||||
basePair required | string (FiatOrCryptoCurrency) The base pair for the virtual currency that represents the token; used to calculate the value of a transaction | ||||||||
baseRate | number >= 0 Default: 1 The exchange rate for the base pair; one unit of the created virtual currency equals 1 unit of | ||||||||
url | string [ 1 .. 100 ] characters (TRC-10 tokens only) The URL of the project that the token is created for | ||||||||
object (CustomerRegistration) If a customer with the specified external ID does not exist, a new customer is created. If a customer with the specified external ID exists, it is updated with the provided information. | |||||||||
| |||||||||
accountingCurrency | string (FiatCurrency) Default: "EUR" The ISO 4217 code of the currency in which all transactions for the created virtual account will be billed |
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.
{- "symbol": "MY_TOKEN",
- "supply": "1000000.0",
- "decimals": 6,
- "type": "TRC10",
- "description": "My Public Token",
- "address": "TVAEYCmc15awaDRAjUZ1kvcHwQQaoPw2CW",
- "basePair": "AED"
}
{- "accountId": "5e68c66581f2ee32bc354087",
- "address": "TVAEYCmc15awaDRAjUZ1kvcHwQQaoPw2CW"
}
10 credits per API call
Deploy a TRON TRC-10 or TRC-20 smart contract. This is a helper method, which is combination of Register new TRC-10/20 token in the ledger and Deploy blockchain TRC20 or Deploy blockchain TRC10.
After deploying a contract to blockchain, the contract address will become available and must be stored within Tatum. Otherwise, it will not be possible to interact with it and starts automatic blockchain synchronization.
Signing a transaction
When deploying a TRON TRC-10 or TRC-20 smart contract to the blockchain and a virtual account, 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.
symbol required | string [ 1 .. 30 ] characters ^[a-zA-Z0-9_]+$ The name of the token; used as an identifier within the Tatum platform and as a currency symbol on the blockchain | ||||||||
supply required | string <= 38 characters ^[+]?((\d+(\.\d*)?)|(\.\d+))$ The supply of the token | ||||||||
decimals required | number >= 0 The number of decimal places that the token has | ||||||||
type required | string The type of the token | ||||||||
description required | string [ 1 .. 100 ] characters The description of the token; used as a description within the Tatum platform and as a currency name on the blockchain | ||||||||
address required | string = 34 characters The blockchain address to be assigned to the virtual account as a deposit address | ||||||||
mnemonic required | string [ 1 .. 500 ] characters The mnemonic of the TRON wallet to generate the private key for the blockchain address from which the fee for deploying the smart contract will be deducted; is used together with the derivation index of this address | ||||||||
index required | integer <= 2147483647 The derivation index of the blockchain address from which the fee for deploying the smart contract will be deducted; is used together with the mnemonic to generate the private key for this address | ||||||||
basePair required | string (FiatOrCryptoCurrency) The base pair for the virtual currency that represents the token; used to calculate the value of a transaction | ||||||||
baseRate | number >= 0 Default: 1 The exchange rate for the base pair; one unit of the created virtual currency equals 1 unit of | ||||||||
url | string [ 1 .. 100 ] characters (TRC-10 tokens only) The URL of the project that the token is created for | ||||||||
object (CustomerRegistration) If a customer with the specified external ID does not exist, a new customer is created. If a customer with the specified external ID exists, it is updated with the provided information. | |||||||||
|
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.
{- "symbol": "MY_TOKEN",
- "supply": "10000000",
- "decimals": 6,
- "type": "TRC10",
- "description": "My Public Token",
- "address": "TVAEYCmc15awaDRAjUZ1kvcHwQQaoPw2CW",
- "mnemonic": "urge pulp usage sister evidence arrest palm math please chief egg abuse",
- "index": 0,
- "basePair": "AED"
}
{- "accountId": "5e68c66581f2ee32bc354087",
- "txId": "c83f8818db43d9ba4accfe454aa44fc33123d47a4f89d47b314d6748eb0e9bc9"
}
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.
{- "errorCode": "validation.failed",
- "message": "Request validation failed. Please see data for additional information.",
- "statusCode": 400,
- "data": [
- {
- "target": {
- "property": 12345
}, - "value": 12345,
- "property": "property1",
- "constraints": {
- "min": "property1 must not be less than 50000"
}
}
]
}
Send EGLD from a virtual account to the blockchain. This will create Tatum internal withdrawal request with ID. If every system works as expected, withdrawal request is marked as complete and transaction id is assigned to it.
nonce | number >= 0 The nonce to be set to the transaction; if not present, the last known nonce will be used |
address required | string = 42 characters Blockchain address to send assets |
amount required | string <= 38 characters ^[+]?((\d+(\.\d*)?)|(\.\d+))$ Amount to be sent in Ether | MATIC | XDC | KCS. |
compliant | boolean Compliance check, if withdrawal is not compliant, it will not be processed. |
privateKey required | string = 66 characters Private key of sender address. Either mnemonic and index, privateKey or signature Id must be present - depends on the type of account and xpub. |
paymentId | string [ 1 .. 100 ] characters Identifier of the payment, shown for created Transaction within Tatum sender account. |
senderAccountId required | string = 24 characters Sender account ID |
senderNote | string [ 1 .. 500 ] characters Note visible to owner of withdrawing account |
gasLimit | string^[+]?\d+$ Gas limit for transaction in gas price. If not set, automatic calculation will be used. |
gasPrice | string^[+]?\d+$ Gas price in Gwei. If not set, automatic calculation will be used. |
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": "0x687422eEA2cB73B5d3e242bA5456b782919AFc85",
- "amount": "100000",
- "privateKey": "0x687422eEA2cB73B5d3e242bA5456b782919AFc85",
- "senderAccountId": "5e68c66581f2ee32bc354087"
}
{- "id": "5e68c66581f2ee32bc354087",
- "txId": "c83f8818db43d9ba4accfe454aa44fc33123d47a4f89d47b314d6748eb0e9bc9",
- "completed": true
}
4 credits per API call
Deploy an Algorand ERC-20-equivalent smart contract. This is a helper method, which is combination of Register new Algorand ERC20 token in the ledger and Deploy blockchain ERC20.
After deploying a contract to blockchain, the contract address will become available and must be stored within Tatum. Otherwise, it will not be possible to interact with it and starts automatic blockchain synchronization.
Signing a transaction
When deploying an Algorand ERC-20-equivalent smart contract to the blockchain and a virtual account, 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.
symbol required | string [ 1 .. 8 ] characters ^[a-zA-Z0-9_]+$ The name of the token; used as an identifier within the Tatum platform and as a currency symbol on the blockchain | ||||||||
supply required | string <= 38 characters ^[+]?((\d+(\.\d*)?)|(\.\d+))$ The supply of the token | ||||||||
description required | string [ 1 .. 100 ] characters The description of the token; used as a description within the Tatum platform and as a currency name on the blockchain | ||||||||
address required | string = 58 characters The blockchain address to be assigned to the virtual account as a deposit address | ||||||||
mnemonic required | string [ 1 .. 500 ] characters The mnemonic to generate the private key for the blockchain address from which the fee for deploying the smart contract will be deducted; is used together with the derivation index of this address | ||||||||
index required | integer <= 2147483647 The derivation index of the blockchain address from which the fee for deploying the smart contract will be deducted; is used together with the mnemonic to generate the private key for this address | ||||||||
basePair required | string (FiatOrCryptoCurrency) The base pair for the virtual currency that represents the token; used to calculate the value of a transaction | ||||||||
baseRate | number >= 0 Default: 1 The exchange rate for the base pair; one unit of the created virtual currency equals 1 unit of | ||||||||
object (CustomerRegistration) If a customer with the specified external ID does not exist, a new customer is created. If a customer with the specified external ID exists, it is updated with the provided information. | |||||||||
|
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.
{- "symbol": "MY_TOKEN",
- "supply": "10000000",
- "description": "My Public Token",
- "address": "NTAESFCB3WOD7SAOL42KSPVARLB3JFA3MNX3AESWHYVT2RMYDVZI6YLG4Y",
- "mnemonic": "artist alarm clerk obscure timber firm reopen provide ankle vicious exhibit waste math toilet believe puppy lucky coast post kind black suspect mule able market",
- "index": 0,
- "basePair": "AED"
}
{- "accountId": "5e68c66581f2ee32bc354087",
- "txId": "JGDMW6F6BUWQLFXDEPZIUO5WCTQOL3QV7KZ2SBV44K5WE6SSNN7Q"
}
4 credits per API call
Send Algos or ERC-20-equivalent Algorand tokens from a virtual account (even from a virtual account without deposit addresses adssigned) to the Algorand blockchain.
The recipient has to agree in advance to receive assets because Algorand charges users for storing assets on their addresses, and an Algorand blockchain address by default does not receive assets unless explicitly agreed. Before sending any asset from a virtual account to the blockchain, make sure that the recipient has agreed to receive the assets to their address.
Sending Algorand assets creates an internal Tatum withdrawal request with an ID. If everything works as expected, the withdrawal request is marked as complete and a transaction ID is assigned to it.
Signing a transaction
When sending Algos or ERC-20-equivalent Algorand 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.
senderAccountId required | string = 24 characters The ID of the virtual account to send Algos from |
address required | string = 58 characters The blockchain address to send Algos to |
amount required | string <= 38 characters ^[+]?((\d+(\.\d*)?)|(\.\d+))$ The amount to send in Algos |
fee | string Default: "0.001" The transaction fee in Algos |
privateKey required | string = 103 characters The secret of the Algorand wallet (account). Secret, or signature Id must be present. |
compliant | boolean Compliance check; if the withdrawal is not compliant, it will not be processed |
paymentId | string [ 1 .. 100 ] characters The identifier of the Algo transfer that is shown on the virtual account for the created transaction |
senderNote | string [ 1 .. 500 ] characters The note for the recipient; must not contain spaces |
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.
{- "senderAccountId": "61b3bffddfb389cde19c73be",
- "address": "5YVZBUH3STSQ5ABCTLEIEIJ7QOZFILM2DLAEEA4ZL6CU55ODZIQXO5EMYM",
- "amount": "10000",
- "privateKey": "NBYMCVEEDFYV3TPWVRE6APE7PKHUJD4XAKXCKNCLKGUXOC3LFNJGZQCJCRA53HB7ZAHF6NFJH2QIVQ5USQNWG35QCJLD4KZ5IWMB24Q"
}
{- "id": "5e68c66581f2ee32bc354087",
- "txId": "c83f8818db43d9ba4accfe454aa44fc33123d47a4f89d47b314d6748eb0e9bc9",
- "completed": true
}