Skip to main content
Using the lending app? See the getting started guide under Guide in the sidebar, or open XOXNO lending directly.
Supply collateral through the controller in a few steps.

Call the controller

governance owns admin and timelocks parameter changes. controller is the user entrypoint. One LiquidityPool holds all assets. Lending calls go to the controller, not the pool.

Prerequisites

RequirementDetail
Funded accountA Stellar account with XLM for fees.
Controller addressThe single entrypoint. See Addresses.

Supply collateral

Supplying with account_id = 0 creates a new account and returns its id. Stellar CLI (testnet example):
stellar contract invoke \
  --id <controller> \
  --source-account your-account \
  --network testnet \
  -- supply \
  --caller YOUR_ADDRESS \
  --account_id 0 \
  --spoke_id 1 \
  --assets '[["<asset-address>", "<amount>"]]'
The call returns the new account id.

Check your position

stellar contract invoke --id <controller> --network testnet \
  -- health_factor --account_id <id>
A value of i128::MAX (or well above 1e18) means the account has no debt and is healthy for most actions.

What just happened

You created a cross-asset account. The tokens live in the single central pool. The controller now tracks your supply as collateral that can back future borrows, subject to the market’s risk parameters.

Next

Supply and borrow

Complete recipes for supply, borrow, withdraw, and repay.

System architecture

The governance–controller–pool model.

Governance

Timelock admin path for operators.

Health factor

How the protocol decides if a position is healthy.

Accounts and risk

Spoke risk, position limits, and account behavior.