This reference is self-contained and safe to drop into another repo. You only need a
wallet, the addresses on these pages, and an RPC endpoint.
How trading works
You trade against a vault, not against other users. Each asset has:- A token — the ERC-20 (Base) or SPL Token-2022 (Solana) representing the asset.
- A vault — holds the payment token (for buy-backs) and unsold token inventory.
- A market — one contract/program serving all assets, with a single admin-set price per asset.
Pricing & fees
- Price is an integer in USD cents per whole token (
PRICE_PRECISION = 100). A price of150means $1.50 per token. - Fees are in basis points (
100 bps = 1%), taken off your buy cost and sell proceeds.
Settlement currency
Each asset settles in its own payment token — e.g. USDC or CNGN. Always read it per asset (payoutToken() on EVM, payout_token in the token metadata on Solana) rather
than assuming USDC.
Slippage protection
Every buy/sell takes a guard argument. Quote first, then pass the guard so the trade reverts if the price moved against you:- Buy:
maxCost/max_cost— the most payment token you’re willing to spend. - Sell:
minPayout/min_proceeds— the least payment token you’ll accept.
Payouts & redemption
Nothing is ever paid out on a schedule, and there is nothing to claim. Debt and fund tokens accrue interest into the asset’s price on the Market: your balance stays the same and each unit becomes worth more, every second, at the contractual annual rate. Accrual stops at maturity. You realise it by selling on the Market at the accreted price, or — if the asset has a maturity — by callingredeemPrincipal() yourself once it matures. See each chain’s page
for how to read the price and redeem.
Ethereum (Base)
Addresses, then the
Market / token surface you call to trade.Solana
Program IDs & PDAs, then the
rwa_market instructions you call to trade.