Skip to main content

How the exchange works

This page explains, for issuers and market makers, what happens to a stablecoin once it is listed on BlankFX: where it is held, how it is priced, what fees apply and what controls exist.

Two venues

Both are non-custodial: users sign every movement from their own wallet. BlankFX never takes custody of user funds.

Currency pools

There is one pool per fiat currency. All listed coins of that currency sit in the same pool: Addresses: Contracts and Supported tokens. The pool tracks, per coin, how much it holds (reserve) and how much it owes suppliers in that coin (liability). Reserve divided by liability is the coin’s coverage. Coverage drives pricing.

Same-currency swaps (e.g. USDC → USDT)

  • Priced at 1:1 minus a fee. There is no FX rate in a same-currency swap.
  • Fee = base fee (0.05% in the USD pool, 0.10% in the others) + an inventory fee of up to 1.50%, charged only when the coin being bought falls below a normal coverage band.
  • The pool will not pay a coin out below 5% coverage. At that point that coin can be swapped into the pool but not out of it until it is replenished.
What this means for an issuer: if your coin is in demand, it gets scarce in the pool and buying it gets more expensive, which draws in arbitrage and supply. If your coin is being sold heavily, it accumulates in the pool. Pool suppliers carry that exposure, which is why listing due diligence matters.

Cross-currency swaps (e.g. USDC → EURC)

  1. The rate starts at the oracle mid-rate.
  2. A pricing curve (a proactive market-maker curve, k = 0.1) moves the rate against the trade as size grows and as the output pool’s coverage falls. In a balanced pool, small trades price very close to the oracle.
  3. The fee is deducted (base 0.10% + inventory fee as above).
  4. If the resulting rate would be more than 2% from the oracle, the pool refuses the trade. Large tickets like that go to RFQ.
Settlement is atomic: the input is taken and the output delivered in one transaction, or nothing happens.

Oracles

When a feed is stale, the pool stops quoting cross-currency swaps for that currency. It fails closed rather than trade on an old price. Same-currency swaps in that pool are unaffected because they don’t use the oracle. On Ethereum (mainnet) BlankFX will use Chainlink wherever a feed exists for the currency.

Fees and where they go

All rates are contract parameters, published on-chain and bounded in code (the treasury share cannot exceed 50%, the transfer fee cannot exceed 0.50%). Full detail: Fees.

Controls

Depeg protection. A per-coin peg monitor, which stops quoting a coin when its market price leaves a band around par, is in development. Until it ships, pools price same-currency coins at 1:1 and rely on the coverage-based fee and the 5% floor.

If an issuer freezes or pauses its token

Many stablecoins let the issuer freeze addresses or pause transfers. If a pool or escrow address were frozen for your coin, that pool could no longer move your coin. Swaps and withdrawals in your coin would fail, and suppliers’ value in your coin would be stuck until the freeze is lifted. Other coins in the pool keep working, and suppliers can still withdraw in them. For this reason listed issuers must tell us before using a freeze or pause power that affects BlankFX contracts. See listing requirements.

Networks

On Sepolia the listed coins are test deployments. On Ethereum, BlankFX lists only each issuer’s official contract.