Creating the first exchange directions

The next logical step to populate your site after the initial admin panel settings will be creating exchange directions. To create the first exchange direction, you need to start by creating quotes, then creating currencies, and the third step is to directly create the exchange direction. Let’s break down what each is and how these three steps are interconnected.

  • Creating quotes

First of all, let’s clarify what quotes are. Quotes are the currency rates your site uses to calculate exchanges, for example 1 BTC = 102000 USDT, 1 USDT = 0.93 EUR, and so on. Essentially, these are the core data on which the entire exchange process is built. If there are no quotes, the system does not know at what rate to calculate currency conversions. To create quotes we need to go in the main menu to Currency Rates - Quotes. After purchasing a license you will have access to a set of several standard quotes, currencies and directions so you can easily see examples of how they are populated to create your own.

In the screenshot above you can see a list of quotes already created on the site; their key parameters are displayed here, and from here the administrator can quickly add, edit, activate or deactivate any rate. Knowing that quotes are the currency rates used to calculate exchange rates, it becomes logically clear what the fields on this page are responsible for. Detailed description of interface elements:

  1. The "+ Add" button in the top right corner:

    • The main action button on this page. Clicking it initiates the process of creating a new quote by opening the form to fill out.

  2. Table of existing quotes:

    This is the core of the page. It provides an overview of all rates in the system in a structured form. Each row is a separate quote. The columns provide the following information:

    • #: A unique numeric identifier of the quote in the database. Critically important for technical identification of the record. Sorted by default from new to old.

    • Group: The name of the group to which this quote is attached. Groups are used for logical sorting of rates (for example, "USDT Directions", "BTC Directions", "Fiat Hryvnia Directions"). This significantly simplifies finding the needed rate when there are many. The group name is available for quick filtering by quote groups.

    • Formula: The most important field. Displays the mathematical expression by which the final rate for this exchange direction is calculated. This may be a static number (for example, 40) or a dynamic formula consisting of the product of other quotes (for example, Whitebit:BTC_USDT * USDTTRC20_P24UAH). The system automatically computes this formula in real time for conversions.

    • Value: The rate already calculated by the formula you created. In the screenshot you can see examples of already calculated values. It is important to understand that they are not final, and if your formula includes volatile assets (i.e., coins or currencies with constantly changing rates) they will also update their rates in the system accordingly, so you should not worry that if you created a Bitcoin - USDT quote yesterday at $90,000 per BTC and today its price exceeded $100,000 and you would have to recreate or update the quote. Static quotes remain unchanged if you create a quote without a formula, simply with a value, for example "10".

    • Actions (Operations column):

      • Pencil icon (Edit): Clicking this icon opens the edit form for the selected quote, where you can change all parameters: formula, group, status.

      • Trash icon (Delete): Deletes the selected quote from the system. This action should be performed with caution as it may be irreversible. The system asks for confirmation before deletion.

Practical use: The administrator visits this page to ensure all rates are up to date. They can quickly find a quote by group name, check its formula and, if necessary, disable it for maintenance or edit it if the rate requires adjustment. Now that we understand the quote field labels, let’s proceed to directly creating one of them and examine the whole path to creating an exchange direction using several exchange direction examples. To create a quote we first need to create a group in the Groups menu; by clicking the “+Add” button we will go to the page where we need to fill in fields with our group name and a description comfortable for us and corresponding to this quote.

Next, returning to the Quotes section, click "+ Add" as well

Quote add/edit form

  1. Once in the corresponding menu we need to write a formula that meets our creation requirements, namely: In the first field “Formula” we write the initial calculation formula, where the first word always indicates the source of the rate—in our case the exchange WhiteBit; it could also be another exchange, for example Binance. After a colon we write the first calculation formula, namely the BTC rate to the stablecoin USDT - Whitebit:BTC_USDT. After the system recognizes the mathematical calculation, it will be displayed in parentheses for that quote.

  1. If our exchange direction were simply BTC to USDT, this quote would be enough. But since we need a dynamic calculation for BTC - PrivatBank24 UAH, we need to take the next step: create conditions to display the rate for the second half of the formula USDT-PrivatBank24 UAH.

For this we can use either an existing rate for that exchange pair from existing dynamic sources (for example Whitebit:USDT_UAH), which we can do immediately by clicking the "Choose calculation formula" button,

or create a quote with a static value for a specific payout currency, and then create other quotes that will always reference your static value in formulas. For example, if you create a static quote USDT - PrivatBank24 with the value "42", where 42 is your only static quote, you can tie this quote into all subsequent quotes for accepting that currency, for instance: Whitebit:BTC_USDT*(YourSiteName)USDT - PrivatBank24, Binance:ETH_USDT*(YourSiteName)USDT - PrivatBank24. If you later change the rate by which you perform exchanges, you can manually change only the single PrivatBank24 quote value, for example from 42 to 41.5 or increase it to 42.5, and your calculated formulas for all other directions tied to this one will immediately reflect the changes. 3. So, to create a static quote formula, it is sufficient to create a new quote with a convenient static value under a previously created quote group relative to USDT, for example 42 for UAH, 470 for KZT, 0.92 for EUR, 1 to create a quote for a stable currency like USD or USDT, 32.5 for TRY (the numbers are only examples and do not imply you must use the same when creating a particular quote; these are just approximate stable coin to currency ratios).

Create 2 quotes: One with the formula "42" and group "UAH" and the second with the formula "1" and group "Stable" to use the quote when creating a currency later. After creating the simple formula, click publish so the quote appears in the Quotes list. 4. At this stage of getting acquainted with the Quotes section we should have 3 quotes created manually - Whitebit:BTC_USDT, a simple static value for the currency we need (in our case just "42"), and the value "1" which we will use as a quote when creating the USDT(trc20) currency. The next step, if we want a formula we can always influence, is to create conditions for displaying the next part of the calculation formula, namely USDT_42 (USDT/42). For this we need to create 3 currencies in the admin panel under General - Currencies. Follow the field-filling instructions described in the section for creating the following coins: BTC, USDT, P24UAH which will be tied later in your exchange direction - arrow-up-righthttps://lara-script.gitbook.io/docs/admin-panel-functionality/general/currenciesarrow-up-right 5. If you have already followed the entire path following the instructions described in the Currencies and Directions sections, you will return to the Quotes section and, by residual principle, will create a new quote where you will see formulas unfamiliar to you earlier, namely *YourSiteName*:USDTTRC20_P24UAH, i.e. a new calculation formula that will be pulled from the exchange directions you created on the site, and using this formula you will be able to conveniently edit all directions tied to it by changing only the single initial quote for UAH with the formula "42"

In cases when a simple quote is required (for example, BTC → USDT), it is enough to connect a single parser.

However, for more complex directions where there is no direct quote (for example, BTC → UAH), a formula with multiplication or division operations is used:

  • The system takes two quotations from different sources (either from exchanges or from the internal Self Rate Provider).

  • Then they are multiplied or divided by each other to form the final rate.

Example:

  • Parser #1: BTC_USDT (from Binance or WhiteBit).

  • Parser #2: USDT_UAH (from an exchange, from the NBU rate or from your own site).

  • Result: the rate BTC → UAH = BTC/USDT × USDT/UAH.

Thus, you can form the so-called "tree of dependent quotes" and in the reverse direction, when one quote is based on another.

  • Creating currencies

After you have set up the first quotes and understood how the rate calculation system works, the next logical step will be adding currencies. Without them the exchanger will be empty: there are rates, but the client has nothing to exchange. So let’s figure out what exactly needs to be done here and how to correctly fill in all the fields.

What is a currency in the admin panel?

A currency is a specific asset the exchanger works with: Bitcoin, Ethereum, USDT on different networks, hryvnia, dollar, euro and so on. Clients interact with your site through currencies — they choose what to give and what to receive.

Each currency in the system is not just a name. Behind it lies a whole set of parameters: code, reserve, minimum exchange amounts, merchant (acceptance method), exchange rules, logo and even hints for clients. All of this needs to be set up once, and then the system will use the currency in exchanges automatically.

🛠️ Adding a new currency

1. The “Currencies” section

In the main menu of the panel open General → Currencies.

Here you will see a list of currencies already created. When purchasing a license the system includes several ready examples to help you understand how everything is organized, but we recommend creating or editing currencies to fit your operational specifics.

The interface is presented as a table with all existing currencies, a filter system for quick search, and an add button for new assets. Filters allow you to quickly find a currency by its unique ID, base currency (for example USDT) or shorthand code, which is critical when working with dozens of assets.

You can sort these fields as you like by holding the field name and dragging it left or right. You can also configure which fields are displayed in the top-right menu to hide information fields you consider unnecessary.

To create a new currency click the “+ Add” button.

The form is comprehensive and divided into logical blocks for ease of filling out. It contains all the necessary fields for integrating the currency into trading and operations.

Detailed description of fields and their purpose:

1. Filling out the form - main information:

A form will open before you, at first glance quite large, but everything is logical. Let’s look at the main fields:

  • Abbreviation: The most important technical currency code according to the export file formation standard for transferring exchange directions supported by the monitor BestChangearrow-up-right (for example BTC, LTC, P24UAH). This code is used to form the export file for monitors. An error here will lead to incorrect display of directions on external services.

  • Export abbreviation: Reserved field. For correct operation use the Shorthand field.

  • Amount (sum/reserve): The current volume of the currency available for exchanges. This number is displayed to users on the site and in monitors. Regularly updating the reserve is key to attracting clients; usually they indicate a value slightly higher than the actual balances.

  • In the currency settings you can set minimum and maximum order amounts. The logic works as follows:

In USDT equivalent: Now you can specify the minimum amount not in the currency itself, but in its USDT equivalent. This is convenient when the coin is very volatile (for example Bitcoin, Ethereum, Dogecoin): If you set the minimum in DOGE, after a price increase it will become excessive. If you set the minimum in USDT, it will always remain relevant regardless of price changes. Minimum/maximum exchange amounts (From minimum amount, To minimum amount, Maximum amount) - Fields can be set both at the currency level and at the exchange direction level. If values differ, the direction always has priority direction. If you fill in the minimum exchange amount data only in the currency fields, a formula will be used for the average specified calculation where 3 values participate in the calculation. We recommend using one of two methods - either specify only the minimum amount in USD equivalent, which is especially convenient for volatile crypto, or you can not use this field and rely solely on minimum exchange amounts in the specific currency. Conversely, for fiat currencies leave the USD equivalent field blank and set From minimum amount and To minimum amount to the same values, for example - 10000. Calculated minimum (actual) This is the final value that the system takes after all calculations and comparisons. That is, it takes into account:

  • Settings "From minimum amount",

  • Settings "To minimum amount",

  • Settings "Minimum amount in USD equivalent"

  • and after this the final minimum is formed, which is actually in effect when creating an order.

Example:

  • For USDT currency → minimum $50.

  • For a specific direction USDT → BTC → minimum $100.

  • For this direction $100 is taken into account.

  • Precision: a field that indicates how many decimal places should be considered. For example 2 when using USD or other fiat currencies, or 8 when using volatile coins with high value such as BTC so that displayed payments are not limited to only two digits like 0.09 but can be 0.09481841.

  • Confirmations: the number of network confirmations required for the coin to be credited to the account. For example, for BTC this could be 2, for ETH — 12. When creating a fiat currency you can leave the value "0".

2. Filling out the form - Other

  • Quotes - Field to select the corresponding quote for the currency. In our case, if we follow the instruction from the first step of creating currencies - Quotes, we need to create 3 currencies - BTC, a quote to calculate the hryvnia, and a quote for USDT (stablecoin).

  • Category - To keep things organized, currencies can be grouped into categories: cryptocurrencies, stablecoins, fiat, cash. This allows you to quickly find the needed asset even with a long list, and the same categories will be preserved for clients in the general currency list when searching.

To create a currency you must first create a category in General - Categories. Going to the corresponding menu you also click "+Add" and create the category name and the currency that will be displayed in that category, which can be edited at any time. For convenience, initially it is enough to create an empty category without a list of currencies, and only when creating currencies choose the categories you already created in the appropriate field.

  • Base currency — the “main group” to which this asset belongs. For example, all USDT variants (TRC20, ERC20, BEP20) will have the base currency USDT; UAH — accordingly UAH.

You can also upload a currency icon here. It’s a small detail but very important for users — it makes the site clearer and more pleasant, and it’s easier for you to navigate even when using the admin panel. For your convenience we collected links and files with common currency icons in the "Useful logos".arrow-up-right

  • Maximum payout period in hours - This is the time limit within which you commit to fulfill an order when this currency is in the recipient field for the client.

    👉 Example:

    • For fiat currencies (UAH, USD, EUR) they often set 1-8 hours.

    • For cryptocurrencies (BTC, ETH, USDT) usually 1–2 hours is enough.

But always orient yourself to your specific payment capabilities and ability to fulfill orders.

  • Show field for entering transaction hash - Relevant for cryptocurrencies. Allows the user to provide the transaction hash to confirm payment. This simplifies verification for the administrator, but don’t worry: with configured acceptance merchants the transaction hash will also be displayed in the order details; the feature is convenient when using static wallets for receiving funds.

  • Mass editing - A feature for administrator convenience. Allows you to quickly change parameters for several currencies at once. If this function is enabled, you will later be able to perform various one-time changes to this currency in General - Mass Editing.

👉 Example: If you need to simultaneously update the description of the currency for all cryptocurrencies or change the currency reserve, it is enough to do this later via mass editing in General - Mass Editing, the functionality of which is described in the documentation.arrow-up-right

  • Requisites verification is an additional security mechanism that requires clients to pass account verification before making a payment.

    If the parameter is enabled, only logged-in users who have previously passed account verification can make such a payment. This feature is primarily used when accepting fiat funds, or in systems where there is no automatic AML/KYC check and paired with mandatory identity verification, which can be configured directly when creating a direction.

3. Filling out the form - Merchant

  • Merchant - Here you select the provider through which transactions will be processed. This can be an exchange (for example, WhiteBIT), a third-party payment system (Perfect Money) or simply your wallet. For each currency you must specify the Merchant ticker and Merchant network — these are technical parameters without which integration will not work. For example, for USDT TRC20: Ticker = USDT, Network = TRC20. Merchant is the provider through which a one-time wallet address will be generated to receive payment from clients. You can see the list of available merchants by clicking the dropdown in the respective field, but be careful: if you choose one of the merchants you will then need to configure it; you can learn more about how to configure merchants in the technical documentation. arrow-up-rightYou can also use a static wallet; you can learn about its configuration features in the section. arrow-up-rightNote! For directions where the currency is accepted to the merchant’s automatic wallet, address generation for crypto payment and a QR code for quick payment of the order is enabled.

If you encounter difficulties creating a currency, you can open editing of an existing currency in another browser window and use it as an example to create your own by entering data appropriate for you and your currency.

4. Filling out the form - Additional fields

This section allows collecting additional information from the client when creating an order if the currency or direction specifics require it, configure the order of displayed fields and their content, and define required requisites.

  • Give - fields for the currency that the client must fill in if the client selected it as the currency to sell in the trading pair.

  • Receive - fields for the currency that the client must fill in if the client selected it as the currency to buy in the trading pair.

In essence, these are the fields the client must enter for currencies they give or receive; they are also called user fields. In both cases you have the ability to preconfigure these fields to suit your working conditions; for this go to General - User Fields, where you can learn in the technical documentation how to add and manage them. arrow-up-rightIn this section you can add the number of display fields you need for a specific currency.

  • Example 1: For payouts via USDT you will need an "Address" field to know to which address the client wants to receive the funds.

  • Example 2: For payouts via IBAN you will need an "IBAN" field.

  • Example 3: For UAH payouts we will need fields "Card" "Full name", and one of the requisites, for example "Card", we can mark as the main requisite without which the order will not be created.

5. Filling out the form - Content localization

Note give — general information about the currency if the client chose it as the currency to sell in the trading pair. For example, general technical information:

Note receive — general information about the currency if the client chose it as the currency to buy in the trading pair.

Merchant description - text that will be shown to the client after clicking the “Proceed to payment” button within the order

For example, after creating the currency pair on the site’s main page the client will see corresponding annotations for each currency in the order creation window in the appropriate localization. For instance, if we want to create the BTC - Visa/Mastercard UAH direction, when creating the BTC currency it will be enough to enter information only in the Note give and Merchant description fields like this.

The description for Privat24 UAH currency we fill in the Note (receive) field

After that, on the order creation page in the ready direction the text we indicated in both currencies will be displayed as follows:

So, after we have familiarized ourselves with all the currency fields, we need to continue the logical chain of creating the BTC-Privat24 UAH direction described in the quotes. To begin you need to create the BTC currency; knowing the examples from the description above this should not be difficult. In the Quotes dropdown field you select the quote you previously created according to the instructions.

After filling in the user fields, descriptions, icon according to your needs and operational specifics, the next logical step will be creating the next two currencies - USDT (network at your discretion; TRC20 is considered standard) and the Privat24 UAH currency. Below are screenshots of approximate field filling when creating these currencies. Privat24 UAH

The merchant field remains empty because we do not intend to accept funds for this currency, only to pay them out to the client. But even if we used the currency for acceptance, we could also leave this field empty, warning clients that they can make payments to the provided requisites in chat/email as many exchange services do. This would not prevent us from creating the currency since the field is not mandatory; it will also appear in the next instructions on creating exchange directions. USDT TRC20

By the usual principle we select the quote created manually beforehand, the stable "1" for stablecoins, and we also set the merchant since later we will use this coin to accept funds just like BTC. If you have completed all logical steps for creating the first exchange directions, namely creating three quotes and three currencies, you have one last important point left - creating directionsarrow-up-right, we recommend moving to the next section to read the instructions for the next steps. Summary Creating currencies is a foundational setup. If quotes are responsible for rates, currencies are the actual "cash desks" and assets your exchanger works with. They determine what clients will see, which amounts will be available and how orders will be processed. By creating and configuring currencies you gain a full set of tools for future exchange directions.

Creating directions

Functionality "Directions" (General → Directions) is responsible for configuring all routes available on the site for currency exchange. It is here that the link “from which currency → to which currency” is formed, base limits are set and financial parameters that affect the rate, profit and display of directions on the site and in monitors (for example, BestChange) are defined.

All created directions are displayed as a table with sorting and search by parameters. This allows convenient management of a large number of directions, quickly finding the needed one and editing it.

📋 Fields in the directions table

  1. # (ID) – a unique numeric identifier of the direction that is generated automatically. Used for search and internal relations in the system.

  2. ID from – the code (ID) of the currency the user gives.

  3. ID to – the code (ID) of the currency the user receives.

  4. Calculated min. – the system minimum value determined from the currency settings.

  5. Min. – the minimum exchange amount for this direction. If the specified minimum exchange amount differs from that set in the currency settings, priority will be given to the values specified in the direction.

  6. Max. – the maximum exchange amount. If the specified maximum exchange amount differs from that set in the currency settings, priority will be given to the values specified in the direction.

  7. Merchant – the provider or payment acceptance method through which requisites are generated for this direction. If a static wallet is used, the corresponding option will be indicated here.

  8. Quote – the base formula or rate source used to calculate the exchange value.

  9. Rate – the final rate that the client sees on the site and that is exported to monitors (for example, BestChange).

  10. Desired rate – manual rate adjustment that allows fixing a certain value regardless of quotes.

  11. Percent – a coefficient that is multiplied by the rate from quotes. Used to form the final rate displayed to the user.

  12. Priority – determines the order of the direction in lists on the site. The smaller the number, the higher the position.

  13. Profit percent – the exchanger’s margin for this direction. This is a key parameter for financial analytics, order export, and also for calculating referral rewards if they participate in the transaction.

  14. User verification – if the option is active, the user must pass verification (KYC) to perform exchanges in this direction.

  15. Mass editing – enables the ability to edit this direction in group operations. Convenient when you need to update several directions at once.

  16. Disable auto-sale – allows turning off automatic coin selling for a specific direction. If the option is active – auto-sale is not performed.

  17. Auto-generated – a system mark indicating whether the direction was created automatically when adding new currencies.

  18. Actions – a set of tools for editing, duplicating or deleting a specific direction. Using the actions field you can copy a direction by creating a duplicate, delete the direction or edit it

You can always choose the desired displayed fields yourself using the dropdown in the top-right corner.

🔎 Filtering and search

An advanced filter is available at the top of the section. It allows you to quickly find a direction by the following parameters, which significantly simplifies work when there are a large number of directions.

➕ Adding a new direction

Click the “+ Add” button and fill out the form:

  • ID from – choose the currency the user will give;

  • ID to – choose the currency the user will receive;

  • Quote – set the rate source you created earlier in quotes.

  • Percent – set a markup/discount relative to the base quoted price; it determines how much deviation from the exact rate you will display on the site. For example, if the calculated rate is x, it will be multiplied by the percentage you set, i.e. x*0.998, for example;

  • Priority – determine the place of the direction in lists (by default you can set 1, 5, 10);

  • User verification – enable the option if you need to accept orders only from verified users;

  • Precision “give/receive” – number of decimal places, same as

  • Min. / Max. – minimum and maximum exchange amount for the direction;

  • Profit percent – set the margin.

  • Merchant - provider or payment acceptance method through which requisites are generated for this direction. If you wish to use a static wallet, indicate the appropriate option. If you want to use the merchant set when creating the currency, you can leave this field blank

⚙️ Additional parameters

  • Mass editing allows updating multiple directions at once, for example to change rates or percentages. We recommend keeping the toggle field enabled.

  • Also, you can select Forced automatic to enable displaying the direction as automatic in the export file.

  • Enabled toggles whether the direction is displayed on the site

Advanced settings: The "Cities" section This section allows configuring geographic coefficients for cities.

  • City: Name of the city.

  • Coefficient: The coefficient by which the rate will be multiplied for users from this city (for example, 1.01 to increase by 1%).

  • Min amount: Minimum exchange amount for the specific city.

Advanced settings: The "Withdraws" section (Auto withdrawals). This section allows you to connect the auto-payouts module for this direction.

  • Auto withdraws: Select from the dropdown the active auto-payout module that will process transactions (if the module is connected) that can be bound to directions. In this case the system itself makes transfers to clients in the selected currency.

  • Min amount: Minimum amount to trigger an auto-payout.

  • Max amount: Maximum amount for an auto-payout.

After filling in all the required fields click the "Save" button. The direction will be added to the general list and, depending on its status, will become available to users. 📌 Thus, the "Directions" module is a basic tool for configuring the exchanger. It allows you to manage the full lifecycle of directions: from creation to editing rate parameters, limits, profitability and verification control. Returning to the sequential setup of quotes, currencies and directions mentioned in the corresponding sections, having already created 3 quotes and 3 currencies according to the previous instructions, we only need to create one or more exchange directions linked to our quotes and currencies. The first step is to create the USDT(trc20) - Privat24 UAH direction by selecting ID from and ID to, and it is here that we will specify the quote we previously set for the UAH direction, filling in the data in a way comfortable for us; you can save and enable this direction for display.

After saving the direction, in the quotes we will be able to take a new source for the rate, namely our site. What does that mean? That now, after we added the exchange direction, we can use it in formula calculations as USDTTRC20_P24UAH; entering this command you will see a new, unfamiliar popup with the name of your site at the beginning of the formula, and we can adjust this quote at any time to globally affect the calculated rate for any linked coin, not only BTC which is the example we follow.

Now, after we created our first direction, we need to create the direction we originally set as our goal, namely BTC - Privat24 UAH. To do this you need to create a new quote with a new source following the example in the screenshot above, where a new command appears. By the same remaining principle, we need to create a new exchange direction again, but now choose the direction not USDT(trc20) - Privat24 UAH, but BTC - Privat24 UAH, where a new 4th quote will be embedded - Whitebit:BTC_USDT*USDTTRC20_P24UAH

Congratulations, after entering all the data the first direction with a double rate calculation formula will appear on your site, and you can continue to create directions on the same principle. The same principle also works for reverse exchanges if you want to create Privat24 UAH - BTC or any other similar pair.

In the future, to change the rates in a direction you can use one of the methods: 1) edit the rates at the root of the quote itself 2) enter the "Desired rate" in the general directions table, in which case the system will change the formulas itself to achieve your desired rate 3) edit the percentage influence on the rate in the general directions table or in the edit of a specific direction

Last updated