Limit orders
How PT and YT limit orders are authorized, priced, and settled on Stellar.
The Stellar Limit Order Engine lets a maker offer PT or YT at an implied annual percentage yield (APY). Orders are authorized off-chain and settle atomically on chain.
Supported directions
| Maker provides | Maker receives | Typical intent |
|---|---|---|
| IBT | PT | Buy principal exposure. |
| PT | IBT | Sell a PT before maturity. |
| IBT | YT | Buy exposure to variable yield. |
| YT | IBT | Sell future yield. |
The IBT leg can settle in the canonical IBT directly or, when the IBT exposes the required vault or wrapper interface, in underlying tokens or wrapped vault shares. The engine performs the deposit, redeem, wrap, or unwrap conversion within the same atomic fill.
The order includes its market, direction, maker, receiver, amount, implied APY, expiry, and conversion safeguards. An order must expire before its PT matures.
Order lifecycle
- The maker signs Soroban authorization for order registration.
- A relayer can register the order and submit it for filling in one transaction.
- The maker grants the engine an allowance for the asset being sold.
- A taker fills all or part of the order.
- Core tokenizes or redeems PT and YT as needed, then pays both sides and the fee collector.
The engine derives PT and YT values from the maker's implied APY and time to maturity. This is deterministic zero-coupon pricing, not an AMM price or a TWAP oracle.
A fill is atomic: a later failure reverts earlier state changes. Solvers should filter invalid orders, enforce output bounds, and account for Soroban resource limits before submitting a batch.
Order identifiers are derived from the Soroban XDR encoding of the order. Cross-chain systems should pair the hash with the chain identifier rather than treating the hash as globally unique.
See the Router and Limit Order Engine reference for integration details.