Skip to main content
Everything you need to trade lives on two contracts: Market (quotes + buy/sell) and the RWA token itself (ERC-20 balance/approve + payouts). The functions below are the trader-facing subset — admin/governance functions are intentionally omitted.

Market — quotes & trading

RWA token — balances, approvals & payouts

The token is a standard ERC-20 (18 decimals) plus a few reads for the asset terms and interest payouts.
payoutToken() also tells you which ERC-20 you’ll spend when buying and receive when selling — it’s the asset’s settlement currency.

Buying

  1. Quote the cost with calculateBuyCost(token, amount).
  2. Approve the payment token to the Market for at least totalCost.
  3. Buy with a maxCost guard.

Selling

  1. Quote the proceeds with calculateSellPayout(token, amount).
  2. Approve the RWA token to the Market for amount.
  3. Sell with a minPayout guard.

Claiming interest payouts

For debt/fund tokens (hasPeriodicPayouts() == true), interest accrues on a schedule. You don’t need to do anything to receive it — a Chainlink Automation keeper triggers the payout on schedule and pushes the interest to every holder in the asset’s payoutToken(). If you’d rather not wait for the next scheduled run, you can pull whatever has already accrued yourself:
Payouts arrive in the asset’s payoutToken().

Redemption at maturity

When a token reaches end-of-life it is redeemed at a final price and your principal is paid out to you automatically in the payment token — you don’t need to call anything. If hasMaturity() is true, maturityDate() tells you when.