1.1 'New currency' & 'Edit currency'
2.2 'New market' & 'Market config'
1.1 'New blockchain' & 'Edit blockchain'
2.1 'New wallet' & 'Edit wallet'
That page provides a dashboard of users activities on the platform. First line of blocks shows different user activities metrics for last 24 hours. Below those blocks placed chart with users activities for last 7 days.
New Signup
block shows a number of new sign ups for last 24 hours.
Login last 24h
block shows a number of successful logins for last 24 hours.
Failed Login
block shows a number of failed logins for last 24 hours.
Pending Applications
block shows a number of users that are waiting for verification.
This page provides a list of all users on a platform.
Field name description:
Active
- means that a user is fully functional regarding his KYC level.Pending
- means that a user submitted some documents that requires verification.Banned
- means that a user is not able to login and interact with his account.UID
and Email
fields are clickable and redirect to a user profile page.
User's profile page consists of six tabs: Main info, Balances, Open orders, History, Activities and Documents.
Main info tab shows essential information about a user and consist of four blocks: Personal data
, KYC levels
, Settings
and Labels
. By default, platform has four KYC levels. For KYC verification platform collects the next information: email, phone number, name of a user, day of birth, country, citizenship, city, and address, postcode, identity information and documents. User gets the first level after email confirmation. User with level 1 can login, deposit and trade. To make a withdrawal user needs to enable 2FA. User gets the second level after phone verification. To get the third level user needs to upload scans or photos of his identity document. After documents was submitted, admin can manually verify them and assign level 3. KYC levels can be customized and extended before the deployment process.
Personal data
block description:
Last activity: shows a date of user's last activity.
UID: shows a user ID. System uses UID as a unique identifier on the platform.
Created: shows a date of a user registration.
Email: shows a user's email.
Gender: shows a gender of a user.
First name: shows a first name of a user.
Last name: shows a last name of a user.
Identity document type: shows a type of identity document that was provided by a user.
Date of birth: shows the date of a user's birthday.
Identity expiration date: shows a date when an identity document expires.
Identity document number: shows a number of an identity document.
Country: shows a country of a user.
Citizenship: shows a citizenship of a user.
State/Province: shows a state/province of a user.
City: shows a city of a user.
Address: shows an address of a user.
Postcode: shows a postcode of a user.
KYC levels
block shows a status of each KYC level. Admin can manually force verify or force reject KYC levels of a user. In the case when admin force rejected some of the user's levels, a user needs to submit information once again, begging from the lowest rejected level. Statuses of the KYC levels directly connected with labels.
Settings
block provides functionality to manage user's account and perform security related activities.
Role: shows a role of a user on the platform. Admin can change user role from predefined drop-down list: super admin
, admin
, accountant
, compliance
, technical
, support
, trader
, member
and broker
.
Status: shows a user status. Users can have one of three statuses:
Active
- means that a user is fully functional regarding his KYC level.Pending
- means that a user submitted some documents that requires verification.Banned
- means that a user is not able to login and interact with his account.Referrer ID: shows an UID of a user who provided referral code.
Authorization 2FA is a switch button that indicate 2FA status. Admin can disable 2FA on users' accounts but can't disable 2FA on his account. 2FA on admin account can be disabled by another admin.
Reset password is a button that on click sends a letter with a reset password link to a user email.
Labels
block shows a set of labels with statuses. Labels take part in KYC logic. By default, the platform support three private labels: email, phone, and document:
Clicking on a label opens edit window, to delete a label admin needs to click "cross" on a label. Add new
button can be used to create custom labels. Create label window has three field:
This page shows detailed information on user balances. For every currency we show available balance, locked balance and total balance.
This page shows all open orders of a user. Admin can filter them by columns in the right-side filtering menu.
Field name description:
Admin can use the Cancel
button to cancel a corresponding order of a user.
This page consist of four tables with a history of user's Trades
, Orders
, Deposits
and Withdrawals
.
User Trades
history block contains a table with all trades of a user.
Field name description:
Buy
side means that trade was a result of the active buy order execution; Sell
side means that trade was a result of the active sell order execution.User Orders
history block contains a table of orders history.
Field name description:
Buy
means that buy order was an active side; Sell
means that sell order was an active side.Pending
is the initial internal status of an order, admin don't see this status in Tower. It means that the platform just received an order from a user and haven't locked funds, yet.Wait
status means that this is an active order that is waiting for fulfilment. Funds are locked.Done
status means that this order was fulfilled and funds were unlocked.Cancel
status means that this order has been canceled by a user or admin and funds were unlocked.Reject
status can be assigned to orders that were automatically rejected by 'AppLogic' (custom service that can have additional checks for orders).User Deposits
history block contains a table with deposits.
Field name description:
Submitted
is the initial state of a deposit. That status assigns to a deposit that was just detect and waiting for Min confirmations number.Accepted
state means that the minimal number of confirmation blocks were successfully mined above the block with the deposit transaction. For deposits with Accepted
status, platform updates user balances (updates asset and liability records balances).Collected
state means that funds were collected to one or few platform wallets ('hot', 'warm' or 'cold' wallet/s). Funds collection process starts automatically when deposit change state to Accepted
. Rejected
means that a deposit was rejected by admin during the confirmation process.Canceled
means that a deposit was cancelled automatically by some platform services. For example, in 'AppLogic' (AppLogic - is a custom microservice with custom business rules) can be implemented additional checks for FIAT deposit and if those checks fail, 'AppLogic' can assign Canceled
status to the deposit.Errored
status that assigned to a deposit transaction that faced error during the collection process. (The most common reason is insufficient ETH on a fee wallet to collect the ERC20 deposit)User Withdrawals
history block contains a table with withdrawals.
Field name description:
ID: shows the ID of a withdrawal request.
Currency: shows the currecncy of a withdrawal request.
TxID: shows the transaction ID of a withdrawal on a blockchain. Clicking on transaction ID system redirects to a blockchain scanner, there admin can see detailed information of corresponding withdrawal.
Recipient address: shows a wallet address of a recipient.
Date: shows a date when a withdrawal request was created on the platform.
Amount: shows the amount that was in a withdrawal request.
State: shows possible states of withdrawal request. Withdrawal request can have one of the next states:
Prepared
is the initial state of withdrawal request. This is internal (system) state of a withdrawal request and not visible for admin. Funds are not locked.Submitted
status shows that withdrawal request is allowed for further validation. Funds are locked.Accepted
status shows that the platform has validated withdrawal request and queued it for processing by a 'worker' (worker - is an internal system process). If withdrawal request remains with the status Accepted
too long it means that a user exceeds some of the withdrawal limits. If needed that withdrawal request can be processed manually by admin.Processing
status assigns to withdrawal requests that are preparing by the platform to be sent to a blockchain node.Confirming
status assigns to withdrawal transaction that was sent to a blockchain and waiting Min Confirmations number of blocks to be mined above the block with a withdrawal transaction.Succeed
status assigns to withdrawal requests that were successfully recorded into blockchain and reached Min Confirmations number. Funds subtracted from user balance (platform updates asset and liabilities).Skipped
status assigns to a withdrawal request if a 'hot' wallet has insufficient balance and withdrawal can't be processed. After replanishment of the 'hot' wallet admin can manually reprocess withdrawal request.Rejected
status means that withdrawal request was rejected by the admin. Admin can reject withdrawal requests that break the platform rules. For example, if the withdraw request exceeds some of the limits, then admin can reject that request.Canceled
means that withdrawal request was cancelled automatically by some of the platform services. For example, in 'AppLogic' (AppLogic - is a custom microservice with custom business rules) can be implemented additional checks for withdrawals and if those checks fail, 'AppLogic' can assign Canceled
status to the withdrawal request.Failed
status assigns to withdrawal transaction that faced unknown error during its processing. Error can happen into blockchain or in a 'worker'.Errored
status is similar to Failed
status. Errored
status assigns to withdrawal transaction that faced a known error during its processing. Clicking on an arrow of coresponding withdrawal redirects to the page with detailed information on that withdrawal.
User Activities
tab shows information of user's activities on the platform.
Field name description:
Succeed
- means that attempt ended up with success.Failed
- means that attempt ended up with failure.User Documents
tab shows a list of all documents that a user uploaded during the KYC process.
Field name description:
clip
button to check uploaded document.This page provides a detailed list of operators activities on the platform. This page only visible for 'Super admin' role.
Field name description:
read
- means that the operator performed read action.create
- means that the operator performed creation action.update
- means that the operator performed update action.delete
- means that the operator performed delete action.Succeed
- means that attempt ended up with success.Failed
- means that attempt ended up with failure.Clicking on the information icon opens pop-up window with detail logs on the performed action.
This page shows a list of documents that are waiting for verification. Whenever a user submits a document that document appears in pending applications. Admin can use this page for bulk approve or bulk reject of documents.
Field name description:
clip
button to check uploaded document.This page shows a list of supported currencies. Admin can use this page to edit existing currencies and add new ones.
Field name description:
Active
means that currency visible for users. Disabled
means that currency not visible for users.Clicking on an arrow of corresponding currency redirects to the currency profile page.
Clicking the ADD CURRENCY
button opens setup page for a new currency
Field name description:
Enabled
and Disabled
. Enabled
- means that currency visible on the UI. Disabled
- means that currency invisible on the UI. Hot
, Warm
orCold
wallets. The platform decides where to send funds based on wallet balance and Max Balance
wallet parameter. Currencies
page.Properties block used for tokens and currencies that require additional parameters. By default, the properties block contains the next fields:
wei
. Wei is the smallest unit of ethereum. You can check a recommended gas price on https://ethgasstation.info. That resource shows the gas price in gwei, 1 gwei is 1,000,000,000 wei.To save a new currency admin needs to press the Create
button. To save changes of an existing currency admin needs to press the Submit
button.
Bellow, you can find an example of a currency profile page.
This page displays a list of trading pairs supported by the platform. Here admin can edit existing trading pairs and add new ones.
Field name description:
Enabled
and Disabled
: Enabled
- means that market visible on the UI. Disabled
- means that market invisible on the UI. Clicking on a market from the list opens the market profile. Market profile page has two tabs: Orderbook
and Configuration
tabs.
This page shows orderbook of a corresponding market. Admin can use this window to cancel orders from a certain level in the orderbook. Orderbook consists of two parts: Buy orders
and Sell orders
.
Field name description:
Admin can use the Cancel
button to cancel a corresponding order of a user at a certain level in the orderbook. Clicking Show all
button opens a full list of orders .
Clicking the ADD MARKET
button opens setup page for a new market pair.
Base and quote fields description:
Settings fields description:
Min price: is a minimum price that can be used to create order.
Max price: is a maximum price that can be used to create order.
Min amount: is a minimum amount that can be used to create order.
Status: is the switch button that represents market status. It can be Enabled
or Disabled
.
Enabled
- means that market visible on the UI. Disabled
- means that market invisible on the UI. Price precision: is a value that regulates how many digits after the decimal point (.) we will use to show the price in orders of that market pair on the UI.
Amount precision: is a value that regulates how many digits after the decimal point (.) we will use to show the amount in orders of that market pair on the UI.
Position: is the position of a market on Markets
page.
When the Create
button is clicked, all market settings save to a database. After saving a new market appear in the list of supported trading pairs available to traders on the platform.
Bellow, you can find a market profile page. Admin can edit some parameters. To save changes admin needs to press the Submit
button.
Market precision recommendations
Examples from the table can be used as a recommended price and amount precision of corresponding markets.
Base | Quote | Price precision | Amount precision |
---|---|---|---|
BTC | USD | 2 | 6 |
ETH | USD | 2 | 5 |
BCH | USD | 2 | 5 |
LTC | USD | 2 | 5 |
XRP | USD | 5 | 2 |
DASH | USD | 2 | 5 |
ETH | BTC | 6 | 3 |
BCH | BTC | 6 | 3 |
LTC | BTC | 6 | 2 |
XRP | BTC | 8 | 0 |
DASH | BTC | 6 | 3 |
BCH | ETH | 5 | 2 |
LTC | ETH | 6 | 3 |
XRP | ETH | 8 | 0 |
DASH | ETH | 6 | 3 |
(The recommended precision should be adjusted depending on market conditions. Last update September 2019).
This page shows an aggregated list of orders and consists of two tabs: open orders and orders history tabs. Admin can filter specific orders using the FILTER
button and can export data from this page to CSV file using the EXPORT
button. Clicking CANCEL ORDERS
button brings up a popup window with the ability to cancel all orders of one market per one cancel.
This page shows open orders of all users on the platform.
Field name description:
Buy
means that buy order was an active side; Sell
means that sell order was an active side.Admin can use the Cancel
button to cancel a corresponding order of a user.
This page shows a history of all orders that are not active anymore.
Field name description:
Buy
means that buy order was an active side; Sell
means that sell order was an active side.Pending
is the initial internal status of an order, admin don't see this status in Tower. It means that the platform just received an order from a user and haven't locked funds, yet.Wait
status means that this is an active order that is waiting for fulfilment. Funds are locked.Done
status means that this order was fulfilled and funds were unlocked.Cancel
status means that this order has been canceled by a user or admin and funds were unlocked.Reject
status can be assigned to orders that were automatically rejected by 'AppLogic' (custom service that can have additional checks for orders).This page shows all trades that acuared on the platform.
Field name description:
Buy
side means that trade was a result of the active buy order execution; Sell
side means that trade was a result of the active sell order execution.Accountings menu consist of blocks with financial records: Deposits
, Withdrawals
, Withdrawals pending
, Adjustments
and Pending
.
This page shows an aggregated list of deposits. Admin can filter deposits, create new ones or process existing.
Field name description:
Submitted
is the initial state of a deposit. That status assigns to a deposit that was just detect and waiting for Min confirmations number.Accepted
state means that the minimal number of confirmation blocks were successfully mined above the block with the deposit transaction. For deposits with Accepted
status, platform updates user balances (updates asset and liability records balances).Collected
state means that funds were collected to one or few platform wallets ('hot', 'warm' or 'cold' wallet/s). Funds collection process starts automatically when deposit change state to Accepted
. Skipped
state means that the platform tried to collect funds from deposit to platform wallet and fail. Usually, it happens with token deposits when there are not enough funds on 'fee' wallet or funds was sent but it took longer and platform skipped deposit collection process. After fixing the problem with 'fee' wallet admin can collect deposit manually. Rejected
means that a deposit was rejected by admin during the confirmation process.Canceled
means that a deposit was cancelled automatically by some platform services. For example, in 'AppLogic' (AppLogic - is a custom microservice with custom business rules) can be implemented additional checks for FIAT deposit and if those checks fail, 'AppLogic' can assign Canceled
status to the deposit.To create manual FIAT deposit admin needs to click the ADD NEW
button and fill 'Create deposit' window with the data:
Create
button to create a new FIAT deposit.Created FIAT deposit appears with a Submitted
status and wait for manual verification. For deposit with status Submitted
the platform doesn't create liabilities.
Clicking a deposit record opens up a deposit profile page. Profile page has information of deposit and action buttons. Clicking Reject
button change status of the deposit to Rejected
. Clicking Process
button change status of the deposit to Accepted
and creates liabilities for that deposit.
This page shows withdrawal requests. In Coin
tab platform shows cryptocurrency withdrawal request, in Fiat
tab platform shows FIAT withdrawal requests. Withdrawals of all user for all currencies can be found on that page. Admin can filter withdrawal requests and process them.
Field name description:
Prepared
is the initial state of withdrawal request. This is internal (system) state of a withdrawal request and not visible for admin. Funds are not locked.Submitted
status shows that withdrawal request is allowed for further validation. Funds are locked.Accepted
status shows that the platform has validated withdrawal request and queued it for processing by a 'worker' (worker - is an internal system process). If withdrawal request remains with the status Accepted
too long it means that a user exceeds some of the withdrawal limits. If needed that withdrawal request can be processed manually by admin.Processing
status assigns to withdrawal requests that are preparing by the platform to be sent to a blockchain node.Confirming
status assigns to withdrawal transaction that was sent to a blockchain and waiting Min Confirmations number of blocks to be mined above the block with a withdrawal transaction.Succeed
status assigns to withdrawal requests that were successfully recorded into blockchain and reached Min Confirmations number. Funds subtracted from user balance (platform updates assets and liabilities balance).Skipped
status assigns to a withdrawal request if a 'hot' wallet has insufficient balance and withdrawal can't be processed. After replanishment of the 'hot' wallet admin can manually reprocess withdrawal request.Rejected
status means that withdrawal request was rejected by the admin. Admin can reject withdrawal requests that break the platform rules. For example, if the withdraw request exceeds some of the limits, then admin can reject that request.Canceled
means that withdrawal request was cancelled automatically by some of the platform services. For example, in 'AppLogic' (AppLogic - is a custom microservice with custom business rules) can be implemented additional checks for withdrawals and if those checks fail, 'AppLogic' can assign Canceled
status to the withdrawal request.Failed
status assigns to withdrawal transaction that faced unknown error during its processing. Error can happen into blockchain or in a 'worker'.Errored
status is similar to Failed
status. Errored
status assigns to withdrawal transaction that faced a known error during its processing. Clicking on an arrow of coresponding withdrawal redirects to the page with detailed information on that withdrawal.
Crypto withdarawal page consist of Member info
, Withdrawal
and Withdrawal history
blocks. Those blocks helps admin to take decision when a withdrawal request requare manual interaction. From Member info
admin can see users balance state. In Withdrawal
block admin can find details of a withdrawal request. In Withdrawal history
admin can check the latest withdrawal requests of a user.
A withdrawal transaction for a big amount (e.g., amount that higher than 'hot' wallet balance or exceeds a withdrawal limit) can be processed manually by an admin. Withdrawal requests that are waiting for manual interaction have the status Accepted
. To process such withdrawal request admin should go to the page with details on a withdrawal request.
Admin can process withdrawal request for a big amount outside the platform from warm wallet. After processing withdrawal request outside the platform admin needs to copy ID of that transaction to the platform in the TxID
field.
Steps to process a withdrawal transaction outside the platform:
TxID
field and press the Load withdrawal
button. Process
button can be used to process a withdrawal transaction after 'hot' wallet was replenished or to force process a withdrawal that exceeds a withdrawal limit.
Reject
button can be used to reject a withdrawal transaction that exceeds a withdrawal limit.
Below, you can find an example of crypto withdrawal.
This page contains an aggregated list of pending withdrawal request that is waiting for an action from the admin side. 'Withdrawals pending' page has the same structure as 'Withdrawals' page.
Is a tool that helps to keep accounting up to date. Admin can add records to the accounting using that tool. It's a very powerful tool incompetent usage of which can cause a lot of troubles. This page contains a list of all adjustments and provides the functionality to add new ones.
Field name description:
Pending
is initial state of an adjustment. Adjustment created and waiting for verification.Verified
status means that an adjustment was verified by an admin. Platform creates updates balances in accounting.Rejectet
status means that an adjustment was rejected by an admin.Clicking the ADD NEW
button opens page with a form for a new adjustment.
Field name description:
Currency
field autofill if a currency is chosen in the above field. Code
is a drop-down menu with codes of different accounting tables. UID
is a field for user ID, it needs to be used if adjustment related to a platform user.To finish adjustment creation admin needs to click the Create
button. After that will appear in a list of adjustments with status pending.
Clicking one of the adjustments opens up adjustment info page. Admin can use Reject
or Accept
button to reject or accept an adjustment record. After processing, platform updates 'State', 'Validator ID' and 'Updated' fields.
This block consists of four tabs that represent a double-entry accounting. Admin can use those table to check the correctness of financial transactions.
Each operation table has own code that helps to categorise records in the accounting system. The account code consist of three numbers:
1
- represents Assets.2
- represents Liabilities.3
- represents Revenue.4
- represents Expenses.0
- represents the main
account. The main
account is an account which funds can be freely used by a user to create an order or a withdrawal request.1
- represent locked
account. The locked account is an account which funds can't be used by a user. To use them first funds needs to be unlocked (moved to the main
account). When a user creates an order or a withdrawal request platform locked funds (move from the main
account into locked) to prevent double-spending. If order or withdrawal request cancelled, platform unlocks funds.1
- represents the FIAT currency type.2
- represents the cryptocurrency type.For example, 211
means that transaction related to liabilities FIAT currency on the locked account.
This page represents financial records of assets movements. Whenever any currency moved out from the platform or into the platform it reflects in Assets
table.
Field name description:
Deposit
, Withdrawal
or Adjustment
types.This page represents financial records of the platform's liabilities. Whenever a user interacts with his funds it reflects in the Liabilities
table.
Field name description:
Liabilities ID: shows the ID of a transaction in the liabilities table.
Code: shows to which account type related a transaction.
Currency ID: shows the currency of a corresponding transaction.
UID: shows the ID of a user who made a coresponding transaction.
Ref ID: shows the ID of a corresponding transaction type.
Ref type: shows a type of transaction. For liabilities, it can be Deposit
, Withdrawal
, Order
, Trade
or Adjustment
types.
Credit: shows an amount that was added to the liabilities. Credit increase number of liabilities.
Debit: shows an amount that was removed from the liabilities. Debit decrease number of liabilities.
Date: shows the date when a transaction occurred on the platform.
This page represents financial records of the platform's revenue. Whenever the platform charges any fees, those fees reflect in the Revenue
table.
Field name description:
Deposit
, Withdrawal
, Trade
or Adjustment
types.This page represents financial records of the platform's expenses. Expenses recording is not an automated process. Whenever admin needs to add new records to the Expenses
table he can do this with a use of adjustments.
Field name description:
Adjustment
type.This page displays a list of supported blockchains. Admin can edit settings of existing blockchain nodes and can add new ones. Current version supports the next cryptonodes: Bitcoin, Ethereum (geth and parity), Bitcoin Cash, Litecoin, Dash, EOS, NEO, Ardor.
Field name description:
Enabled
- node is active and does transactions processing.Disabled
- node is inactive and doesn't do transactions processing.Clicking the ADD BLOCKCHAIN
button opens up a setup page for a new blockchain node.
Field name description:
Enabled
or Disabled
. Enabled
- means that the platform will process deposits and auto withdrawals of coins and tokens that circulated on that blockchain. Disabled
- means that the platform will NOT process deposits and auto withdrawals of coins and tokens that circulated on that blockchain. http://geth:8545
.Reset
button applies changes in the Height
field.https://etherscan.io/address/#{address}
link consists of a URL and an address object. Whenever admin checks address' balance the object is replaced with a corresponding wallet address.https://etherscan.io/tx/#{txid}
link consists of a URL and a transaction ID object. Whenever admin checks a transaction state the object is replaced with a corresponding transaction ID.When the Create
button is clicked, all blockchain settings save to a database. After saving a new blockchain appear in the list of supported blockchain nodes.
Every time after the platform maintenance, the admin needs to rescan blockchain nodes starting from the blocks before maintenance. The admin needs to change the Hight
and press the Reset
button for every blockchain node. This job needs to be done to identify and process deposits (withdrawals) that occurred during the maintenance time.
Bellow, you can find the blockchain profile page. Admin can edit some parameters. To save changes admin needs to press the Submit
button.
This page displays platform's wallets of corresponding cryptocurrency or blockchain. Admin can edit existing wallets and add new ones. One wallet can handle multiple curencies that are on the same blockchain network.
Field name description:
Deposit
, Hot
, Warm
, Cold
and Fee
.Enabled
- wallet is active and fully functional.Disabled
- wallet is inactive and not functional.Clicking the ADD WALLET
button opens up a setup page for a new wallet
Field name description:
Name: is a field for a descriptive wallet name.
Status: is a switch button of status. Wallet can have one of next statuses: Enabled
or Disabled
. Wallet with status Disabled
stops being functional.
Deposit
wallet Disabled
it means that the platform doesn't create Deposit
wallets for newly registered users.Hot
wallet Disabled
it means that the platform can't collect funds from users' Deposit
wallets to a one of the platform wallets and can't process autowithdrawals.Warm
wallet Disabled
it means that the platform can't collect funds from users' Deposit
wallets to a platform Warm
wallet and will try to collect to Hot
or Cold
wallets even if they reached Max balance
.Cold
wallet Disabled
it means that the platform can't collect funds from users' Deposit
wallets to a platform Cold
wallet and will try to collect to Hot
or Warm
wallets even if they reached Max balance
.Fee
wallet Disabled
it means that the platform can't collect tokens from users' Deposit
wallets to a one of the platform wallets. As tokens are not independent and rely on a parent blockchain to move them from one wallet to another we need to pay a transaction fee in the native coin. For example, Golem tokens issued on Ethereum blockchain and to move Golem tokens you need to pay a transaction fee in Ethereum coin. Exactly for that purpose, to pay a transaction fee we have Fee
wallet kind from which we send a small amount to user's deposit wallet to pay a fee transaction.Blockchain Key: a drop-down menu with a list of configured blockchain nodes.
Gateway Client: a drop-down menu with a list of supported gateways.
Address: is a wallet address on the corresponding blockchain node
Kind: is a drop-down menu with a list of wallet types. There are five wallet types:
Deposit
- is a technical wallet, the platform DO NOT collect/hold funds on that wallet. The main purpose of that wallet type is generating unique addresses for every user. Without that wallet, the platform does not generate deposit addresses for users.
For the majority of cryptocurrencies except for Ripple, the 'Address' field of deposit wallet can be blank.
Fee
- this wallet type uses to pay fees for token transfers on a blockchain. Some tokens depend on a parent blockchain. For example, ERC20 depends on Ethereum network. To do ERC20 transfer on Ethereum network you need to pay a fee in Ethereum coin (ETH).
Example where 'Fee' wallet take a part in deposit collection:
a user deposit ERC20 token on his deposit wallet.
the platform recognizes that deposit and if 'Fee' wallet has enough ETH, platform sends a small amount of ETH from 'Fee' wallet to user deposit wallet with ERC20 token.
after that platform initiate the deposit collection process and send all ERC20 tokens from user deposit address to hot and/or warm and/or cold wallets.
Small tip: if your platform is not big, you can use the same wallet address for 'Fee' as for 'Hot' wallet. In that case, you don't need to monitor and replenish 'Fee' wallet.
Hot
- a wallet for deposit collection and auto-withdrawal processing. The private key to this wallet stored on the blockchain node.
Warm
- the purposes of that wallet type are more secure funds storing, hot wallet replenishment and big withdrawal processing. Warm wallet private keys are stored outside the platform and should not be used on the platform.
Cold
- the most secure wallet type. This wallet should be generated offline or on the hardware key. The platform stores only the public key of a cold wallet. You can find more information on wallets in Wallets best practices.
Maximum Balance: this parameter represents a wallet capacity in USD equivalent. For a Deposit
wallet, the max balance should be 0. Max balances of Hot
, Warm
and Cold
wallets depend on currency and platform size. For a Cold
wallet, the max balance should be 0, in this case, all funds that don't fit in Hot
and Warm
wallets will be collected to a Cold
wallet. Also if needed, the platform can work with few Hot
, Warm
and Cold
wallets of one cryptocurrency.
Max balance parameter actively used in the deposit collection process. During that process, the platform checks wallet's capacity and if needed do deposit split.
Properties
NOTE: Properties is considered to be sensative data and as for all sensative data on Tower after you have submitted it, you will not be able to retrive you configuration from Tower or API responce. If you would whant to update properties you will have to submit all set of configs that you whant to be applied to a wallet, as your input will fully override previos properties configuration.
uri: the field of a blockchain node URI. URI format is different for the majority of cryptocurrencies. Blockchain node URI should be provided by a DevOps alongside with a wallet's secret (if needed).
secret: is a password to a wallet. For Hot
wallets, those secrets stored on a blockchain node and used to access and interact with wallets.
skip_deposit_collection: is a boolean. Parameter for Bitcoin Hot wallet on electrum gateway client to skip deposit collection from user deposit address if set to true. (If you depsoit address and hot wallet address are on the same BTC node account there is no reason to spend fees on collection process)
gateway_url: is a url of the blochain node
wallet_id: is a property for BitGo client gateway taken from the BitGo wallet settings
access_token is a property for BitGo client gateway taken from the BitGo wallet settings
JSON: is a JSON editor field that allows change of 'uri', 'secret' and other fields, and add new parameters (if needed).
Existing Currencies is a table with a list of configured on platform currecnies, you can select one or more currencies to be added. Adding currecnies that are working on the same blockcain to a single wallet will allow to recieve, hold and withdraw configuring only one wallet. Most commonly used with ETH blockchain and ERC20 currencies.
Linked Currencies is table with a list of already linked to a wallet currencies, you can remove linked currency by clicking on trash can icon and confirming the acction.
When the Create
button is clicked, all wallet settings save to a database. After saving a new wallet appear in the list of platform wallets.
Bellow, you can find the wallet profile page. Admin can edit some parameters. To save changes admin needs to press the Submit
button.
In version 2.3 we have implemented Maker-Taker fee model. That fee model allows us to charge different fees from the active and passive side of a trade. With the Maker-Taker model, we implemented fee groups. By default, the platform assigns the vip-0
fee group for all new users. It's also possible to create custom fee groups for all markets.
The platform should always have a fee group with the name Any
and market Any
. That fee group serves as a protection when a custom fee group doesn't define fees for at least one market pair. Fee groups have a hierarchy, and if a user assigned to a custom fee group that doesn't cover all market pairs, the platform defines fees for particular market pair uses the hierarchy. Hierarchy of fee groups, from the highest priority to the lowest priority, can be found below:
Field name description:
any
that represent all market pairs.Admin can edit and delete fee groups using corresponding buttons on the right side of fees schedule page. Pencil
icon - is the edit button. Trash
icon - is the delete button.
Clicking the ADD FEES SCHEDULE
button opens up a modal window to create a new fee group. This modal window has the next fields:
any
is keyword for creating default fee group.any
to create a fee group that related to all market pairs.Pressing SAVE
button saves all data and creates a new fee group.
This page contains a permissions list of all roles on the platform. In version 2.3, was added the functionality to edit and delete permissions from the admin panel. Also, was added functionality to create new permissions for existing roles. Default permissions sets with seed file during deployment.
Field name description:
Role: shows the role name.
Verb: shows a type of HTTP methods that applies to permission. The platform works with five types of value:
all
- means all methods.get
- means read method.post
- means create method.put
- means update method.delete
- means delete method. You can find more on HTTP methods follow the link: HTTP methods.Path: shows the endpoint path of a permission.
Topic: shows the topic for a permission.
Action: shows the action type. The platform has three types of action:
accept
- means that the platform allows that role to access the corresponding endpoint.drop
- means that the platform rejects access to the corresponding endpoint.audit
- means that the platform audit actions of that role on the corresponding endpoint. The audit allows storing details on performed actions.Admin can edit and delete permissions using corresponding buttons on the right side of permissions page. Pencil
icon - is the edit button. Trash
icon - is the delete button.
Clicking the CREATE PERMISSION
button opens up a modal window to create a new permission. This modal window has the next fields:
Pressing SAVE
button saves all data and creates a new permission.
Restrictions allow blocking the access to the platform for certain IPs
, IP subnets
, Countries
or Continents.
Admin can create, edit and delete restrictions rules.
Field name description:
Enabled
- restriction is active.Disabled
- restriction is inactive.Admin can edit and delete restrictions using corresponding buttons on the right side of restrictions page. Pencil
icon - is the edit button. Trash
icon - is the delete button.
Clicking the ADD PARAMETER
button opens up a modal window to create a new restriction. This modal window has the next fields:
Conatinent
, Country
, IP subnet
and IP
.Enabled
- restriction is active.Disabled
- restriction is inactive.Pressing SAVE
button saves all data and creates a new restriction.