Skip to content

Customer trading and pricing

Customers trade against the dealer’s own prices. Each price is a composite market mid plus a configurable spread for the asset. The customer sees one all-in price, with no separate trading fee.

Who uses it: the dealer’s customers, in the customer app. Dealers answer RFQs on the OTC desk.

  • Buy and sell prices for every listed pair, refreshed continuously.
  • The composite mid is built from several market data sources, mapped by asset identity (network and contract).
  • The spread is set per asset, in basis points.
  • Rounding is set per asset and applied in the direction of the price, buy or sell (for example 0.01 USDT, ฿1).
  • Stale-price protection: when market data is older than the configured limit, the system refuses new quotes.
  • The customer requests a quote. The server issues it with its own reference, price and expiry.
  • Quote validity is a setting (15 seconds by default).
  • A quote can be used once. A trade must match an unused, unexpired quote and is booked at the quote’s quantity and price.
  • An instant-trade ceiling (a THB value) sends larger orders to RFQ.
  • Every refusal states its reason: stale price, above ceiling, account restricted, invalid request.
  1. The customer opens the price board and picks an asset and an amount.
  2. The customer app requests a quote. The server checks price freshness, the instant-trade ceiling and the account’s restriction status.
  3. The server issues a quote (reference, price, quantity, expiry). The app shows a countdown.
  4. The customer confirms. The server checks that the quote is unused, unexpired and belongs to this customer.
  5. The ledger posts the trade as a balanced journal and checks that the account cannot go short.
  6. A hedge ticket opens on the desk for the dealer’s resulting position.
  7. A trade event goes to the back-office system for the confirmation note and the statement.

Customers submit an RFQ for larger or bespoke orders, and a dealer answers with a firm quote.

  1. The customer submits an RFQ with asset, side and size.
  2. The RFQ appears on the desk blotter.
  3. A dealer with the quoting role sends a firm price with a validity chosen from the configured options (for example 60, 120 or 300 seconds).
  4. The customer accepts before expiry. The trade books at the quoted terms.
  5. If the quote expires or the RFQ is closed, nothing is booked.

Expiry is set by the server clock, not the browser. The request terms cannot be changed after submission.

  • Every trade gets a system-issued reference.
  • A repeated submission with the same request key and the same terms returns the original trade, so nothing is booked twice.
  • The same request key with different terms is refused.
  • Available and held balances per asset and per network.
  • Trade, deposit and withdrawal history.
  • Trade confirmations, transfers and deposits are sent as events to the back-office system for statements and notices.

The fee statement and the regulatory statements shown before a trade and before a withdrawal are settings, in English and Thai. Their wording is updated without a release.

  • Refuses a new quote on a stale price.
  • Refuses an instant trade above the ceiling and sends the order to RFQ.
  • Refuses a trade on a used, expired or another customer’s quote.
  • Refuses a trade that would take the customer short.
  • Never books the same request twice, and refuses a reused request key with different terms.
  • Never reopens a closed or expired RFQ.
  • Refuses a trade on a restricted account — see Account restrictions.