Appearance
Fees
A Textile FX swap has one protocol fee: a small taker fee, charged on top of the filler's quoted rate. It's set per chain by the on-chain SellFirstFeeController for that deployment:
| Chain | Taker fee |
|---|---|
| BNB Smart Chain (56) | 0.01% (1 bps) |
| Ethereum (1) | 0.05% (5 bps) |
| Celo (42220) | 0.01% (1 bps) |
The rate you see in the app before confirming is the effective rate with the taker fee for that chain already included. What you see is what you get.
The filler's spread
On top of the taker fee, the price a filler quotes already carries their margin. A filler buying cNGN below the market and selling it above earns the difference. That spread is part of the quoted rate too, so it never surprises you: compare the effective rate directly against any OTC or P2P quote.
Limit orders
The taker fee is paid by whoever takes an order, and a limit order puts you on the maker side. Placing one is gasless after a one-time token approval (a small transaction, the first time you use a sell token), and when it fills, the filling side pays the taker fee on top of your price — you receive exactly the amount your order named. Beyond that first approval, the only transaction you'd ever pay gas for is a cancel.
A worked example
You swap $10,000 of cNGN for USDT on BNB Smart Chain, where the taker fee is 1 bps:
- The app quotes the best fillers' prices for cNGN → USDT and shows the effective rate, the filler spread and the 1 bps taker fee already included.
- You submit. The matching filler orders execute in one transaction.
- The taker fee on the trade is about $1, paid to the protocol. Everything else is the rate you already saw.
The same 1 bps applies on Celo (wARS ↔ USDT and wBRL ↔ USDT). Ethereum (XAUt ↔ USDT) is set to 5 bps by its own controller.
Your total cost is whatever the quoted effective rate told you, nothing more.
Next
- How it works for the mechanics behind the order book
- Reading your quote for what each number on the swap screen means