Supported currencies
Every amount crossing the API is an integer in the currency's smallest
unit. The divisor is not always 100 — BTC has 8 decimal places and ETH
has 18 — so hard-coding * 100 is wrong for several supported currencies.
{ "amount": 5000, "currency": "USD" } is $50.00.
{ "amount": 5000, "currency": "BTC" } is 0.00005 BTC, not 5000 BTC.
Use toMinorUnits(amount, currency) and fromMinorUnits(amount, currency)
from the SDK rather than multiplying by hand.
Currencies
Generated from the SDK's own currency tables, so this page cannot disagree with what the client accepts.
| Currency | Symbol | Decimals | Minor units per unit | In Currency type |
|---|---|---|---|---|
AED | د.إ | 2 | 100 | Yes |
AUD | A$ | 2 | 100 | Yes |
BTC | ₿ | 8 | 100,000,000 | Yes |
CAD | C$ | 2 | 100 | Yes |
CNY | ¥ | 2 | 100 | No |
ETH | Ξ | 18 | 1,000,000,000,000,000,000 | Yes |
EUR | € | 2 | 100 | Yes |
GBP | £ | 2 | 100 | Yes |
GHS | GH₵ | 2 | 100 | Yes |
INR | ₹ | 2 | 100 | Yes |
JPY | ¥ | 0 | 1 | No |
KES | KSh | 2 | 100 | Yes |
KRW | — | 0 | 1 | No |
NGN | ₦ | 2 | 100 | Yes |
SGD | S$ | 2 | 100 | Yes |
SOL | SOL | 9 | 1,000,000,000 | Yes |
USD | $ | 2 | 100 | Yes |
USDC | USDC | 6 | 1,000,000 | Yes |
USDT | USDT | 6 | 1,000,000 | Yes |
ZAR | R | 2 | 100 | Yes |
A currency absent from the decimals table falls back to 2.
A No in the last column means the currency appears in the SDK's symbol or
decimals tables but not in its Currency union — so it formats correctly but
is not an accepted type-level value. Those rows are a real inconsistency in the
SDK worth reconciling.