Assets - what users may convert, and on what terms
One row per currency and wallet type. Its directions, its size limits and how they combine across a pair, the spread override that can only widen, the floor and target, the hedge switch, and the Ecosystem eligibility column that overrides whatever the row says.
Admin → Convert → Assets (/admin/convert/asset). Viewing needs
view.convert.asset; adding, editing and deleting need edit.convert.asset.
An asset row is what users may convert and on what terms, for one currency on one wallet type. BTC on Spot and BTC on Ecosystem are two rows, with their own limits, floors and switches. A pair is open when both of its currencies have an enabled row of the pair's wallet type, the source allows from and the target allows to.
The fields
| Field | Meaning | Rule |
|---|---|---|
| Currency, Wallet | The currency code and Spot or Ecosystem. | Fixed once the row exists. A Spot row needs the currency enabled under Finance → Currency Management → Cryptocurrencies (/admin/finance/currency/spot); an Ecosystem row needs at least one enabled ecosystem token. |
| Status | Whether users can convert this currency at all. | Off keeps the row and its limits but refuses every convert of it. |
| Convert from / Convert to | The two directions. | An enabled row must allow at least one. |
| Min / Max (USD) | The smallest and largest single convert involving this currency. | Empty uses the global convertMinUsd / convertMaxUsd. The minimum may not exceed a non-zero maximum. |
| Spread (bps) | A spread for this currency, in bps, when it differs from the global one. | May only widen: an override below convertSpreadBps is refused. Empty uses the global. |
| Floor | House balance kept back. Converts into this currency are refused when paying one would take the house below it. | In the currency's own units. |
| Target | The balance hedging and house movements aim for. | Zero means no target; otherwise at or above the floor. |
| Hedging | Whether the house's position in this currency is hedged when hedging is on. | See Hedging. |
| Max unhedged (USD) | The most exposure in this currency the house may carry unhedged. | Empty uses the global cap only. |
| List position | The order the user's asset list is read in, lower numbers first: the widget opens on the first currency in it the user holds (else the first one), converting into the next one that can be received. The coin picker itself lists currencies alphabetically, the user's own first. |
How limits and spreads combine across a pair
A convert involves two assets, and both bind.
- Size. The pair's minimum is the larger of the two minimums; its maximum is the smaller of the two non-zero maximums. An asset's own value replaces the global one for that asset, so an override can be larger than the global maximum as well as smaller. A $2,000 maximum on ETH means no convert into or out of ETH may be worth more than $2,000, whatever the other currency allows.
- Spread. The pair is quoted at the largest of the global spread and the
two overrides. Without an exchange provider it is also never below
convertNoProviderMinSpreadBps. The spread actually applied is stored on the quote.
The per-user daily limit, the platform hourly limit and the unhedged exposure caps apply on top of both. See Settings.
Ecosystem rows: the column that overrides the row
An Ecosystem row converts as a balance only when the currency has exactly one enabled withdrawal chain, of a pooled family: UTXO coins, EVM tokens, TRC-20 tokens or TRX. The code decides this at every quote and every execute, whatever the row says. The Ecosystem eligibility column shows the verdict for each row: its chain family, how many withdrawal chains are enabled for it, and whether it is Open for balance converts or Closed for balance converts. The sentence a user would be refused with is on the Inventory page: on the House ledger tab, under Funding addresses, select a currency's Closed for balance converts badge to read it.
A closed row is not useless:
- A native EVM coin, SOL, an SPL token or a multi-chain token with Convert to on can still be received through Convert & Send, once it has a Send chain row. Users see Convert to ETH is only available as Send and a link to send it to an address.
- Nothing closed can be given on Ecosystem. The house may only buy what it can collect.
See Converting on Ecosystem for why.
Deleting a row
Only a disabled row can be deleted: switch it off first. Deleting removes the terms, never the history. Orders keep their rows, and the house keeps whatever balance of the currency it holds, which you can then defund. A quote held open against a row that is switched off or deleted fails its eligibility re-check at execute.