AchRWA — Real World Assets on Arc
AchRWA brings real-world asset prices on-chain through a vault-backed synthetic token system. Users can buy and redeem synthetic tokens representing stocks, commodities, and forex — all settled in USDC on Arc.
How It Works
┌──────────┐ USDC ┌──────────────┐ mint ┌───────────┐
│ User │ ──────────► │ RWAVault │ ─────────► │ Synth │
│ │ ◄────────── │ │ ◄───────── │ (sAAPL) │
│ │ USDC │ 0.3% fee │ burn │ │
└──────────┘ └──────┬───────┘ └───────────┘
│
┌──────┴───────┐
│ AchRWAOracle │
│ (prices) │
└──────────────┘
- Buy — Send USDC to the vault, receive synth tokens at the current oracle price
- Redeem — Send synth tokens back to the vault, receive USDC at the current oracle price
- Fee — 0.3% on every buy and redeem
Supported Assets
| Symbol | Asset | Category | Price Source |
|---|---|---|---|
| sAAPL | Apple Inc. | Stock | Yahoo Finance |
| sGOOGL | Alphabet Inc. | Stock | Yahoo Finance |
| sWTI | Crude Oil WTI | Commodity | Yahoo Finance |
| sGOLD | Gold Futures | Commodity | Yahoo Finance |
| sSILVER | Silver Futures | Commodity | Yahoo Finance |
All synth tokens are ERC-20 with 18 decimals, matching Arc's native USDC.
Key Properties
- No AMM pools — Synth price is set by the oracle, not by supply/demand curves
- No liquidity needed — The vault holds USDC reserves to back all outstanding synths
- USDC only — Swaps are always USDC ↔ synth. No token-to-token swaps.
- Oracle-gated — Only authorized keepers can push prices. Anyone can read them.
Smart Contracts
| Contract | Address | Role |
|---|---|---|
| AchRWAOracle | 0x76398cfa526D4a76EaEC0c4709d6B7C966E5ABdB | Price oracle & pair registry |
| RWAVault | 0xb8dc1f767167b567227326D8849175a188A0e78C | Buy/redeem vault |
Fees & Reserve
- Fee: 0.3% (30 BPS) on buy and redeem
- Fees are separate from reserve — never mixed
- Reserve backs redemptions — vault must have sufficient USDC to honor all outstanding synth positions
- Owner can withdraw fees but cannot touch the reserve
Using AchRWA on AchSwap
Buying (USDC → Synth)
- Go to the Swap page
- Select USDC as the input token
- Select an RWA token (e.g. sAAPL) as the output
- Enter the USDC amount
- Review the quote (synth amount, fee, price)
- Click Buy and confirm the transaction
Redeeming (Synth → USDC)
- Go to the Swap page
- Select an RWA token (e.g. sAAPL) as the input
- USDC is automatically selected as the output
- Enter the synth amount
- Review the quote (USDC amount, fee, price)
- Click Redeem and confirm the transaction
note
No token approval is needed for redemptions. The vault checks your synth balance directly.
caution
RWA tokens cannot be used for liquidity provision. They are not backed by AMM pools — only by the vault reserve. The Add Liquidity page filters out RWA tokens automatically.