Blockchain addresses

An endpoint to handle operations in Tatum Virtual accounts and on the blockchain, generate blockchain addresses, and link them to accounts.
There are 2 main concepts within Tatum Virtual accounts and blockchains:

  • Tatum account with a generated blockchain address - customers can use Tatum's private ledger transactions, send funds to blockchain addresses, and receive funds from blockchain users.
  • Tatum account with no blockchain address generated - an account generated on the private ledger with a currency like BTC, but without a blockchain address associated with it. Customers can send and receive funds within Tatum Private Ledger and send assets to the blockchain. However, it is impossible to receive funds from the blockchain.

Create new deposit address

2 credits per API call and 20 credits for each address registered for scanning every day. If address is FLOW or FUSD, additional 3000 credits are consumed - see Flow address generation.


Create a new deposit address for the account. This method associates public blockchain's ledger address with the account on Tatum's private ledger.
It is possible to generate multiple blockchain addresses for the same ledger account. By this, it is possible to aggregate various blockchain transactions from different addresses into the same account. Depending on the currency of an account, this method will either generate a public address for Bitcoin, Bitcoin Cash, Litecoin or Ethereum, DestinationTag in case of XRP or message in case of XLM. More information about supported blockchains and address types can be found here.
Addresses are generated in the natural order of the Extended public key provided in the account. Derivation index is the representation of that order - starts from 0 and ends at 2^31. When a new address is generated, the last not used index is used to generate an address. It is possible to skip some of the addresses to the different index, which means all the skipped addresses will no longer be used.

SecurityX-API-Key
Request
path Parameters
id
required
string

Account ID

Example: 5e68c66581f2ee32bc354087
query Parameters
index
number

Derivation path index for specific address. If not present, last used index for given xpub of account + 1 is used. We recommend not to pass this value manually, since when some of the indexes are skipped, it is not possible to use them lately to generate address from it.

Example: index=2
Responses
200

OK

400

Bad Request. Validation failed for the given object in the HTTP Body or Request parameters.

401

Unauthorized. Not valid or inactive subscription key present in the HTTP Header.

403

Forbidden. The request is authenticated, but it is not possible to required perform operation due to logical error or invalid permissions.

500

Internal server error. There was an error on the server while processing the request.

post/v3/offchain/account/{id}/address
Request samples
curl -i -X POST \
  'https://api-eu1.tatum.io/v3/offchain/account/{id}/address?index=2' \
  -H 'x-api-key: YOUR_API_KEY_HERE'
Response samples
application/json
{
  • "address": "7c21ed165e294db78b95f0f181086d6f",
  • "currency": "BTC",
  • "derivationKey": 2147483647,
  • "xpub": "xpub6FB4LJzdKNkkpsjggFAGS2p34G48pqjtmSktmK2Ke3k1LKqm9ULsg8bGfDakYUrdhe2EHw5uGKX9DrMbrgYnVfDwrksT4ZVQ3vmgEruo3Ka",
  • "destinationTag": 5,
  • "memo": "5",
  • "message": "5"
}

Get all deposit addresses for account

1 credit per API call.


Get all deposit addresses generated for account. It is possible to deposit funds from another blockchain address to any of associated addresses and they will be credited on the Tatum Ledger account connected to the address.

SecurityX-API-Key
Request
path Parameters
id
required
string

Account ID

Example: 5e68c66581f2ee32bc354087
Responses
200

OK

400

Bad Request. Validation failed for the given object in the HTTP Body or Request parameters.

401

Unauthorized. Not valid or inactive subscription key present in the HTTP Header.

500

Internal server error. There was an error on the server while processing the request.

get/v3/offchain/account/{id}/address
Request samples
curl -i -X GET \
  'https://api-eu1.tatum.io/v3/offchain/account/{id}/address' \
  -H 'x-api-key: YOUR_API_KEY_HERE'
Response samples
application/json
[
  • {
    }
]

Create new deposit addresses in a batch call

2 credits per API call, 1 credit for every address created and 20 credits for each address registered for scanning every day. If address is FLOW or FUSD, additional 3000 credits are consumed for each address - see Flow address generation.


Create new deposit addressess for the account. This method associates public blockchain's ledger address with the account on Tatum's private ledger.
It is possible to generate multiple blockchain addresses for the same ledger account. By this, it is possible to aggregate various blockchain transactions from different addresses into the same account. Depending on the currency of an account, this method will either generate a public address for Bitcoin, Bitcoin Cash, Litecoin or Ethereum, DestinationTag in case of XRP or message in case of XLM. More information about supported blockchains and address types can be found
here.
Addresses are generated in the natural order of the Extended public key provided in the account. Derivation index is the representation of that order - starts from 0 and ends at 2^31. When a new address is generated, the last not used index is used to generate an address. It is possible to skip some of the addresses to the different index, which means all the skipped addresses will no longer be used.

SecurityX-API-Key
Request
Request Body schema: application/json
required
Array of objects
Array
accountId
required
string = 24 characters

ID of the account, for which blockchain address will be created.

derivationKey
integer <int32> [ 0 .. 2147483647 ]

Derivation key index for given address to generate. If not present, first not used address will be created.

Responses
200

OK

400

Bad Request. Validation failed for the given object in the HTTP Body or Request parameters.

401

Unauthorized. Not valid or inactive subscription key present in the HTTP Header.

403

Forbidden. The request is authenticated, but it is not possible to required perform operation due to logical error or invalid permissions.

500

Internal server error. There was an error on the server while processing the request.

post/v3/offchain/account/address/batch
Request samples
application/json
{
  • "addresses": [
    ]
}
Response samples
application/json
[
  • {
    }
]

Check, if deposit address is assigned

1 credit per API call.


Check, whether blockchain address for given currency is registered within Tatum and assigned to Tatum Account. Returns account this address belongs to, otherwise throws an error.

SecurityX-API-Key
Request
path Parameters
currency
required
string

Currency

Example: BNB
address
required
string

Blockchain Address to check

Example: tbnb1sfj9981j2eo1ij2e09
query Parameters
index
number

In case of XLM or XRP, this is a memo or DestinationTag to search for.

Example: index=1
Responses
200

OK

400

Bad Request. Validation failed for the given object in the HTTP Body or Request parameters.

401

Unauthorized. Not valid or inactive subscription key present in the HTTP Header.

403

Forbidden. The request is authenticated, but it is not possible to required perform operation due to logical error or invalid permissions.

500

Internal server error. There was an error on the server while processing the request.

get/v3/offchain/account/address/{address}/{currency}
Request samples
curl -i -X GET \
  'https://api-eu1.tatum.io/v3/offchain/account/address/{address}/{currency}?index=1' \
  -H 'x-api-key: YOUR_API_KEY_HERE'
Response samples
application/json
{
  • "id": "5e68c66581f2ee32bc354087",
  • "balance": {
    },
  • "currency": "BTC",
  • "frozen": false,
  • "active": true,
  • "customerId": "5e68c66581f2ee32bc354087",
  • "accountCode": "03_ACC_01",
  • "accountingCurrency": "EUR",
  • "xpub": "xpub6FB4LJzdKNkkpsjggFAGS2p34G48pqjtmSktmK2Ke3k1LKqm9ULsg8bGfDakYUrdhe2EHw5uGKX9DrMbrgYnVfDwrksT4ZVQ3vmgEruo3Ka"
}

Remove address for account

1 credit per API call.


Remove blockchain address from the Ledger account. Tatum will not check for any incoming deposits on this address for this account. It will not be possible to generate the address in the future anymore.

SecurityX-API-Key
Request
path Parameters
id
required
string

Account ID

Example: 5e68c66581f2ee32bc354087
address
required
string

Blockchain address

Example: 2MsM67NLa71fHvTUBqNENW15P68nHB2vVXb
query Parameters
index
number >= 1

Destination tag or memo attribute for XRP, BNB or XLM addresses

Example: index=1
Responses
204

OK

400

Bad Request. Validation failed for the given object in the HTTP Body or Request parameters.

401

Unauthorized. Not valid or inactive subscription key present in the HTTP Header.

403

Forbidden. The request is authenticated, but it is not possible to required perform operation due to logical error or invalid permissions.

500

Internal server error. There was an error on the server while processing the request.

delete/v3/offchain/account/{id}/address/{address}
Request samples
curl -i -X DELETE \
  'https://api-eu1.tatum.io/v3/offchain/account/{id}/address/{address}?index=1' \
  -H 'x-api-key: YOUR_API_KEY_HERE'
Response samples
application/json
{
  • "errorCode": "validation.failed",
  • "message": "Request validation failed. Please see data for additional information.",
  • "statusCode": 400,
  • "data": [
    ]
}

Assign address for account

2 credits for API call and 20 credits for each address registered for scanning every day.


This method is used when the account has no default xpub assigned, and addresses are handled manually. It is possible to pair any number of blockchain address to the account.

SecurityX-API-Key
Request
path Parameters
id
required
string

Account ID

Example: 5e68c66581f2ee32bc354087
address
required
string

Blockchain address

Example: 2MsM67NLa71fHvTUBqNENW15P68nHB2vVXb
query Parameters
index
number >= 1

Destination tag or memo attribute for XRP or XLM addresses

Example: index=1
Responses
200

OK

400

Bad Request. Validation failed for the given object in the HTTP Body or Request parameters.

401

Unauthorized. Not valid or inactive subscription key present in the HTTP Header.

403

Forbidden. The request is authenticated, but it is not possible to required perform operation due to logical error or invalid permissions.

500

Internal server error. There was an error on the server while processing the request.

post/v3/offchain/account/{id}/address/{address}
Request samples
curl -i -X POST \
  'https://api-eu1.tatum.io/v3/offchain/account/{id}/address/{address}?index=1' \
  -H 'x-api-key: YOUR_API_KEY_HERE'
Response samples
application/json
{
  • "address": "7c21ed165e294db78b95f0f181086d6f",
  • "currency": "BTC",
  • "derivationKey": 2147483647,
  • "xpub": "xpub6FB4LJzdKNkkpsjggFAGS2p34G48pqjtmSktmK2Ke3k1LKqm9ULsg8bGfDakYUrdhe2EHw5uGKX9DrMbrgYnVfDwrksT4ZVQ3vmgEruo3Ka",
  • "destinationTag": 5,
  • "memo": "5",
  • "message": "5"
}