Engineering18 February 2026

Why we settle merchants in local currency, not crypto

A merchant who accepts crypto and gets paid in crypto has not been paid. They have been handed a position they did not ask for.

KU
KuvarTech

There is a version of crypto payments that is easy to build and useless to run. The customer pays in USDT, the merchant receives USDT, and everyone declares the integration a success. Then the merchant tries to pay salaries.

A business that accepts crypto and is settled in crypto has not been paid. It has been handed a position it did not ask for, in an asset it did not choose, with a treasury problem it is not staffed to solve. The payment only completes when the money is spendable.

The rate moves while the page is open

The hard part is not the transfer. It is that the price is agreed at one moment and settled at another, and the gap between them is where every rounding error, timing bug and angry support ticket lives.

Our rule is that the settlement amount is derived from the checkout session on the server, never recalculated on the client. A browser that recomputes the figure will disagree with the backend eventually — over a slow network, a stale tab, a retried request — and when it does, the merchant and the customer have two different truths about the same payment.

Conversion belongs to whoever can carry the risk

Someone has to absorb the movement between the customer paying and the merchant settling. It should not be the merchant, because they cannot price it and cannot hedge it. Pushing that risk onto the smallest party in the transaction is not a neutral technical decision; it is a decision to make their business harder.

So the gateway converts, and the business receives its own currency. Naira, Rwandan francs, whatever it banks in. The crypto is real, and it is entirely our problem.

What this costs us

It is more work. It means running FX, an internal ledger, and payout rails per market rather than forwarding a token and calling it done. It means settlement runs as queued background work so a congested chain cannot hold a checkout open.

That is the trade. The merchant gets a payment. We get the complexity. That division is the entire product.

Working on something like this?