Pool Architecture
1. Single-Sided Pool Design
Ratio uses single-sided stablecoin pools — each pool holds exactly one stablecoin (USDT, IDRX, MYRC, or tnSGD). This is fundamentally different from AMM-style paired pools (e.g., USDT/IDRX in a single pool).
When a user swaps USDT for IDRX, the Active USDT Pool receives USDT and the Active IDRX Pool sends IDRX. Each pool is debited or credited independently. This design means there is no impermanent loss from paired-pool rebalancing, pool depth per stablecoin is independently managed and monitored, and the inventory skew system operates cleanly on per-pool balance ratios.
Each stablecoin has three pool tiers (Active, Reserve, Yield), giving the system a total of 12 pools at Phase 1 launch (4 stablecoins × 3 tiers).
2. Three-Tier Architecture
Tier 1 — Active Pool
The execution pool. Every FX swap debits and credits the Active Pool directly. This is the only pool that user transactions touch.
| Property | Detail |
|---|---|
| Purpose | Live FX execution — serves all user swap requests |
| Funded by | Phase 1 internal settlement from Reserve Pool (never by direct LP deposits) |
| Debited by | User swaps only |
| LP withdrawals | Never — Active Pool is completely isolated from withdrawals |
| Inventory risk | Transient. Imbalances exist between user swaps and the next Phase 1 rebalance cycle. Inventory Skew operates on this transient deviation. |
| Min Balance | 40% of target (admin-configurable) |
The Active Pool is NEVER directly debited by LP withdrawals, and NEVER directly credited by LP deposits. All capital enters via Reserve Pool rebalancing; all capital exits via user swaps. This keeps State Engine signals, inventory skew readings, and FX execution clean and predictable.
Tier 2 — Reserve Pool
The internal counterparty and buffer layer. Absorbs inventory risk from the Active Pool during Phase 1 settlement. Serves as the primary source for standard LP withdrawals.
| Property | Detail |
|---|---|
| Purpose | Internal counterparty for Phase 1 settlement; LP withdrawal source (standard tier) |
| Funded by | LP deposits (Class A: 100%, Class B: per admin ratio); Phase 2 buy-back proceeds |
| Debited by | Phase 1 settlement (sends deficit stablecoin to Active); LP withdrawals (standard tier) |
| Inventory risk | Actual market risk ("The Bag") after Phase 1 settlement. VaR limits govern maximum accumulation. |
| Health gates | > 80% Healthy, 60–80% Mild, 30–60% Significant, < 30% Critical |
| Min Balance | 80% of target (admin-configurable) |
Tier 3 — Yield Pool
The yield-generation layer. Only receives Class B LP capital. Deploys into external yield strategies. Recalled to Reserve during deficit recovery.
| Property | Detail |
|---|---|
| Purpose | Generate yield for Class B LPs; fallback liquidity source for large withdrawals and deficit recovery |
| Funded by | Class B LP deposits (Yield portion per admin ratio); Class B Reserve overflow (tagged for priority recall) |
| Debited by | Yield Pool recall (Smart Rebalancing deficit recovery); large/whale LP withdrawals |
| Yield distribution | 100% to kXXX-full Liquidity Index. kXXX-fx (Class A) is never updated by yield events. |
| Loss firewall | Yield losses absorbed entirely by Class B index. Class A sees zero impact. Reserve Pool health is firewalled from Yield Pool losses. |
3. kToken Model
LPs receive rebasing kTokens when they deposit, representing their share of a pool. Two variants exist per stablecoin to enforce clean economic separation between intent classes:
| Variant | Example | Index Feeds | Holder |
|---|---|---|---|
| kXXX-fx | kUSD-fx, kIDR-fx | FX swap fees only (custom tier per partner) | Class A LPs |
| kXXX-full | kUSD-full, kIDR-full | FX swap fees (30% standard) + Yield profits | Class B LPs |
Both variants use the Vault Contract's Liquidity Index — a dynamic multiplier that increases over time as fees and yield accrue. kToken balances auto-compound; LPs never need to claim rewards.
Fee Distribution Flow
When an FX swap generates the 30% LP share:
- Calculate total TVL:
TVL_total = TVL_classA + TVL_classB - Class A share:
(TVL_classA / TVL_total) × fee × ClassA_multiplier - Class B share:
(TVL_classB / TVL_total) × fee × 1.0 updateIndex(classA_share)→ kXXX-fx VaultupdateIndex(classB_share)→ kXXX-full Vault
The ClassA_multiplier is a configurable per-partner parameter (e.g., 0.3× for strategic issuers, 0.8× for institutional, 1.0× standard).
4. Pool Configuration (Phase 1)
| Parameter | USDT | IDRX | tnSGD | MYRC |
|---|---|---|---|---|
| Active Pool Max | $1,000,000 | $500,000 eq | $500,000 eq | $300,000 eq |
| Active Pool Min % | 40% | 40% | 40% | 40% |
| Reserve Pool Max | $5,000,000 | $2,000,000 eq | $2,000,000 eq | $1,000,000 eq |
| Reserve Pool Min % | 80% | 80% | 80% | 80% |
| Yield Pool Max | $10,000,000 | $3,000,000 eq | $3,000,000 eq | $2,000,000 eq |
| Class B Reserve/Yield Ratio | 50/50 | 60/40 | 50/50 | 60/40 |