logo

Tower manual v2.3

tower

Content

Dashboard

Users

1. Users list

1.1 User main info

1.2 User balances

1.3 User open orders

1.4 User history

1.5 User activities

1.6 User documents

2. Operators

2.1 Operators activities

3. Pending applications

Exchange

1. Currencies

1.1 'New currency' & 'Edit currency'

2. Markets

2.1 Market orderbook

2.2 'New market' & 'Market config'

3. Orders

3.1 Open orders

3.2 Orders history

4. Trades

Accountings

1. Deposits

2. Withdrawals

3. Withdrawals pending

4. Adjustments

5. Operations

5.1 Assets

5.2 Liabilities

5.3 Revenue

Settings

1. Blockchains

1.1 'New blockchain' & 'Edit blockchain'

2. Wallets

2.1 'New wallet' & 'Edit wallet'

3. Fees schedule

3.1 'New fee schedule'

4. Permissions

4.1 'New permission'

5. Restrictions

5.1 'New restriction'

Dashboard

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.

dashboard

Users

#1. Users directory

This page provides a list of all users on a platform.

Field name description:

  • UID: shows a user ID. System uses UID as a unique identifier on the platform.
  • Name: shows a full name of a user.
  • Email: shows a user's email address.
  • Role: shows a role of a user on the platform.
  • KYC: shows a user KYC level. Users with higher KYC levels have more privileges. The number of steps and permission on each of them can be customized before the deployment.
    • Level 0 - Email is not verified.
    • Level 1 - Email is verified.
    • Level 2 - Phone is verified.
    • Level 3 - Identity is verified.
  • Country: shows a country of residence of a user.
  • Referrer ID: shows an UID of a user who provided referral code.
  • Created: shows a date of a user registration.
  • 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.

UID and Email fields are clickable and redirect to a user profile page.

users_directory

1.1 User main info

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.

user_main_profile

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:

  • email is a label that's used for email verification.
  • phone is a label that's used for phone phone verification.
  • document is a label that's used for identity verification. When a user submits documents platform automatically creates label 'document' with status pending. After verification process admin can reject or verify documents by changing label status.

user_main_profile_label

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:

  • Key is a field for a label name.
  • Value is field for label value. By default, the platform recognize three values: 'pending', 'verified' and 'rejected'
  • Scope is a drop-down menu with two possible values: 'public' and 'private'. It's possible to develop and deploy custom logic for labels. By default, a functionality of 'public' labels not implemented. Public labels can be used to develop additional logic to interact with a user.

1.2 User balances

This page shows detailed information on user balances. For every currency we show available balance, locked balance and total balance.

  • Available balance: shows an amount of currency that can be used to create order or withdrawal.
  • Locked balance: shows an amount of currency that is locked in order or in a withdrawal request. Platform locks funds to prevent double-spending.
  • Total balance: shows a sum of available and locked funds of a user.

user_balances_profile

1.3 User open orders

This page shows all open orders of a user. Admin can filter them by columns in the right-side filtering menu.

Field name description:

  • Order ID: shows the order ID on the platform.
  • Market: shows coresponding market of an order.
  • Type: shows an order type.
  • Amount: shows initial amount that was placed in an order.
  • Executed: shows how much of an order was executed. If an order has zero in 'executed' field it means that this order wasn't touched by a counterpart.
  • Price: shows the price of an order.
  • Side: shows was it a buy or a sell order.
  • Created: shows a date when order was created.
  • Updated: shows a date of the last interaction with an order.

Admin can use the Cancel button to cancel a corresponding order of a user.

user_open_orders_profile

1.4 User history

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:

  • Trade ID: shows trade ID on the platform.
  • Maker order ID: shows ID of the order that acted as maker.
  • Taker order ID: shows ID of the order that acted as taker.
  • Maker UID: shows user ID who acted as maker in the trade.
  • Taker UID: shows user ID who acted as taker in the trade.
  • Market: shows coresponding market of trade.
  • Price: shows a price of base currency in a trade.
  • Amount: shows an amount (in base currency) that was exchange with the trade.
  • Total: shows an amount that was exchanged with the trade.
  • Side: shows an active (taker) side of a trade. 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.
  • Trade time: shows a date when trade was done.

user_history_trades

User Orders history block contains a table of orders history.

Field name description:

  • Order ID: shows an order ID on the platform.
  • Market: shows a coresponding market of the trade.
  • Type: shows a type of the order.
  • Amount: shows an amount (in base currency) that was set in the order.
  • Executed: shows how much of the trade was already executed.
  • Price: shows a price of base currency that was set in the order.
  • Average: shows the average price of executed order.
  • Side: shows an active (taker) side of a trade. Buy means that buy order was an active side; Sell means that sell order was an active side.
  • Created: shows a date when the order was created.
  • Updated: shows a date of last update of the order.
  • Status: shows the status of an order. Order can have one of the next statuses:
    • 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_history_orders

User Deposits history block contains a table with deposits.

Field name description:

  • ID: shows the ID of a deposit.
  • TxID: shows the transaction ID of a deposit on a blockchain. Clicking on transaction ID system redirects to a blockchain scanner, there admin can see detailed information of corresponding deposit.
  • Created: shows a date when a deposit was created on the platform.
  • Amount: shows the amount that was in a deposit.
  • Currency: shows the currecncy of a deposit.
  • Confirmations: shows a number of blocks that was mined above the block with a deposit transaction.
    • State: shows the status of a deposit. Deposit can have one of the next statuses:
      • 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_history_deposits

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_history_withdrawals

1.5 User activities

User Activities tab shows information of user's activities on the platform.

Field name description:

  • Date: shows the date of a certain activity on the platform.
  • Action: shows the action type.
  • Topic: shows the topic of a user activity.
  • IP: shows the IP address of a user's computer (device).
  • Browser: shows the browser type that was used to perform an activity.
  • OS: shows the type of operating system of a user's computer (device).
  • Result: shows the result of an action:
    • Succeed - means that attempt ended up with success.
    • Failed - means that attempt ended up with failure.

user_activities_profile

1.6 User documents

User Documents tab shows a list of all documents that a user uploaded during the KYC process.

Field name description:

  • Created: shows a date when a document was added to the platform.
  • Doc type: shows the type of document that was submitted for KYC verification. Out of the box, the platform supports the next document types passport and ID card. The number of document types can be extended with custom KYC module.
  • Doc number: shows the document number.
  • Expiry date: shows a date till which document is valid.
  • Attachments: is a column with documents links. Admin can click on clip button to check uploaded document.

user_documents_profile

#2. Operators

2.1 Operators activities

This page provides a detailed list of operators activities on the platform. This page only visible for 'Super admin' role.

Field name description:

  • Email: shows the email address of a user. This field is clickable and redirects to the user's profile page.
  • Date: shows the date of a certain activity on the platform.
  • Role: shows the role of a user who performed an activity.
  • Topic: shows the topic of an admin activity.
  • Action: shows a type of an action that was performed by the operator. If a user was a target of an action we show his email in Target column. There are four possible actions:
    • 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.
  • Target: shows an email of a user on whom was performed an action. Those emails fields are clickable and redirect to the user's profile page.
  • Browser:shows the browser type that an operator used to act.
  • IP: shows the public IP address from which an operator acted.
  • OS: shows the type of operating system on a machine (device) that an operator used to act.
  • Result: shows the result of an 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.

operators_activities_list

#3. Pending applications

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:

  • UID: shows a user ID on the platform.
  • Email: shows the email of a user.
  • Name: shows the full name of a user.
  • Country: shows the country of a user.
  • Created: shows a date when a document was added to the platform.
  • Attachments: is a column with documents links. Admin can click on clip button to check uploaded document.

operators_activities_list

Exchange

#1. Currencies

This page shows a list of supported currencies. Admin can use this page to edit existing currencies and add new ones.

Field name description:

  • Code: shows an official abbreviation (ticker) for the corresponding currency.
  • Name: shows the name of a currency.
  • Symbol: shows a unique symbol that belonging to the corresponding currency.
  • Type: shows the type of currency. Fiat or Coin (Cryptocurrency).
  • Created: shows a date when currency was added to the platform.
  • Visible: shows visibility status of a corresponding currency. 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.

currencies_list

1.1 'New currency' & 'Edit currency'

Clicking the ADD CURRENCY button opens setup page for a new currency

currencies_new

Field name description:

  • Name: is the name of a currency.
  • Visible: is the switch button that represents currency visibility for users. Visibility has two statuses: Enabled and Disabled.
    • Enabled - means that currency visible on the UI.
    • Disabled - means that currency invisible on the UI.
  • Code: is a currency ticker, broadly known abbreviation (ie. Ethereum = ETH, Bitcoin = BTC, etc.).
  • Symbol: is a currency sign that will be displayed on the platform.
  • Type: is the type of a currency. Platform support 2 types - Fiat and Coin (Crypto).
  • Subunits: is a denomination of currency. Cryptocurrencies can have different subunits number. This is a technical parameter that was set by currency creators.
  • Precision: is a value that regulates how many digits after the decimal point (.) uses to store financial operations related to the currency. Also, this param affects how many digits after the decimal point shows in user balance on the wallets page. Example 1: if we set precision 2 for USD then frontend will show amount with two digits after the decimal point 550.00 USD; Example 2: if we set precision 4 for USD then frontend will show amount with four digits after the decimal point 550.0000 USD).
  • Blockchain Key: is a drop-down menu listing blockchain nodes supported by the platform.
  • Deposit fee: is a fee amount that the platform charge from a deposit.
  • Min deposit amount: is a minimum deposit amount for the corresponding currency. If a user deposits less than that amount the platform doesn't recognize it as a deposit and do nothing with that amount.
  • Min collection amount: is a minimum value that can be collected from a deposit wallet to a Hot, Warm orCold wallets. The platform decides where to send funds based on wallet balance and Max Balance wallet parameter.
  • Withdraw fee: is a fee amount that platform takes from a withdrawal of corresponding currency.
  • Min withdrawal amount: is the minimum amount of a corresponding currency that platform allows to withdraw.
  • 24h withdrawal limit: is the 24 hours withdrawal limit of corresponding currency. When a user is trying to withdraw a higher amount than the limit, that request doesn’t execute automatically and wait for manual interaction from the admin side. If needed, admin can process that request manually.
  • 72h withdrawal limit: is the 72 hours withdrawal limit of corresponding currency. This field can be used to set additional restrictions for withdrawal amount aside from the 24 hour limit.
  • Position: is the position of a given currency as it will be displayed on the Currencies page.
  • Icon URL: is a link to a currency icon.

Properties block used for tokens and currencies that require additional parameters. By default, the properties block contains the next fields:

  • erc20_contract_address is the address of a certain smart contract that was deployed on the Ethereum network.
  • gas_limit is an amount of gas that will be used to create a transaction. Different smart contracts can have different gas limits.
  • gas_price is the price of one gas unit. This price depends on the Ethereum network load, the more a network load the higher gas price. Gas price must be written in 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.
  • JSON: is a JSON editor window that allows to edit and add new parameters.

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.

currencies_profile

#2. Markets

This page displays a list of trading pairs supported by the platform. Here admin can edit existing trading pairs and add new ones.

markets_list

Field name description:

  • Market ID: shows an ID of a market (trading pair).
  • Price precision: shows a value that regulates how many digits after the decimal point (.) will be used to show the price of a currency on the trading UI.
  • Amount precision: shows a value that regulates how many digits after the decimal point (.) will be used to show the amount of a currency on the trading UI.
  • Min price: shows a minimum price that can be used to create an order.
  • Max price: shows a maximum price that can be used to create an order.
  • Created: shows a date when a market was created.
  • Status: shows a market visibility status. There are two possible statuses: 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.

2.1 Market orderbook

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:

  • Order ID: shows order ID on the platform.
  • UID: shows a user ID. System uses UID as a unique identifier on the platform.
  • Type: shows an order type.
  • Price: shows a price of base currency that was set in the order.
  • Amount: shows an amount (in base currency) that was set in the order.
  • Total: shows a cumulative amount of a base currency at a certain price level.

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 .

market_orderbook

2.2 'New market' & 'Market config'

Clicking the ADD MARKET button opens setup page for a new market pair.

market_new

Base and quote fields description:

  • Engine: is a drop-down menu with a list of created engines that can be used to create an market
  • Base currency: is a drop-down menu with a list of supported currencies that can be used as a base currency.
  • Quote currency: is a drop-down menu with a list of supported currencies that can be used as a quote currency.

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_profile

Market precision recommendations

Examples from the table can be used as a recommended price and amount precision of corresponding markets.

BaseQuotePrice precisionAmount precision
BTCUSD26
ETHUSD25
BCHUSD25
LTCUSD25
XRPUSD52
DASHUSD25
ETHBTC63
BCHBTC63
LTCBTC62
XRPBTC80
DASHBTC63
BCHETH52
LTCETH63
XRPETH80
DASHETH63

(The recommended precision should be adjusted depending on market conditions. Last update September 2019).

#3. Orders

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.

3.1 Open orders

This page shows open orders of all users on the platform.

Field name description:

  • Order ID: shows the order ID on the platform.
  • Email: shows the email of a user who created that order.
  • Market: shows the market of a coresponding order.
  • Type: shows the type of an order.
  • Amount: shows the amount that was placed in an order.
  • Executed: shows how much of an order was executed. If an order has zero in 'executed' field it means that this order wasn't touched by a counterpart.
  • Price: shows the price of an order.
  • Side: shows an active (taker) side of a trade. Buy means that buy order was an active side; Sell means that sell order was an active side.
  • Created: shows a date when an order was created.
  • Updated: shows a date of the last interaction with an order.

Admin can use the Cancel button to cancel a corresponding order of a user.

open_orders_list

3.2 Orders history

This page shows a history of all orders that are not active anymore.

Field name description:

  • Order ID: shows the order ID on the platform.
  • Email: shows the email of a user who created that order.
  • Market: shows the market of a coresponding order.
  • Type: shows the type of an order.
  • Amount: shows the amount that was placed in an order.
  • Executed: shows how much of an order was executed. If an order has zero in 'executed' field it means that this order wasn't touched by a counterpart.
  • Price: shows the price of an order.
  • Average: shows the average price of an executed order.
  • Side: shows an active (taker) side of a trade. Buy means that buy order was an active side; Sell means that sell order was an active side.
  • Created: shows a date when an order was created.
  • Updated: shows a date of the last interaction with an order.
  • Status: shows the status of an order. Order can have one of the next statuses:
    • 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).

orders_history_list

#4. Trades

This page shows all trades that acuared on the platform.

Field name description:

  • Trade ID: shows the trade ID on the platform.
  • Maker order ID: shows the ID of an order that acted as maker.
  • Taker order ID: shows the ID of an order that acted as taker.
  • Maker UID: shows user ID who acted as maker in the trade.
  • Taker UID: shows user ID who acted as taker in the trade.
  • Market: shows coresponding market of trade.
  • Price: shows the price of a base currency in a trade.
  • Amount: shows the amount (in base currency) that was exchange with a trade.
  • Total: shows an amount that was exchanged with a trade.
  • Side: shows an active (taker) side of a trade. 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.
  • Trade time: shows a date when trade took a place.

trades_list

Accountings

Accountings menu consist of blocks with financial records: Deposits, Withdrawals, Withdrawals pending, Adjustments and Pending.

#1. Deposits

This page shows an aggregated list of deposits. Admin can filter deposits, create new ones or process existing.

Field name description:

  • ID: shows the ID of a deposit.
  • Email: shows the email of a user who made a deposit.
  • TxID: shows the transaction ID of a deposit on a blockchain. Clicking on transaction ID system redirects to a blockchain scanner, there admin can see detailed information of corresponding deposit.
  • Created: shows a date when a deposit was created on the platform.
  • Amount: shows the amount that was in a deposit.
  • Currency: shows the currecncy of a deposit.
  • Confirmations: shows a number of blocks that was mined above the block with a deposit transaction.
  • State: shows the status of a deposit. Deposit can have one of the next statuses:
    • 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.

deposits_list

To create manual FIAT deposit admin needs to click the ADD NEW button and fill 'Create deposit' window with the data:

  • Choose FIAT currency from the drop-down menu.
  • Enter a corresponding amount from a bank deposit.
  • Enter UID of a user on the platform.
  • Press 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.

deposit_new

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.

deposit_profile

#2. Withdrawals

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:

  • ID: shows the ID of a withdrawal request.
  • Email: shows the email of a user who made 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 a 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 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.

withdrawals_list

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:

  1. Copy withdrawal address and amount that the user wants to withdraw to txt file;
  2. Copy that txt file on USB flash and move that file to a trusted offline computer.
  3. Create transaction with the data from a txt file and sign this transaction;
  4. Copy a file with signed transaction on USB flash and move to a trusted online computer with a blockchain node. Brodcast signed transaction from the node.
  5. Insert transaction hash in the 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.

withdrawal_profile

#3. Withdrawals pending

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.

withdrawals_pending_list

#4. Adjustments

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:

  • ID: shows the ID of an adjustment record.
  • Reason: shows a short name (reason) of an adjustment.
  • Amount: shows the amount that was used in an adjustment. Numbers can be negative and positive. CURRENT VERSION OF ACCOUNTING WORKS IN THE NEXT WAY: POSITIVE NUMBERS CREDITS BALANCES AND NEGATIVE NUMBERS DEBITS BALANCES. That logic works for all tables: Assets, Liabilities, Revenue and Expenses. Adjustment always affect assets records and can't be used for internal transfers.
  • Currency: shows the currecncy of an adjustment.
  • Category: shows the category of am adjustment. Adjustments has predefined categories that helps to categorise adjustments.
  • Creator ID: shows the ID of an admin who created an adjustment.
  • Receiving account number: shows an account code of adjustment (code in operations).
  • State: shows the state of adjustment. Adjustment can have on of the next statuses:
    • 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.

adjustments_list

Clicking the ADD NEW button opens page with a form for a new adjustment.

Field name description:

  • Reason: is a field for short name of an adjustment.
  • Currency: is a drop-down menu with a list of supported currencies.
  • Category: is a drop-down menu with predefined categories that helps to categorise adjustments.
  • Amount: is a field for an amount adjustment. REMEMBER, CURRENT VERSION OF ACCOUNTING WORKS IN THE NEXT WAY: POSITIVE NUMBERS CREDITS BALANCES AND NEGATIVE NUMBERS DEBITS BALANCES.
  • Asset code: is a drop-down menu with a list of asset codes. This field autofill if a currency is chosen.
  • Receiving account number: is a set of fields. 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.
  • Adjustment description: is a text field where admin can describe in details a reason for an adjustment.

To finish adjustment creation admin needs to click the Create button. After that will appear in a list of adjustments with status pending.

adjustment_new

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.

adjustment_profile

#5. Operations

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:

  • The first number specifies to which account type belong transaction:
    • 1 - represents Assets.
    • 2 - represents Liabilities.
    • 3 - represents Revenue.
    • 4 - represents Expenses.
  • The second number specifies to which account kind belong transaction:
    • 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.
  • The third number specifies the currency type:
    • 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.

5.1 Assets

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:

  • Assets ID: shows the ID of a transaction in the assets table.
  • Code: shows to which account type related a transaction.
  • Currency ID: shows the currency of a corresponding transaction.
  • Ref ID: shows the ID of a corresponding transaction type.
  • Ref type: shows a type of transaction. For assets, it can be Deposit, Withdrawal or Adjustment types.
  • Credit: shows an amount that was added to the assets. Credit increase number of assets.
  • Debit: shows an amount that was removed from the assets. Debit decrease number of assets.
  • Date: shows the date when a transaction occurred on the platform.

assets_list

5.2 Liabilities

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.

liabilities_list

5.3 Revenue

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:

  • Revenue ID: shows the ID of a transaction in the revenue table.
  • Code: shows to which account type related a transaction.
  • Currency ID: shows the currency of a corresponding transaction.
  • Ref ID: shows the ID of a corresponding transaction type.
  • Ref type: shows a type of transaction. For revenue, it can be Deposit, Withdrawal, Trade or Adjustment types.
  • Credit: shows an amount that was added to the revenue. Credit increase number of revenue.
  • Debit: shows an amount that was removed from the revenue. Debit decrease number of revenue.
  • Date: shows the date when a transaction occurred on the platform.

revenue_list

5.4 Expenses

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:

  • Expenses ID: shows the ID of a transaction in the revenue table.
  • Code: shows to which account type related a transaction.
  • Currency ID: shows the currency of a corresponding transaction.
  • Ref ID: shows the ID of a corresponding transaction type.
  • Ref type: shows a type of transaction. For expenses, it can be only Adjustment type.
  • Credit: shows an amount that was added to the expenses. Credit increase number of expenses.
  • Debit: shows an amount that was removed from the expenses. Debit decrease number of expenses.
  • Date: shows the date when a transaction occurred on the platform.

expenses_list

Settings

#1. Blockchains

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:

  • ID: shows the ID of a blockchain node on the platform.
  • Key: shows the key name of a blockchain node. Key used as a parameter during the configuration of other platform elements (i.e. Currencies, Wallets).
  • Name: shows descriptive name of a blockchain node.
  • Client: shows the name of a blockchain client. Some blockchains have more than one blockchain node client that is developing by different teams. For example, Ethereum can be used with "geth" or "parity" client.
  • Height: shows the block height of a corresponding blockchain.
  • Created: shows a date when a blockchain was added to the Tower.
  • Status: shows the status of a blockchain node. Blockchain nodes can have one of two statuses:
    • Enabled - node is active and does transactions processing.
    • Disabled - node is inactive and doesn't do transactions processing.

blockchains_list

1.1 'New blockchain' & 'Edit blockchain'

Clicking the ADD BLOCKCHAIN button opens up a setup page for a new blockchain node.

blockchain_new

Field name description:

  • Name: is a descriptive name that assigns to a blockchain node.
  • Status: the switch button that represents blockchain status. It can be 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.
  • Client: is a dropdown menu with a list of supported blockchain nodes.
  • Server: is a field for a node URL with the connection port. For example, http://geth:8545.
  • Min Confirmations: is some quantity of blocks that needs to mine after the block with the deposit (withdrawal) transaction. When a deposit (withdrawal) reaches min confirmation number, the platform creates corresponding records in the accounting.
  • Height: is a field that intended to show a block height of a corresponding blockchain. During the node configuration process, in the height field needs to be set with the block height at the time of configuration. Clicking the Reset button applies changes in the Height field.
  • Key: is the key name field of a blockchain node. The key name should be meaningful and contain a network type (mainnet or testnet).
  • Explorer Address: is a field that holds a link of a blockchain explorer. This link is used to check the balance of a corresponding wallet. For example, 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.
  • Explorer Transaction is a field that holds a link of a blockchain explorer. This link is used to check the state of a corresponding transaction. For example, 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.

blockchain_profile

#2. Wallets

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:

  • ID: shows the ID of a wallet on the platform.
  • Name: shows a descriptive wallet name.
  • Kind: shows the kind of a wallet. Platform works with the next wallet kinds: Deposit, Hot, Warm, Cold and Fee.
  • Address: shows a corresponding public key of a wallet on a blockchain.
  • Status: shows the status of a wallet. Wallets can have two statuses:
    • Enabled - wallet is active and fully functional.
    • Disabled - wallet is inactive and not functional.
  • Arrow shaped button on click will display all connected to wallet currencies and their balances on the wallet in token and in the USD equivalent. From here you can also delete linked to a wallet currency by clicking on trash can icon and confirming your action.

wallets_list

wallets_dropdown

2.1 'New wallet' & 'Edit wallet'

Clicking the ADD WALLET button opens up a setup page for a new wallet

wallet_new

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.

    • If a Deposit wallet Disabled it means that the platform doesn't create Deposit wallets for newly registered users.
    • If a 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.
    • If a 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.
    • If a 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.
    • If a 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.

wallet_profile

#3. Fees schedule

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:

  • Group and Market ID match.
  • Group matches.
  • Market ID matches.
  • Group 'Any' with the Market ID 'Any'.
  • Zero fees apply if there is no Group 'Any' with Market ID 'Any'.

Field name description:

  • ID: shows the ID of a fee group.
  • Group: shows a name of the fee group.
  • Market: shows the market pair of a fee group. This field can hold one market pair or a keyword any that represent all market pairs.
  • Maker fee: shows a fee that the platform charges from the pasive side of a trade. Fee shows as a percentage fee.
  • Taker fee: shows a fee that the platform charges from the active side of a trade. Fee shows as a percentage fee.

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.

fees_schedule_list

3.1 'New fee schedule'

Clicking the ADD FEES SCHEDULE button opens up a modal window to create a new fee group. This modal window has the next fields:

  • Name is a field for a fee group. any is keyword for creating default fee group.
  • Market ID is a drop-down menu with a list of supported market pairs. Also, it's possible to use the keyword any to create a fee group that related to all market pairs.
  • Maker fee is a fee that the platform charges from the pasive side of a trade. The fee should be entered as the absolute value. After saving the absolute value of a fee converts and shows on front-end as a percentage value (i.e. 0.0008 = 0.08%).
  • Taker fee is a fee that the platform charges from the active side of a trade. The fee should be entered as the absolute value. After saving the absolute value of a fee converts and shows on front-end as a percentage value (i.e. 0.0015 = 0.15%).

Pressing SAVE button saves all data and creates a new fee group.

fee_schedule_new

#4. Permissions

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.

permissions_list

4.1 'New permission'

Clicking the CREATE PERMISSION button opens up a modal window to create a new permission. This modal window has the next fields:

  • Role is a field for the role to which permission applies.
  • Path is a field for endpoint path for which permission applies.
  • Verb is a drop-down menu with a list of HTTP methods.
  • Action is a drop-down menu with a list of action types.

Pressing SAVE button saves all data and creates a new permission.

permission_new

#5. Restrictions

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:

  • Scope: shows a type of restriction. The platform can block Conatinent, Country, IP subnet or IP.
  • Value: shows the value for the corresponding scope.
  • Created: shows a date when a restriction was created.
  • Updated: shows a date when a restriction was updated.
  • Status: shows the status of a restriction. Restriction can have one of two statuses:
    • 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.

restrictions_list

5.1 'New restriction'

Clicking the ADD PARAMETER button opens up a modal window to create a new restriction. This modal window has the next fields:

  • Scope: is a drop-down menu with a list of possible scope: Conatinent, Country, IP subnet and IP.
  • Value: is a field for the value of the corresponding scope.
  • Status: is a drop-down menu with possible statuses. Restriction can have one of two statuses:
    • Enabled - restriction is active.
    • Disabled - restriction is inactive.

Pressing SAVE button saves all data and creates a new restriction.

restriction_new