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
- Quote the cost with
calculateBuyCost(token, amount).
- Approve the payment token to the
Market for at least totalCost.
- Buy with a
maxCost guard.
Selling
- Quote the proceeds with
calculateSellPayout(token, amount).
- Approve the RWA token to the
Market for amount.
- 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.