Turnkey white-label crypto exchange development

Launching an exchange from scratch runs into deadlines and risks at the start. We develop a turnkey white-label crypto exchange: deploy a ready-made core, configure reserves, liquidity and routing, and hand the service over for operation. Launch takes weeks, not months, and you get a platform that withstands peak load.

Blockchain Development Services

Frequently Asked Questions

Latest works

  • Development of a web application for FEEDME
    Development of a web application for FEEDME
    1359
  • Development of an online store for the company FURNORO
    Development of an online store for the company FURNORO
    1330
  • B2B Advance company logo design
    B2B Advance company logo design
    776
  • Development of a web application for Enviok
    Development of a web application for Enviok
    1077
  • AIDER company logo development
    AIDER company logo development
    1022
  • CRM development for Chasseurs
    CRM development for Chasseurs
    1113

Why a white-label crypto exchange loses orders under peak load

A white-label crypto exchange — that is, a turnkey exchange — is usually assembled from an off-the-shelf core, an operator panel, and one or two liquidity sources. Under a steady flow it works: a quote arrives, the order is locked, and the payout goes out.

Peak load on an exchange — market volatility, a listing, a spike in chat — changes the picture within minutes.

The first bottleneck of an exchange is the desynchronization of quotes and reserves.

The rate is locked at the moment the order is created, while the actual trade with the provider happens a few seconds later: if the price has moved, the difference is covered either by margin or by rejecting the customer.

Reserves are checked separately from order creation, so two parallel orders can rely on the same hot wallet balance.

The second layer of failures is stuck orders when an external liquidity provider fails. One source returns an error, the second offers a worse rate, the third does not pass the limit — and the order remains in the “processing” status without an owner.

The customer sees it in the interface, the operator sees it in the panel, but neither auto-cancellation nor return to the queue triggers: the status transition logic in the off-the-shelf core is not designed for partial failure.

Each such order turns into manual investigation: reconcile transactions, find the lost provider response, decide whether to wait, cancel, or pay out at the internal rate. At scale this is no longer an incident but a permanent support mode that eats margin and reputation. We explain how this is solved.

What an off-the-shelf core provides: reserves, liquidity, launch speed

A ready-made exchange core is not an interface template but a working loop: order intake, address risk checks, rate calculation, fund locking, and payout.

We deploy it on your infrastructure and adapt it to your brand — the team does not spend months on logic that has already been proven in live traffic.

Order routing and reserve management

The core maintains a reserve table for each direction and knows the actual balance at each liquidity provider. The order follows priority: first coverage from own reserve, then an external channel with the best price and sufficient volume.

Quotes are updated via oracles such as Chainlink, but the core reconciles them with its own valuation and, when the discrepancy exceeds a set threshold, pauses payout — the price does not go negative on stale data.

Resilience to external channel failure

Each liquidity channel has its own limit and response time, so a failure of one provider does not stop the service.

The core checks channel availability and, on failure, moves new orders to backup channels, while already accepted orders are completed at the previously locked rate. Duplicate payout requests are filtered out by operation ID — double debiting is excluded.

A proven core changes the launch timeline: instead of months of development, it takes weeks for setup, integration, and acceptance. Reserves, routing, and failure protection come ready-made, while you customize what differentiates your service.

Launch formats for a white-label crypto exchange and their limitations

Exchange launch formats differ in three things: where customer funds are stored, who is responsible for trade execution, and how much support costs. Below are four models that teams realistically choose between when launching a white-label crypto exchange.

Custodial and non-custodial model

Option When it fits Limitations
Custodial service Mass retail flow, fast deposits and withdrawals, simple interface Keys and funds are on the service side — higher security requirements, liquidity reserves needed
Non-custodial exchange Audience that does not trust the platform and holds keys itself The trade is assembled on the user side: more steps, part of the audience drops off
User-to-user exchange Need for flow without own reserve, work with local payment methods The service matches parties but does not guarantee the trade — disputes, ratings, order freezing needed
Brokerage exchange model Turnover is small or demand is uneven The spread depends on the counterparty, part of the margin goes to the partner

When a brokerage model is more profitable than your own matching

Your own matching is justified when the order flow is stable and covers the costs of reserves, arbitrage, and round-the-clock duty.

While volume is uneven, the brokerage exchange model closes trades through external providers: launch takes weeks instead of months, and liquidity is available from day one.

The flip side is that the service inherits third-party limits and failures, so multiple providers are connected and switched between based on balance and price.

Implementation stages: from scheme audit to handover to operation

Implementing a white-label crypto exchange is not installing a ready-made product but a chain of engineering decisions where each next step relies on the result of the previous one. Our work order is as follows.

Audit and scheme design

  1. Exchange scheme audit. We review connected rate and liquidity sources, payment channels, and wallets, and verify how rates, fees, and reserves are calculated. We record bottlenecks: duplicate operations, manual reconciliations, orders without an unambiguous status.
  2. Design of order and fund flows. We describe order states, debit and credit moments, and behavior during partial execution and refund — making it visible where funds get stuck and at what point an operation is considered closed.
  3. Core and limit configuration. Exchange parameters, routing rules, limits per pair and per individual operation, operator roles, operation log, and export for reconciliation.

Failure testing and acceptance

  • Failure testing. We cut off the rate source, revoke transaction confirmation, put the channel into timeout — and see what the user sees and how the system returns to a reconciled balance.
  • Load runs. We feed an order flow above the estimated level: it is important that the system degrades predictably and without losing orders.
  • Acceptance checks. We run end-to-end scenarios according to an agreed checklist: exchange, refund, manual adjustment, reporting. We close findings before signing.
  • Handover to operation. Accesses, environments, incident response regulations, operator instructions, and shift training.

Configurations, routing schemes, and regulations — what remains with you

Exchange handover is not a file archive but a working state: your team changes limits, adds a direction, or disables a currency on its own. The artifacts below remain with you in the repository and in the support system.

  • Exchange configuration — limits and fees by direction, list of pairs, rounding rules, manual review thresholds; as separate profiles for test and production environments.
  • Order routing schemes — the order path from intake to payout, liquidity and reserve connection points, conditions for switching sources when the rate deviates.
  • Access policies — a role matrix with permissions to edit rates, routes, and withdrawals.
  • Response regulations — checklists for a liquidity source outage, a stuck deposit, and balance discrepancies.
  • Integration documentation — order and status intake interfaces, exchange formats, behavior when a source is unavailable and on repeated requests.
  • Deployment instructions — how to bring up a copy of the environment, where backups are stored, and how quickly order intake is restored.

Access policies and separation of roles

Rights to withdraw funds and edit routes do not reside with the same person; critical operations are confirmed by a second employee. Every change of rate or limit is written to the log with the author, so access is revoked in one operation when an employee leaves.

Response and on-call regulations

For each failure class, the level, response time, and responsible person are defined: rate deviation — the on-call operator, source unavailability — the support engineer. Incident review records the cause and a regulation update so that the failure does not recur.

Case study: launching an exchange service on a ready-made core — metrics before and after

The project was the launch of an exchange service under the customer's own brand on a ready-made order matching core (OpenDAX).

The core was connected to three liquidity channels; cash accounting, anti-fraud, and an operator panel were assembled; after that, it was load-tested on real traffic. Below are the metrics before launch and after stabilization.

What it was like before launch

In the starting version, orders went into a single queue without priorities: at peaks, some did not receive confirmation and got stuck, and the share of lost orders reached 8–12%.

The customer saw a frozen status, wrote to support, and the operator investigated the case manually — this took almost a third of all requests.

A liquidity channel failure stopped the exchange entirely: switching was done manually, recovery took 25–40 minutes, orders piled up, and the spread went negative.

What changed after launch

The core was moved to idempotent processing with order keys, a priority queue, and retries with exponential backoff. The share of lost orders dropped to 0.3–0.5%, and throughput grew from 40 to 350 orders per second without an increase in latency.

Manual investigations decreased from a third of requests to 4–6%: accounting is kept with double entry, discrepancies are caught by auto-reconciliation, and channel availability checks move traffic to a backup source in 40–90 seconds.

A liquidity channel failure stopped being an incident for customers — they see a rate change but not a halt of the exchange.

What to do if some components are already deployed?

Yes, a partially deployed environment is a common case: the node is already running, payment acceptance works, and source-of-funds checks are connected.

We do not start from scratch but integrate on top and change only what will not sustain the target load or will not give control over operations.

For each component, we make a decision based on three criteria: load headroom, availability of an event log, and a documented interface for integration.

Below is how nodes are usually laid out during such an upgrade.

Component How we integrate Limitations
Blockchain node We connect to yours through a standard interface; if synchronization lags, we deploy a backup node Resource headroom and a second node for recovery are required
Source-of-funds checks We keep the service, bring responses to a unified format, and attach it to all incoming operations Address history is required; some requests go to manual review
Exchange anti-fraud We layer rules on top of current logs: limits, payout speed, recurring addresses Without an event log, the rules operate blindly
Custodial key storage We move it to an isolated environment with separation of rights and an operation log If keys were stored in the open — address reissuance and fund transfer
Payment gateway We keep the provider, add a second channel, and reconcile statuses Not all providers send status change notifications — polling is needed

Investments are preserved where the component emits events and can be verified — usually the node and the payment gateway.

We replace what cannot be controlled: custodial key storage and anti-fraud are almost always moved into our environment, because here the cost of error is maximal.

We take external analytics ready-made — Chainalysis and analogues cover source-of-funds checks faster than in-house rules.

Before work, we perform an inventory: we collect configurations, the flow scheme, and the list of accesses. Based on it, we record what stays in place, what we move, and what we decommission — before changes begin, not along the way.

Engineering doubts before launch: licenses, limits, customizations

Before launching an exchange, the customer's team checks five things: who owns the core, whether the code can be modified in-house, how the platform behaves when a liquidity provider's limits are exhausted, where keys are stored, and how to migrate accumulated data.

What is included in the core license?

A perpetual license for commercial use on your domains, with no limit on the number of environments. We transfer the source code and module documentation, and a list of third-party libraries as a separate appendix.

Can we customize the exchange in-house?

We transfer repository access and the module scheme. Your edits live in a separate branch, and core updates come on top without overwriting the code.

What happens if a provider runs out of limit?

The core works with multiple sources, and routing selects the available one by price and volume. When the limit is exhausted, the order goes to a backup source, and if all are unavailable, the user receives a clear rejection.

Where are private keys stored?

In an isolated signing module, not in the database and not in configuration files. Withdrawals pass through employee roles and daily outflow limits.

How is the database and operation history migrated?

A run on a copy, reconciliation of checksums by balances and operations, then switching during a low-load window with a ready rollback to the previous environment.

Let's discuss the task — we'll come back with a scheme, work plan, and estimate

For the exchange launch estimate to be concrete rather than “plus or minus an order of magnitude,” we need a set of inputs from you. They can be gathered in one conversation — that is enough to calculate stages, risks, and scope of work.

  • order flows: which operations we launch first, where manual control remains, amount limits, the scenario for a stuck transaction;
  • jurisdictional restrictions: customer acceptance countries, identity verification requirements, whether a licensed environment is needed or work through partner infrastructure;
  • key storage requirements: hot and cold environments, who holds access, separation of operator rights, recovery procedure;
  • liquidity channels: with whom agreements already exist, which providers we add, priority by volume and price quality;
  • integration scheme: what we connect the system to — payment services, source-of-funds checks, wallets, internal accounting;
  • project handover: who administers the exchange after launch, whether source code, accesses, and team training are needed.

In response, we send an integration scheme with responsibility boundaries, a stage-by-stage work plan with acceptance points, and an estimate for launching the exchange.

We separately record the project handover format: code package, infrastructure configurations, access policies, and documentation.

Describe the task in free form — we'll come back with an estimate and plan.