Skip to main content
A rolled paper scroll closed with a terracotta wax seal
The tables below are generated from the deployment files written by contracts/script/Deploy.s.sol (packages/abis/deployments/<chainId>.json, which every off-chain service reads; see ABIs and the chain registry). Arc mainnet (5042) is in the chain registry but has no deployment yet.
Synthetic currencies are named per deployment: Robinhood Chain uses the w prefix (wINR, “Windrose Indian Rupee”); both testnets use the older ac prefix (acINR, “Arc Indian Rupee”). Names and symbols are immutable once deployed. Underwriter share tokens are named <name> Underwriter with the symbol uw-<symbol>.

Chains at a glance

The same USD constant applies everywhere: the registry registers "USD" as tier 1 with the dollar as quote asset, and the oracle returns 1e18 for it.

Robinhood Chain (4663)

Production. The public site windrose.market defaults to this chain. RPC https://rpc.mainnet.chain.robinhood.com, explorer robinhoodchain.blockscout.com, gas paid in ETH.

Robinhood testnet (46630)

The dollar is a mintable test USDG deployed by the launchpad (anyone can call mint(address,uint256)); the Uniswap v4 contracts are the launchpad’s own deployment. RPC https://rpc.testnet.chain.robinhood.com, explorer explorer.testnet.chain.robinhood.com, gas paid in ETH (faucet: https://faucet.quicknode.com/robinhood/testnet).

Arc testnet (5042002)

Gas is USDC. EURC is registered as the EUR quote asset. The Uniswap v4 contracts are the launchpad’s own deployment (Uniswap has no official Arc testnet deployment). A PythFxOracle is deployed but the registry points at the keeper oracle. RPC https://rpc.testnet.arc.io, explorer explorer.testnet.arc.io, gas paid in USDC (faucet: https://faucet.circle.com).

Reading addresses programmatically

Off-chain code should never hard-code these tables. @launchpad/abis ships the same JSON:
The web app exposes the same data over HTTP at https://windrose.market/api/deployment?chainId=4663 (see the HTTP endpoints), and the CurrencyRegistry is the on-chain source of truth: allCodes() lists every registered code and get(code) returns its quote asset and vault.