
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.
