These docs describe protocol behavior. They are not financial, legal, or
investment advice. Using smart contracts involves risk of loss. Listed assets,
risk parameters, oracles, and upgrades are subject to on-chain admin
configuration and may change.
Users interact only with the controller. The pool is owner-gated (controller
only). Do not call pool mutators from an integration.
Liquidity hub and pool
The central pool is the liquidity source. Markets are rows in that pool, keyed byHubAssetKey { hub_id, asset } — not separate pool contracts per
token.
- Centralizes cash, indexes, scaled supply, and scaled debt
- Isolates markets by hub + asset (same token on two hubs = two markets)
- Enforces the rate curve and the utilization ceiling per market
Hub assets
A hub asset is a SAC / SEP-41 token listed under ahub_id. It is the
shared liquidity spokes borrow from and supply to.
Spokes
Spokes are risk modules. Each lending account binds to one spoke at creation, and that binding never changes. The spoke sets per-asset LTV, liquidation settings, supply and borrow caps, and the three halt flags (paused, frozen, no_seize).
- Local risk and halt controls
- Independent per-spoke liquidation curve
- Add or configure spokes without splitting the pool
Markets (reserves)
A market is how a hub asset is supplied and borrowed under a spoke. Pool parameters (rate curve, caps, flash-loan flags) live onHubAssetKey. Spoke
asset rows decide whether that listing is collateral, borrowable, and under
which LTV.
Interest rates
Borrow and supply rates follow a utilization curve on each hub asset. Utilization is borrowed liquidity over total liquidity. Rates use RAY units per millisecond; balances are scaled shares that grow with indexes. Displayed rates are variable and not a forecast of future returns.User positions
A position is what one account has supplied and borrowed on its spoke.- Supply — deposit into the pool through the controller; may accrue supply interest; can back borrowing when the spoke allows collateral
- Borrow — draw from the pool against eligible collateral; debt accrues until repaid
- Health factor — liquidation-threshold-weighted collateral divided by total
debt, in WAD. Below
1WAD the account is liquidatable. A debt-free account reportsi128::MAX
Liquidations
When health factor drops below1 WAD, liquidators repay debt and seize
collateral under the spoke’s liquidation curve (target health factor and
variable bonus). Dust and bad-debt paths are protocol-defined; see
Liquidations.
Read next
- Liquidity model — hub, spokes, markets
- Getting started — first supply/borrow in the app
- Soroban quickstart — controller calls for integrators

