> ## Documentation Index
> Fetch the complete documentation index at: https://getequity.io/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# On-Chain Overview

> How to trade RWA (Real-World Asset) tokens directly against the smart contracts on Ethereum (Base) and Solana.

This section shows you how to **buy and sell RWA (Real-World Asset) tokens directly
against the smart contracts** — no backend API in the middle. The same product is
deployed on two chains, **Ethereum (Base)** and **Solana**, so pick the one your wallet
is on. The trading model is identical on both.

> [!NOTE]
>
> 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 one **price** per asset.
  For debt and fund tokens it accrues every second at the asset's rate; for equity it is
  set by GetEquity.

Every trade is with the vault: you **buy tokens from it** and **sell them back to it** at
the asset's current price, minus a fee. Because this **isn't an AMM**, the price is fixed
per trade — it doesn't shift with your order size or with market depth. (For an accruing
asset it does move with time, by a small amount each second — see
[yield and accrual](https://getequity.io/docs/onchain/yield-and-accrual.md).) One token or a
million, you get the same per-token price with zero slippage from your own trade.

### Pricing & fees

* **Price** is an integer in **USD cents per whole token** (`PRICE_PRECISION = 100`). A
  price of `150` means \$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 calling `redeemPrincipal()` yourself once it matures. See each chain's page
for how to read the price and redeem.

> [card] [Ethereum (Base)](https://getequity.io/docs/onchain/ethereum-addresses.md)
>
> Addresses, then the `Market` / token surface you call to trade.

> [card] [Solana](https://getequity.io/docs/onchain/solana-addresses.md)
>
> Program IDs & PDAs, then the `rwa_market` instructions you call to trade.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.