Setting up an Exchange or Application
How to set up an Exchange with Virtual Accounts
This phase is usually a one-time step that must be done before the launch of your Crypto Exchange or Application.
The setting up phase involves creating the Master Exchange wallets that your application will support and or creating service fee accounts for the wallet provider.
Generating the Exchange Master Wallets
Based on the chains to support, you will have to generate a wallet per chain.
Generating Wallets:
- Bitcoin - v3 REST API endpoint
- Ethereum - v3 REST API endpoint
- Other supported wallets
Generating Service Accounts
For every supported blockchain wallet, a service ledger account should be created.
Service ledger accounts will be used to gather fees from the trading of your end-users. A fee may be charged for every trade performed by end-users, and the fee can be transferred to the service account.
Within the Virtual Account ledger, an end-user (parameter "customer
") is an entity containing information about the end-user of your application, such as the customer's country of residence, accounting currency, etc. The customer is only created during the creation of a new account, and the only required field is the external_ID
. For service accounts, all accounts can be grouped into one service customer.
Every Virtual Account should have a properly set up accounting currency. It should be the FIAT currency of the country where the accounting is performed. For example, for an exchange in Germany, accounting should be in EUR, so the accounting currency is EUR. More details are available Create a Virtual Account - v3 REST API
curl --location --request POST 'https://api.tatum.io/v3/ledger/account' \
--header 'x-api-key: {YOUR_API_KEY}' \
--header 'Content-Type: application/json' \
--data-raw '{
"currency": "BTC",
"accountingCurrency": "EUR",
"customer": {
"externalId": "SERVICE_CUSTOMER_EXTERNAL_ID"
}
}'
//Response:
{
"currency": "BTC",
"active": true,
"balance": {
"accountBalance": "0",
"availableBalance": "0"
},
"frozen": false,
"accountingCurrency": "EUR",
"customerId": "5fb7bdf6e96d9ab593e191a6"
"id": "5fb7bdf6e96d9ab593e191a5"
}
Good to Know
- βEvery Virtual Account can belong to a specific customer in Tatum.
- Virtual Accounts can only handle one (1) single currency per Virtual Account.
- To generate a wallet for any ERC-20 token, like USDT or others, you can use the same endpoint as for Ethereum.
- Tokens are chain-dependent.
- Find the list of Support Tokens in the following article.
- Accounting currency is part of Tatum's built-in compliance engine. It's enabled by default.
- Be mindful of Tatum Derivation Path.
- For Mainnet and/or a Production Environment, it is recommended to use KMS to generate and store your Mnemonics and PrivateKeys.
- It is your responsibility to ensure on-chain asset liquidity.
When generaring wallets, you are expected to store the Mnemonics. Additional information is available at the following link.
Updated 2 months ago