# Spot

<figure><img src="https://1775041679-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fd1cEhboqiukWysySwLsO%2Fuploads%2FcKjhQmhhH25OEdmybxE1%2Fimage.png?alt=media&#x26;token=10a57b45-e365-4b94-acea-1281bcfe43f3" alt=""><figcaption></figcaption></figure>

To facilitate the exchange to complete self-service token loading and meet more diverse, convenient and timely requirements for token loading, the system enables the function of automatic token loading. The directory location is shown in the figure above. The workflow of automatic token loading is as follows:

* The platform operator informs the operation and maintenance (O\&M) staff to modify the wallet according to the new token planned to be loaded;
* Configure each token in turn in the "Token Management" module (for details, see [Token Config](#token-config) );If you want to add ChainUp Custody currency, you need to complete [Third-party Wallet Token Config](#third-party-wallet-token-config) first. If you set the [same token in different chains](#same-token-in-different-chains-setting);
* Configure each coin pair in turn in the "Coin Pair Configuration" module, (for details, see [Coin Pair Config](#coin-pair-config));
* Set transaction fee for coin pair and withdrawal fee;
* Inform the O\&M staff to match all new coin pairs in turn;
* Modify the parameters and switches under the "Token Management" or "Coin Pair Configuration" directory at any time, so as to respond to emergencies or meet immediate needs (if necessary).<br>

### Third-party Wallet Token Config

The exchange currently supports three third-party wallets: ChainUp-Custody, ChainUp-MPC, and Fireblocks. If the merchant chooses to use a third-party wallet, the following operations need to be completed.&#x20;

If the merchant uses a self-built wallet on an exchange, this step can be skipped.

#### **Third-party Wallet Config**

Merchants need to provide the parameters required for exchange to the ChainUp project manager, and the ChainUp O\&M team will update the wallet-related configuration files (if the merchant maintains the system by itself, the parameters can be submitted to its own technical team for processing).

At the same time, the ChainUp team will also provide the parameters required by the third-party wallet to the merchant, and the merchant needs to configure it in the third-party wallet backend. The specific parameters are explained as follows:

<table><thead><tr><th width="163">Wallet Type</th><th>Exchange Parameters Required</th><th width="242">Wallet Required Parameters</th><th>Reference Links</th></tr></thead><tbody><tr><td>ChainUp-Custody</td><td><ul><li>APP ID</li><li>RSA Public key of ChainUp Custody</li></ul></td><td><p><strong>When creating an API you need:</strong></p><ul><li>Trusted lP</li><li>Callback Url</li><li>Double Check Callback Url</li></ul><p><strong>Need to add after creating the API:</strong></p><ul><li>RSA Public Key of Developer</li></ul></td><td><a href="https://custodydocs-en.chainup.com/user-guide/custody-wallet/strategy/api">API Management</a></td></tr><tr><td>ChainUp-MPC</td><td><ul><li>APP ID</li><li>RSA Public key of ChainUp Custody</li></ul></td><td><p><strong>When creating an API you need:</strong></p><ul><li>Bind IP Address</li></ul><p><strong>Need to add after creating the API:</strong></p><ul><li>Transaction Status Notification Url</li><li>Co-Signer Url</li><li>Co-Signer RSA Public Key</li><li>Business System RSA Public Key</li></ul></td><td><a href="https://custodydocs-en.chainup.com/user-guide/mpc-wallet/api-integration/api">API Management</a></td></tr><tr><td>Fireblocks</td><td><ul><li>API key</li><li>Secret key</li><li>Vault ID</li><li>Fireblocks Webhook IP Address</li></ul></td><td><p><strong>Firebloks Need：</strong></p><ul><li>Webhook Url(Url rules are: https://walletgateway.<mark style="color:red;">xxx.com</mark>/fireblock/webhook, The red part is replaced with the exchange domain name)</li></ul></td><td><p><a href="https://ncw-developers.fireblocks.com/docs/getting-started">NCW Wallet Overview</a></p><p></p><p><a href="https://docs.fireblocks.com/api/#introduction">API Doc</a></p></td></tr></tbody></table>

The parameters required by the third-party wallet can be obtained from the ChainUp project manager and O\&M team.

#### **Add Third-party Token**

The purpose of adding third-party token is to integrate the token information supported by third-party wallets into the exchange, ensuring consistency between the exchange's token and the third-party wallet's token when users deposit or withdraw.&#x20;

By clicking the "Add" button, users can select the corresponding wallet and token. After confirmation, the system will automatically synchronize the token information from the third-party wallet to the exchange, as shown below.

<figure><img src="https://1775041679-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fd1cEhboqiukWysySwLsO%2Fuploads%2F5rubkwN2XLuNt3U22wQe%2Fimage.png?alt=media&#x26;token=d6c39dc7-06e8-4757-b1e9-27afdb67dd72" alt=""><figcaption></figcaption></figure>

Please note:

1. The dropdown options only display tokens that have been opened but not added to the exchange in third-party wallets. Tokens that have already been added will not be shown. It's normal if there is no data displayed in this case.
2. The exchange automatically retrieves the tokens and their information opened in third-party wallets every minute. If you cannot find the corresponding token in the dropdown options, please try again later.
3. If only one third-party wallet is configured, the "Wallet Type" field will not be displayed in the add window.

After successful addition, merchants can see the token information from different wallet types in the list, as shown below.

<figure><img src="https://1775041679-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fd1cEhboqiukWysySwLsO%2Fuploads%2FG4FTkW1j8szxpYCCLfpQ%2Fimage.png?alt=media&#x26;token=2e02725f-2e90-44e5-829e-09d89e931a19" alt=""><figcaption></figcaption></figure>

Field Description:

* Coin: The token symbol in the third-party wallet (e.g., USDT on ERC20, named USDTERC20 in the Custody wallet);
* Wallet Type: The type of wallet to which the token belongs; different wallet types may have duplicate token symbol;
* Contract Address: The contract address of the token; can be empty for mainnet tokens but must be provided for tokens;
* Contract Accuracy: The precision of the token's contract, obtained from the third-party wallet;
* Recharge number: The number of block confirmations required after user deposits for the exchange to update user assets; provided by Custody & Custody-MPC but not required for Fireblocks wallets;
* Main Chain Crypto: The name of the mainnet token corresponding to the token's blockchain network (also the gas fee token);
* Support Token : Indicates whether the token supports token coins (mainnet tokens do; tokens do not); Fireblocks does not return this information, so merchants need to configure it when adding exchange token;
* Support Memo : Indicates whether the token supports memo tags; Fireblocks does not return this information, so merchants need to configure it when adding exchange token;
* Address Verification Rules: When users withdraw, the system checks if the withdrawal address meets these rules; mainnet token require maintaining address validation rules, while tokens follow the same rules as mainnet token; Fireblocks does not return this information, so merchants need to configure it when adding exchange token;
* Update Time: The time of the last update to the token information.

Note:

1. When merchants click the "Update" button, the system checks all added Custody & Custody-MPC tokens and updates them to the latest information. If there are no changes, the "Update Time" field will not be updated;
2. The Fireblocks wallet does not currently support token update functionality;
3. If the information of third-party wallet tokens changes in the future, the system will not update automatically, and administrators need to manually update it on this page.

After adding, click "Transaction - Spot - Token - Add". Select the corresponding third-party wallet for the wallet type. You can see the newly added third-party token under the "Third Symbol" dropdown menu, as shown below.

<figure><img src="https://1775041679-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fd1cEhboqiukWysySwLsO%2Fuploads%2Fzeg5oiU8UGESkuagmlKy%2Fimage.png?alt=media&#x26;token=96adec10-d84d-418f-963d-f464ba5fd234" alt=""><figcaption></figcaption></figure>

After selecting "Third Symbol", the token information filled in "Third-party Token Config" will be automatically displayed on this page. After confirming the token information is correct, click Confirm to add the third-party wallet's token to the exchange.

The "Third Symbol" dropdown menu only shows tokens that have not been added to the exchange yet. Tokens that have been added (completed [Token Config](#token-config)) will not be displayed in the dropdown list.

### Token Config

Coin Management is the area for editing various coins and their important configuration parameters in the exchange. The interface is shown in figure below. The list shows the configuration of various coins added to the system.

Click \[Add] in the top left corner or \[Edit] on the right of the page. The coin editing page is displayed, as shown in figure below.

<figure><img src="https://1775041679-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fd1cEhboqiukWysySwLsO%2Fuploads%2FYyjou3I7uQOuAoQzxZ2V%2Fimage.png?alt=media&#x26;token=18c33917-f962-44fc-a2b1-42322694b6f9" alt=""><figcaption></figcaption></figure>

**Editing Note:**

* **Wallet type:** the default is "exchange wallet". Select this type to continue to configure according to [token config](#token-config).Select "Custody wallet" wallet type, please refer to [Third-party Wallet Token Config](#third-party-wallet-token-config) for configuration.
* **Third-party token:** If choose Custody wallet in wallet type, you need to choose token name in corresponding custody(build corresponding relationship), token which has already been added will not be shown in drop-down box.
* **Coin Type:** Select “ERC20 Coin" or “Main blockchain Coin" from the drop-down menu .
* **Token abbrev:** Enter the abbreviation in capital letters, such as BTC, USDT, etc. this abbreviation is used as the unique identifier of the currency and <mark style="color:red;">cannot be modified after submission.</mark>
* **Currency alias:** optional, if there is an alias, the client will display the currency alias first.
* **Contract Address:** It is required for tokens, and the address needs to be queried on the blockchain explorer.
* **Contract Accuracy:** It is required for tokens, which can be queried on the blockchain explorer. Note that you need to enter the exact decimal places, such as "4" (which means to be accurate to 0.0001).If the contract accuracy is different from the wallet side, the withdrawal will fail.
* **Address Query Link:** A Blockchain explorer address.
* **TXID Query Link:** Recharging information, cash withdrawal information.
* **Whether support token:** when main chain tokens are added, need to choose \[Yes]. After configuration, you can see this main chain token in \[token configuration-type of token'
* **Address verification rule:** when users fill in withdraw address, system will initially verify according to this configured rule.
* **Type of Tag:** according to actual case to determine if memo tag is required when configuring withdraw.
* **Calculation Formula for Exchange Rate to BTC:** For you to input the exchange rate of the coin pair and the exchange rate conversion formula between the quote coin of the coin pair and the three major coins, separated by "|", such as |AAAHT| \* |HTBTC|. <mark style="color:red;">Note that it is required to be entered only if the coin does not appear in the BTC, ETH or USDT trading areas.</mark>
* **Token logo path:** token logo show in all versions are configured in this part. If it is not configured, logo will be shown in default .
* **Enabled? (Yes/No):** If “Yes", the list of front end coins is visible; if “No", it is invisible.
* **Open Deposit? (Yes/No):** If “Yes", the coin can be deposit at the front end; if “No", it cannot.
* **Whether deposit in locked position:** After open, asset will be transferred to spot locked account after user deposit. It can support platform tokens as well.
* **Open Withdrawal? (Yes/No):** If “Yes", the coin can be withdrawn for cash at the front end; if “No", it cannot.
* **Quote Coin? (Yes/No):** If “Yes", the trading area of the coin pair will be open; if “No", you can only set a trading coin pair by it with another quote coin to trade in the trading area of the corresponding quote coin.
* **Withdrawal minimum per time:** The lower limit of each cash withdrawal. <mark style="color:red;">Note that it should be greater than the minimum mining fee of the coin.</mark>
* **Per-withdrawal limits:** The upper limit of each cash withdrawal.
* **Daily withdrawal limits:** The upper limit of total cash withdrawal during 0:00 a.m. -24:00 p.m. every day.
* **Daily withdrawal limits (uncertified):** The upper limit of daily cash withdrawal of a user without real name certification. If the cash withdrawal of uncertified users is not allowed, enter "0".
* **Sorting:** Sorting of the coin in the "Fund Management" module of the front-end page, where an Arabic numeral is required. Note that the coins are sorted in numerical order (in ascending order), and in chronological order if the numbers are the same.
* **Accuracy:** It means the decimal show in users asset list and other pages. 8 represents keeping the number in 8 decimals.
* **Minimum number for single deposit:** the minimum amount can be deposited once. If lower than this amount, this will not be added in users' asset accounts.
* **Confirmed deposit amount:** The posted confirmation amount of recharging required for accounting, which is usually about 30. After the e-wallet is recharged, it is required to reach the confirmed amount of the set value before the recharged coin is transferred to the account of the business layer. If the set value is not reached, the recharged coin only reaches the frozen account of the business layer.
* **Only show for users who hold positions:** After open, token that users don't hold will be hidden in asset list. If you want to configure a single token, you need to confirm the status of hidden token according to the holding position is open. Configuration way is: spot backend system-KV configuratio 'only\_hold\_show\_open', configuration value is 1.
* **Token tag:** token/coin pair in market, trade and other pages can show corresponding tag after configuration

The exchange rates of three major coins are the default values, which are filled in automatically. Only the coins that are not in the three major trading areas need to be filled in manually.

<mark style="color:red;">Click \[Confirm], and the spot trading area and the OTC trading area will release the coin information to the sandbox environment respectively (it does not actually take effect). At this time, the "Release" button is in the red state, as shown in Figure 4.1.2.1. After confirming that the information of this modification is correct, click \[Release], and the button turns blue to indicate that the modification has taken effect this time (synchronized to the front-end system).</mark>

### Coin Pair Config

<figure><img src="https://1775041679-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fd1cEhboqiukWysySwLsO%2Fuploads%2FrYRkcX8eHyVy90CbH12w%2Fimage.png?alt=media&#x26;token=6df1faed-46a1-4b87-a40c-43fbb2cb82a3" alt=""><figcaption></figcaption></figure>

Coin pair configuration is the area for editing important configuration parameters of each trading coin pair in various trading areas of the exchange. The interface is shown in figure below. The list shows the configuration of various trading coin pairs that have been added to the system.

Click the \[Add] in the top left corner or \[Edit] on the right of the page. The coin pair editing page appears, as shown in figure below.

<figure><img src="https://1775041679-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fd1cEhboqiukWysySwLsO%2Fuploads%2FBps6t68ASzf4TMPOXU8l%2Fimage.png?alt=media&#x26;token=1a854eb1-3144-4a09-bb53-6bb513dc0c70" alt=""><figcaption></figcaption></figure>

**Editing Note:**

* Base currency: The currency to be traded in the coin pair, located before the coin pair.
* Quote coin: The quote coin in the coin pair, located after the coin pair.
* Min price for limit orders: The minimum price allowed in a limit order, with the base currency as the unit.
* Min quantity for limit orders: The minimum quantity in a limit order, with the quote coin as the unit.
* The lowest market price: The minimum price allowed in a market order, with the base currency as the unit.
* Min quantity of market price: The minimum quantity allowed in a market order, with the quote coin as the unit.
* Whether to enable: If “Yes", the statistical lists of the front-end trading area and the back-end are visible; if “No", they are invisible.
* Whether to enable matching: after opening match for new added coin pairs, user can place order normally. If the order of some tokens are placed abnormally, you can switch that and try again.
* Select the matching server address: server address will be configured well when system deployment, don't need to edit manually. When there are several servers to choose, you can confirm with our O\&M colleagues.
* Reference opening price: The price displayed on the quotation before the first transaction of the coin pair in history.
* Price accuracy: The precision of the price in the trading area, i.e. the precision of the base currency. You need to enter the exact decimal places, such as "4" (which means to be accurate to 0.0001).
* Quantitative accuracy: The precision of the volume in the trading area, i.e. the precision of the quote coin. You need to enter the exact decimal places, such as "4" (which means to be accurate to 0.0001).
* Sorting: Sorting of the coin pair in the "Fund Management" module of the front-end page, where an Arabic numeral is required. Note that the coin pairs are sorted in the numeral order (in descending order), and in chronological order if the numbers are the same.
* Depth 0, 1, 2: Three depth levels displayed in the depth combining function of the front-end positions. Note that depth 0 must be consistent with the “Price Precision".
* Trading area: choose the show place for coin pairs. The order for showing is main area>Innovation zoom>Observation zoom. Please see below

&#x20;                                            ![](https://1775041679-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fd1cEhboqiukWysySwLsO%2Fuploads%2FcJ5eC87vnavfptDJZ2aT%2Fimage.png?alt=media\&token=f323b761-111d-445f-a310-9f210b48b9f7)

* Whether to display: If the configuration for this is no, it will be hidden in users' page but can be searched by users. In general it is used in pre-view before going online or user can sell tokens that is offline.
* Whether to display on homepage: hidden coin pair will not show in the list of up\&down in homepage, but can be searched and seen in market list. Please see below:

&#x20;                                            ![](https://1775041679-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fd1cEhboqiukWysySwLsO%2Fuploads%2Fy5pXaY6wu6JUHDANsBAb%2Fimage.png?alt=media\&token=30b800e8-5ee1-4666-bad8-051ab028ed38)

* Database transaction: new added coin pair has no reference price. If users rely on real trade to get initial price, the deviation of price might be large(coin pair in other exchange system). Therefore, you can assign an users' account to make a deal by itself and then get initial trade price. If this coin pair has price, the function of database transaction is not actived.
* Target price: after set up the target price,the system will make a deal with the minimum amount of limited order in database.
* Order UID: User's UID which makes a deal in database
* Is it an ETF transaction pair: You need to open that via KV: is\_open\_etf so that show this configuration in coin pair configuration. If the coin pair is configured as ETF coin pair. It would be shown in ETF trade area, not in corresponding valuation currency area. Please see below.

&#x20;                                          ![](https://1775041679-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fd1cEhboqiukWysySwLsO%2Fuploads%2FjLMr5l15kVU1yL9KC5Br%2Fimage.png?alt=media\&token=02d7c13e-7803-4bee-a69a-bba5c257eb09)

* Whether to enable grid trading: Open grid trading via KV: grid\_trade\_switch so that see this configuration in coin pair configuration. After opening the coin pair, trade page of users will be shown as gird trade. Please see below.

<figure><img src="https://1775041679-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fd1cEhboqiukWysySwLsO%2Fuploads%2F34MOIPqz2C98B4TNskXJ%2Fimage.png?alt=media&#x26;token=d8c6e454-eefd-4075-afc6-3ab0f3a4ac5a" alt=""><figcaption></figcaption></figure>

* Open OpenAPI white list: After opening OpenAPI whitelist, the tokens in whitelist can be traded through OpenAPI
* OpenAPI whitelist: You can use tokens in OpenAPI, such as several Token, use ',' to seperate them.
* Click \[Confirm], the spot trading area and the OTC trading area will release the currency information to the sandbox environment respectively (it does not actually take effect). At this time, the "Release" button is in the red state, as shown in the figure above.
* After confirming that the information of this modification is correct, click \[Release], and the button turns blue to indicate that the modification has taken effect this time (synchronized to the front-end system).<br>

### Same Token in Different Chains Setting

Functionnal background: Tether, the company which issues USDT, has issued this coin in three main blockchains. Users often make mistakes in recharging and withdrawal, which cause the operators and developers to deal with such kind of recovery operations due to wrong recharging or withdrawal, and produce low manpower efficiency.

Functional Purpose: To operate USDT series coins from different main blockchains in the same interface of recharging or withdrawal, and perform unified accounting for one coin of USDT.

<br>

**A）Basic Concepts**

Currently, the system supports three USDT coins: USDT (OMNI), EUSDT (ERC20) and TUSDT (TRC20) (privatization customers may have different names on different main blockchains).

1. Coins of the same type but in different chains: Stable coins developed and issued by a company on different main blockchains, but with the same name and value of the token on different main blockchains. We call these tokens collectively as the coins of the same type but in different chains, such as the USDT issued by Tether on the three different main blockchains of OMNI\ERC20\TRC20.
2. Main coin: In the exchange, each coin has a unique name. Under the USDT, the names of all coins of the same type but in different chains are unified as USDT, and the recharging and withdrawal data of all coins are concentrated under the coin named USDT. Then, we take USDT (OMNI) as the "main coin" of USDT series coins of the same type but in different chains.
3. Subordinate coin: In the same series of coins of the same type but in different chains, all coins except the main coin are "subordinate coins", such as EUSDT (ERC20), TUSDT (TRC20).

<mark style="color:red;">Note: The following configuration involves the change of asset relationship, which belongs to extremely high-level permission. By default, the super administrator has the right to configure it when the system gets online.</mark>

<br>

**B）Configuration Process:**

Precondition for operation: First of all, make sure that you have added USDTs (OMNI, ERC20, TRC20) of three different main blockchains according to the method of adding coins. After adding the USDTs of three main blockchains, continue the following operation.

<figure><img src="https://1775041679-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fd1cEhboqiukWysySwLsO%2Fuploads%2FQIkWkovS1rWBbFSwQzd6%2Fimage.png?alt=media&#x26;token=5e1745a9-07e5-404d-bdc7-8168afecd5ae" alt=""><figcaption></figcaption></figure>

**C）Operation Method:**

1. Set USDT (OMNI) as the main coin

   1.1 Open the coin management editing page of USDT (OMNI), and click the "Settings of Coins of the Same Type But in Different Chains" button in the upper right corner of the page. The setting window is displayed as follows:

<figure><img src="https://1775041679-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fd1cEhboqiukWysySwLsO%2Fuploads%2F4FW99kJfYkNnHFroBSVf%2Fimage.png?alt=media&#x26;token=2c98607d-0942-4a05-ab9b-9f8ecb83013c" alt=""><figcaption></figcaption></figure>

&#x20;    1.2 The values are set as follows:

* Chain name: OMNI
* Coin type: main coin
* Subordinate coin: Non-configuration item
* Enable recharging & cash withdrawal: Configure according to your needs.

Click "Save" to complete configuration

After completing the above operations, the user can see the chain name OMNI when operating on the interface of recharging and withdrawal (the same applies to H5 and App, and the screenshot is no longer shown below)

<br>

&#x20;2\. Link USDT (ERC20) and USDT (TRC20) as subordinate coins

&#x20;   2.1 Open the coin management editing page of USDT (ERC20) and USDT (TRC20) respectively, and click the "Settings of Coins of the Same Type But in Different Chains" button in the upper right corner of the page. The settings window is displayed as follows:

<figure><img src="https://1775041679-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fd1cEhboqiukWysySwLsO%2Fuploads%2FDtoHDwJvQscLbAhTfc75%2Fimage.png?alt=media&#x26;token=927ef2df-c47a-4d0a-9ca3-cbc8fb2c88d3" alt=""><figcaption></figcaption></figure>

&#x20;   2.2 Set values as follows:

Chain name: ERC20, TRC20 (if the coin is an ERC20 series coin, enter ERC20, and the same applies to TRC20)

* Coin type: Subordinate coin
* Name of main coin: USDT
* Replace assets: Not to operate now
* Enable recharging & cash withdrawal: Configure according to your needs

Click "Save" to complete configuration

After completing the above operations, the user can see the chain names OMNI, ERC20 and TRC20 when operating on the interface of recharging and withdrawal (the same applies to H5 and App, with no screenshots shown below)

<mark style="color:red;">Complete recharging and withdrawal of subordinate coins at least once, and confirm that the recharging and withdrawal of USDT on different main blockchains will be accounted for in the same USDT account.</mark>

<figure><img src="https://1775041679-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fd1cEhboqiukWysySwLsO%2Fuploads%2FuxQSvzTkSIi3ZoKdbVi1%2Fimage.png?alt=media&#x26;token=2f9f94fc-d23f-45df-a6c9-44ad0dc9254e" alt=""><figcaption></figcaption></figure>

&#x20;3\. Replace assets: Replace the USDT assets of the user's chains ERC20 and TRC20 with the USDT (OMNI) assets of the same amount

<figure><img src="https://1775041679-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fd1cEhboqiukWysySwLsO%2Fuploads%2F0MPPTDEPLbWGwjxuZZ6O%2Fimage.png?alt=media&#x26;token=3838e0a4-3010-41ec-98fd-932a8c8a13a2" alt=""><figcaption></figcaption></figure>

3.1 <mark style="color:red;">After confirming that the configuration of above main-subordinate relationship is correct,</mark> click Execute Now. The system will replace the user's assets in the subordinate coin with the assets in the main coin (from the available coin-to-coin account of subordinate coin to that of the main coin);

<br>

&#x20;4\. Configure main blockchain prompt writings

Go back to the main-currency configuration interface and open the chain name copywriting configuration

<figure><img src="https://1775041679-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fd1cEhboqiukWysySwLsO%2Fuploads%2Fb5lyneOpRIOanelYZKoy%2Fimage.png?alt=media&#x26;token=84d387b9-04ba-45a4-baf1-e3d355be7c80" alt=""><figcaption></figcaption></figure>

We provide you with a copywriting reference for USDT multi-main chain (for reference only)

* English：Ensure the network you choose matches the network you want to deposit/withdraw, or assets may be lost.
* 简体中文：请确保您选择的网络与您要充币/提币的网络一致，否则资产可能会丢失。
* 繁体中文：請確保您選擇的網絡與您要充幣/提幣的網絡一致，否則資產可能會丟失。

**Q\&A summary:**

Q1: Do you need to disable the active status of the subordinate coin?

A1: No, the main coin and subordinate coin need to be active, and the information of the latter in the user asset list will be processed as not displayed.

Q2: Why is the configured front end not active?

A3: Confirm that you have released the coin configuration at the back end. After 3 minutes, clear the explorer cache and open the website again to make it active.

<br>

### Trading Fee

<figure><img src="https://1775041679-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fd1cEhboqiukWysySwLsO%2Fuploads%2FUOX1rJbSocPSDAqV689g%2Fimage.png?alt=media&#x26;token=94513c1b-c2d6-4515-8ab9-a08e9d627ff2" alt=""><figcaption></figcaption></figure>

Blockchain fee is one of the main sources of income of the exchange. The blockchain fee against each coin pair is set in the "Blockchain Fee Setting" menu under "Financial Management", which consists of three parts, namely transaction fee, recharging fee and cash withdrawal fee.

Each coin pair can be set separately (For details of configuration of coin pairs, see [Coin Pair Config](#coin-pair-config) for details). Buyers and sellers are not distinguished in blockchain fee settings. However, to facilitate operators to access and offer discounts to market makers, the system supports setting the maker and taker separately. Here, the maker refers to the party whose placed orders in the market position of the current coin have not been traded, and the taker refers to the party who has placed limit orders or market orders and has completed trading with the placed orders in the current positions. Enter 0 for free, 0.01 for 1%, 0.003 for 3‰.

### Discounts

The system supports setting a discount for the distribution of handling fees for a certain period of time for a specified user.

<figure><img src="https://1775041679-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fd1cEhboqiukWysySwLsO%2Fuploads%2FFpNdtu96qX7JJ2pTuTLF%2Fimage.png?alt=media&#x26;token=4aa19d81-947d-4ae6-b0e8-e5ea29ddaf9b" alt=""><figcaption></figcaption></figure>

Page function description:

* Search: The query conditions support user ID, mobile phone number, email, and discount range.
* Add: Click “Add” to display the new fee discount pop-up window. On the configuration page, you can set the discount rate through the user's registered mobile phone number and email address.
* Data list: query all set transaction fee discount record data by default, in reverse order of adding time.
* Edit: Click “Edit”, and the Edit Fee Discount pop-up window will be displayed, and you can reset the configuration parameters.

<figure><img src="https://1775041679-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fd1cEhboqiukWysySwLsO%2Fuploads%2FOZhwas5wIL3cMSLWxrDt%2Fimage.png?alt=media&#x26;token=d859ff63-817c-4125-bfb8-71e27ec43b9e" alt=""><figcaption></figcaption></figure>

Features:

* Mobile/Email: Enter the email or mobile phone number of the user who needs to set the handling fee discount.
* Discount rate: the discount rate. The discount rate does not support a rate greater than 1. The input range is: 100% \~ 0%.
* The expire date: It can be defaulted to be valid for a long time, and an expiration time can be specified, and it will take effect immediately after the setting is completed.
* Comment: Support remark function.<br>

### Fee Currency

In order to stimulate the flow and trading activity of the platform token, the system supports the function of setting the platform token as the blockchain fee coin.

If this function is disabled, the transaction fee would be deducted nromally. If it is enable, the user can choose to deduct the platform token in priority for bloackchain fee in each transaction. The corresponding position displayed at the front end system is shown in figure below.

<figure><img src="https://1775041679-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fd1cEhboqiukWysySwLsO%2Fuploads%2F16m4hQaCTXffZRiYIcw6%2Fimage.png?alt=media&#x26;token=fb58b5a6-7743-4fae-8fe4-c934356a9852" alt=""><figcaption></figcaption></figure>

**Explaination:**

* Whether to open the platform token:
  * No: the line of blockchain fee setting at the front end will be hidden, as shown in figure below.
  * Yes: **'enable' is representative that system support this function only.** If users want to use platform tokens to deduct, it need to open 'platform tokens as transaction fee' buttom in my account. <mark style="color:red;">Once selected, the coin will be used as the platform token and can never be changed. Only the rate can be changed.</mark>
* Type of tokens: choose any tokes that is configured in platform as transaction fee tokens, users need to make sure this tokens is used before (the latest price can be the interest rate for deducting transaction fee), it cannot be deducted without price.
* Exchange rate: support to use proportion of tokens to deduct transaction fee. set the discount rate for reward (enter a number between 0-1). For example, 0.75 means can use platform tokens to pay 75% of transaction fee. 25% of the rest would pay according to original transaction fee.

<figure><img src="https://1775041679-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fd1cEhboqiukWysySwLsO%2Fuploads%2FHGuItEVIiL0zMv7thBVt%2Fimage.png?alt=media&#x26;token=d2fa291b-e06b-4004-b028-8f1f7a4a8a95" alt=""><figcaption></figcaption></figure>

### Withdrawal Fee Config

Crypto withdrawal fee is gas fee,can be set by currency(For details on configuring currency, see [Token Config](#token-config))Merchants can configure a fixed withdrawal fee or use the real-time gas fee on the chain as the withdrawal fee through the "smart fee" function.The position of the corresponding front desk is shown in the figure below.

<figure><img src="https://1775041679-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fd1cEhboqiukWysySwLsO%2Fuploads%2Fg9qrhQ7XthsmwepSsNG4%2Fimage.png?alt=media&#x26;token=33f9bb97-1442-4e18-a62d-46b4528e2d53" alt=""><figcaption></figcaption></figure>

The description of the background configuration function of the withdrawal fee, as shown in the figure below:

<figure><img src="https://1775041679-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fd1cEhboqiukWysySwLsO%2Fuploads%2FcB3uRcMDli4s37N7YDSz%2Fimage.png?alt=media&#x26;token=8ce12e1e-d36c-4907-841e-3a07498c6f15" alt=""><figcaption></figcaption></figure>

Function Description:

* **Currency:** the name configured in the exchange currency list;
* **Withdrawal fee:** Corresponding to the quantity of coins that users need to pay when withdrawing coins, the accuracy is not limited
  * When using "Smart Fee function", the data is updated every minute, the logic is as follows:
    * The current currency is the main chain currency : Withdrawal fee = latest main chain coin withdrawal fee amount \* general multiple of withdrawal fee;
    * The current currency is the token: Withdrawal fee = latest main chain coin withdrawal fee amount \* (exchange rate of main chain coin/token) \* same multiple of coin withdrawal fee, if the direct exchange rate of main chain coin/token cannot be obtained, take the main chain coin/token The exchange rate of chain currency/USDT and token/USDT is calculated by converting the exchange rate of main chain currency/token;
    * If the exchange rate cannot be obtained from the interface or the result cannot be calculated, use the "Withdrawal fee when abnormal";
  * When the "smart handling fee" is not used, it will be charged according to the fixed withdrawal handling fee configured by the merchant;
  * <mark style="color:red;">If the smart fee shows 0 , it means that the user does not need to pay the gas fee for withdrawing coins, and the merchants bear the withdrawal fee and need to deal with it in time;</mark>
* **Can it be adjusted intelligently:** After opening, the withdrawal fee converted on the chain (or the configured abnormal withdrawal fee) will be taken, and if it is closed, the transaction fee configured by the merchant will be taken;
* **Token Type:** Get the "currency type" field in the currency list. If the currency is the main chain currency, the main chain currency is the currency itself. For example, the main chain currency of BTC is BTC. If the currency is xx token, then The main chain currency is XX currency, for example, the main chain currency of SHIB is ETH;
* **The latest main chain currency fees:** Through the interface provided by ChainUP Custody, the real gas cost of the main chain coin (unit is the main chain coin) is queried and **updated every minute**, and the accuracy is the display accuracy of the main chain coin;
* **Update time：**&#x54;he time when the latest main chain token fee was updated successfully

Click the \[<mark style="color:blue;">Smart handing fee</mark>] button above the currency list to perform global configuration, As shown in the figure below.

<figure><img src="https://1775041679-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fd1cEhboqiukWysySwLsO%2Fuploads%2FyBc9FerAP7BgIkFVXA1G%2Fimage.png?alt=media&#x26;token=349d45ed-3df6-4762-b434-ffd58dd5955b" alt=""><figcaption></figcaption></figure>

Instructions:

* **Enable Smart Fees:** If the enable button is clicked, it means that all currencies are turned on at the same time, and the merchant can turn off separately a single currency; if the close button is clicked, it means that all currencies are turned off at the same time. At this time, the merchant cannot turn on a single currency. If the operation There is a system prompt when opening: Please enable the smart fee configuration first!
* **Multiple of withdrawal fee :** It can be set to 1\~100 times, and the precision is kept to two decimal places. After setting, the actual withdrawal fee will be charged according to the corresponding multiple of the latest main chain currency (tokens need to be converted according to the exchange rate) (<mark style="color:red;">usually it can be set to 2 times, using To make up for the gas fee cost incurred by merchants due to asset collection when users recharge to the exchange</mark>). After modifying the multiplier it will not affect the "enable smart fee" status of the currency. The currency that did not use the smart fee will still be charged the withdrawal fee according to the configured fixed amount.

<br>

Click the \[<mark style="color:blue;">Edit</mark>] button in the currency list to make related configurations in the pop-up window. As shown in the figure below.

<figure><img src="https://1775041679-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fd1cEhboqiukWysySwLsO%2Fuploads%2FGQjBUWk5OlcfoyNfxABb%2Fimage.png?alt=media&#x26;token=f7e27829-977c-4ce0-9dd4-eefe92f0703d" alt=""><figcaption></figcaption></figure>

List field description:

* **Currency abbreviation:** display the corresponding currency, cannot be edited
* **Enable Smart Fees:** Switch for a single currency
  * Yes: Use the "Smart Handling Fee" function, and display the "Withdrawal Handling Fee in Abnormal" field at the same time.This field is used when the exchange rate between the token and the main chain currency cannot be obtained, and the actual withdrawal amount cannot be calculated. The system will charge the user a withdrawal fee according to the amount configured here, the default is 0 that is the user will not be charged a withdrawal fee;
  * No: Do not use the "Smart Fee" function,At the same time, the "Withdrawal Fee" field is displayed,Merchants can set a fixed amount as the withdrawal fee, the default is empty, that is, no fee will be charged (the list shows 0);

    If the smart fee is turned on (and the data on the chain is obtained) and then turned off, the default value when the user configures the withdrawal fee is the latest amount updated last time.

<br>

### Order

As shown in the figure below, the list of order management displays all orders on the platform in reverse order by order time. The top provides four categories of filtering functions according to trading currency pairs, according to trading direction, according to transaction status, and according to pending order time, as well as two search functions by user ID and by order ID. The bottom of the page can be paged and turned.

<mark style="color:red;">Due to the large amount of order data, automatic query will not be performed when entering the order page by default, so the page will prompt "No related data is available". You can enter the search criteria and click the \[Search] button to query.</mark>

<figure><img src="https://1775041679-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fd1cEhboqiukWysySwLsO%2Fuploads%2FHMsufWegAGBTsG6qxurV%2Fimage.png?alt=media&#x26;token=fd632ec8-93a3-4ff5-b780-0a6f96fb0363" alt=""><figcaption></figcaption></figure>

Features:

* Accurate query based on user ID, order number, mobile phone number mailbox, currency pair, order status, order type, commission time。
* Order type: all (buy & sell), buy, sell.
* Order status
  * All: all status orders
  * Initial trial order: The commission order submitted by the user has not been merged into the market temporarily.
  * New orders: orders already in the market queue, orders already in the matching queue.
  * Complete transaction: Order data for all transactions.
  * Partial transaction: Part of the order data was transacted.
  * Cancelled orders: user orders that have been cancelled.
  * Pending order cancellation: An order initiated by the user and not yet removed from the matching queue.
  * Abnormal order: An order that is abnormally traded, such as an order that fails due to abnormal funds.
* Token pairs: Only supports querying order records by distinguishing currency pairs.
* Operation function
  * Expand: Click on "Expand" for orders that have been executed to query transaction details of each transaction, such as transaction time, transaction amount, transaction amount, transaction fee, etc.
  * Order export: Click order export to export order records (order data) that meet the query conditions (support export based on search conditions) by default.
