Skip to main content
currency mirrors the CurrencyRegistry: one row per registered code, with the quote asset new launches in that currency use, whether it is a real stablecoin or a Windrose currency backed by a vault, and the most recent rate the keeper oracle posted for it.

Fields

Indexes: vault, symbol.

Examples

Every currency, alphabetically:
By readable code (no hex encoding needed on this table):
By primary key, with the hex code:
Only Windrose currencies, with the latest vault snapshot of each (one nested query per row):
Real stablecoins only:
Which currencies have launches, and how many:
Rates that look stale (older than two hours, the keeper oracle’s fresh window):
With curl:

Reading the rate

lastRate is how many units of the currency one US dollar buys, in 1e18 fixed point: an INR rate of 83250000000000000000 means 83.25 INR per USD. To convert a price or amount:
  • Launch currency to USD: divide by lastRate (and multiply by 1e18 to stay in fixed point).
  • USD to launch currency: multiply by lastRate / 1e18.
The app uses the same rate to show a launch priced in INR as a dollar figure, and the rates table holds the full history behind lastRate.

How the table is maintained

The table is seeded from registry.allCodes() and registry.get(code) the first time a handler needs it, and updated by CurrencySet when the registry owner adds a synthetic, changes a tier or toggles enabled. lastRate and lastRateAt are written by every RatePosted for a code the registry lists; rates for unlisted codes only appear in rates. On Robinhood Chain and Robinhood testnet EUR is not registered, so there is no EUR row there; Arc testnet registers EURC as tier 1.