Generated by scripts/stablefx-probe.ts against live Arc testnet (block 54109049) and the StableFX sandbox API. Every row below is a real HTTP/RPC response, not inferred from documentation.
| Currency | Address | Symbol | Name | Decimals |
|---|---|---|---|---|
| USDC | 0x3600000000000000000000000000000000000000 | USDC | USDC | 6 |
| EURC | 0x89B50855Aa3bE2F677cD6303Cec089B5F319D72a | EURC | EURC | 6 |
| BRLA | 0x8629020763F6239643a02e664a25BF4AD7787254 | BRLA | BRLA Token | 18 |
| AUDF | 0xd2a530170D71a9Cfe1651Fb468E2B98F7Ed7456b | AUDF | Forte AUD | 6 |
| MXNB | 0x836F73Fbc370A9329Ba4957E47912DfDBA6BA461 | MXNB | MXNB | 6 |
| QCAD | 0x23d7CFFd0876f3ABb6B074287ba2aeefBc83825d | QCAD | QCAD | 6 |
| KRW1 | 0xC5bD9EBB09446F5F94E3b3D899072fC2eC5d3a1a | tKRW1 | tKRW1 | 18 |
| GBPA | 0xa42e82b5D25E84d107Cd8549CA432ef489CbaD32 | GBPA | Agant GBP | 6 |
| ZARU | 0x47b025D6002234a5038bCD94767bd82b27C2b96F | ZARU | ZAR Universal | 18 |
Observed quote TTL across all successful quotes: ~3.5s average.
| From | To | Quoted? | Rate | TTL(s) | Error |
|---|---|---|---|---|---|
| USDC | EURC | yes | 1.1222 | 3.5 | — |
| USDC | JPYC | no | — | — | 3008 At least one of the quote currencies is invalid. |
| USDC | JPY | no | — | — | 3008 At least one of the quote currencies is invalid. |
| USDC | BRLA | yes | 0.1974 | 3.5 | — |
| USDC | BRL | no | — | — | 3008 At least one of the quote currencies is invalid. |
| USDC | PHPC | no | — | — | 3008 At least one of the quote currencies is invalid. |
| USDC | PHP | no | — | — | 3008 At least one of the quote currencies is invalid. |
| USDC | AUDF | yes | 0.6425 | 3.5 | — |
| USDC | AUD | no | — | — | 3008 At least one of the quote currencies is invalid. |
| USDC | MXNB | yes | 0.0538 | 3.5 | — |
| USDC | QCAD | yes | 0.7137 | 3.5 | — |
| USDC | KRW1 | yes | 0.0007 | 3.5 | — |
| USDC | KRW | no | — | — | 3008 At least one of the quote currencies is invalid. |
| USDC | GBPA | yes | 1.2727 | 3.5 | — |
| USDC | GBP | no | — | — | 3008 At least one of the quote currencies is invalid. |
| USDC | ZARU | yes | 0.0568 | 3.5 | — |
| USDC | ZAR | no | — | — | 3008 At least one of the quote currencies is invalid. |
| EURC | BRLA | no | — | — | 3008 At least one of the quote currencies is invalid. |
| EURC | AUDF | no | — | — | 3008 At least one of the quote currencies is invalid. |
| EURC | MXNB | no | — | — | 3008 At least one of the quote currencies is invalid. |
| EURC | QCAD | no | — | — | 3008 At least one of the quote currencies is invalid. |
| EURC | KRW1 | no | — | — | 3008 At least one of the quote currencies is invalid. |
| EURC | GBPA | no | — | — | 3008 At least one of the quote currencies is invalid. |
| EURC | ZARU | no | — | — | 3008 At least one of the quote currencies is invalid. |
| BRLA | EURC | no | — | — | 3008 At least one of the quote currencies is invalid. |
| BRLA | AUDF | no | — | — | 3008 At least one of the quote currencies is invalid. |
| BRLA | MXNB | no | — | — | 3008 At least one of the quote currencies is invalid. |
| BRLA | QCAD | no | — | — | 3008 At least one of the quote currencies is invalid. |
| BRLA | KRW1 | no | — | — | 3008 At least one of the quote currencies is invalid. |
| BRLA | GBPA | no | — | — | 3008 At least one of the quote currencies is invalid. |
| BRLA | ZARU | no | — | — | 3008 At least one of the quote currencies is invalid. |
| AUDF | EURC | no | — | — | 3008 At least one of the quote currencies is invalid. |
| AUDF | BRLA | no | — | — | 3008 At least one of the quote currencies is invalid. |
| AUDF | MXNB | no | — | — | 3008 At least one of the quote currencies is invalid. |
| AUDF | QCAD | no | — | — | 3008 At least one of the quote currencies is invalid. |
| AUDF | KRW1 | no | — | — | 3008 At least one of the quote currencies is invalid. |
| AUDF | GBPA | no | — | — | 3008 At least one of the quote currencies is invalid. |
| AUDF | ZARU | no | — | — | 3008 At least one of the quote currencies is invalid. |
| MXNB | EURC | no | — | — | 3008 At least one of the quote currencies is invalid. |
| MXNB | BRLA | no | — | — | 3008 At least one of the quote currencies is invalid. |
| MXNB | AUDF | no | — | — | 3008 At least one of the quote currencies is invalid. |
| MXNB | QCAD | no | — | — | 3008 At least one of the quote currencies is invalid. |
| MXNB | KRW1 | no | — | — | 3008 At least one of the quote currencies is invalid. |
| MXNB | GBPA | no | — | — | 3008 At least one of the quote currencies is invalid. |
| MXNB | ZARU | no | — | — | 3008 At least one of the quote currencies is invalid. |
| QCAD | EURC | no | — | — | 3008 At least one of the quote currencies is invalid. |
| QCAD | BRLA | no | — | — | 3008 At least one of the quote currencies is invalid. |
| QCAD | AUDF | no | — | — | 3008 At least one of the quote currencies is invalid. |
| QCAD | MXNB | no | — | — | 3008 At least one of the quote currencies is invalid. |
| QCAD | KRW1 | no | — | — | 3008 At least one of the quote currencies is invalid. |
| QCAD | GBPA | no | — | — | 3008 At least one of the quote currencies is invalid. |
| QCAD | ZARU | no | — | — | 3008 At least one of the quote currencies is invalid. |
| KRW1 | EURC | no | — | — | 3008 At least one of the quote currencies is invalid. |
| KRW1 | BRLA | no | — | — | 3008 At least one of the quote currencies is invalid. |
| KRW1 | AUDF | no | — | — | 3008 At least one of the quote currencies is invalid. |
| KRW1 | MXNB | no | — | — | 3008 At least one of the quote currencies is invalid. |
| KRW1 | QCAD | no | — | — | 3008 At least one of the quote currencies is invalid. |
| KRW1 | GBPA | no | — | — | 3008 At least one of the quote currencies is invalid. |
| KRW1 | ZARU | no | — | — | 3008 At least one of the quote currencies is invalid. |
| GBPA | EURC | no | — | — | 3008 At least one of the quote currencies is invalid. |
| GBPA | BRLA | no | — | — | 3008 At least one of the quote currencies is invalid. |
| GBPA | AUDF | no | — | — | 3008 At least one of the quote currencies is invalid. |
| GBPA | MXNB | no | — | — | 3008 At least one of the quote currencies is invalid. |
| GBPA | QCAD | no | — | — | 3008 At least one of the quote currencies is invalid. |
| GBPA | KRW1 | no | — | — | 3008 At least one of the quote currencies is invalid. |
| GBPA | ZARU | no | — | — | 3008 At least one of the quote currencies is invalid. |
| ZARU | EURC | no | — | — | 3008 At least one of the quote currencies is invalid. |
| ZARU | BRLA | no | — | — | 3008 At least one of the quote currencies is invalid. |
| ZARU | AUDF | no | — | — | 3008 At least one of the quote currencies is invalid. |
| ZARU | MXNB | no | — | — | 3008 At least one of the quote currencies is invalid. |
| ZARU | QCAD | no | — | — | 3008 At least one of the quote currencies is invalid. |
| ZARU | KRW1 | no | — | — | 3008 At least one of the quote currencies is invalid. |
| ZARU | GBPA | no | — | — | 3008 At least one of the quote currencies is invalid. |
| EURC | USDC | yes | 0.8963 | 3.5 | — |
| BRLA | USDC | yes | 5.0788 | 3.5 | — |
| AUDF | USDC | yes | 1.5459 | 3.5 | — |
| MXNB | USDC | yes | 18.596 | 3.5 | — |
| QCAD | USDC | yes | 1.3922 | 3.5 | — |
| KRW1 | USDC | yes* | 1428.5715 | 3.5 | — |
| GBPA | USDC | yes | 0.7904 | 3.5 | — |
| ZARU | USDC | yes | 17.5132 | 3.5 | — |
*KRW1→USDC row above was originally recorded as refused (code 3005, "quote amount invalid") — that was this probe's own 1000 KRW1 test notional being too small (worth well under $1), not an unsupported pair. Re-confirmed at 100,000 KRW1 (~$70): quotes fine, rate 1428.5715. KRW1 is fully routable and is now registered in CurrencyRegistry.sol, internal/currency/currency.go, and packages/sdk/src/currency.ts — found and fixed after initial publication of this doc, when a mismatch between the on-chain-confirmed currency list and the actually-registered set was caught.
Finding: StableFX quotes are hub-and-spoke through USDC only — every successful quote in this probe has USDC on one leg. Direct cross-partner-currency quotes (e.g. BRLA→EURC, MXNB→QCAD) were refused with the same "invalid currency" error as genuinely unsupported currencies, even though both legs are individually quotable against USDC. Treat this as a real routing constraint, not a permissions gap.
Both Arc DEXes were probed for pools across every currency above. Only USDC/EURC had one. For BRLA, AUDF, MXNB, QCAD, GBPA, ZARU and KRW1 there was no pool on either router, so an on-chain swap route could not settle those pairs at all, and seeding liquidity to work around it was ruled out (spec §VOID).
That made StableFX not merely the primary cross-currency route but the only one. The swap code has since been removed rather than left in place unreachable — ConduitRouter.executeWithAmm, the adapter's swap functions and the SDK's swap are all gone. This section is kept as the record of why.
Primary demo pair: BRLA -> USDC
Reasoning: JPY and PHP are not currently quotable at all on this StableFX sandbox key (refused as "invalid currency", not a permissions error — tried JPYC, JPY, PHPC, PHP explicitly). Of the spec's named preference pairs, the exact named legs (JPY->EUR, JPY->USD, BRL->EUR, PHP->USD) do not exist because StableFX here is USDC hub-and-spoke only (see finding above) — every routable pair has USDC on one leg. Ranking by currency FAMILY (JPY > BRL > PHP > EUR, per the spec's stated order) against whichever leg actually quotes: JPY and PHP are unavailable, so BRL is the highest-ranked family that IS quotable, via BRLA->USDC. This beats the EUR->USD fallback, which the spec lists last precisely because it's the least differentiated pair — BRLA->USDC (Brazilian real into USD) is real cross-currency B2B settlement and also exercises the 18-decimal path (BRLA is 18dp, confirmed on-chain above), which EURC->USDC (6dp both legs) does not.