Order Formats
A Reserve Asset swap has a pay side and a receive side. Each side can contain several distinct assets from the selected pool.
On the pay side, specify token quantities. On the receive side, specify shares of receive value. The quote determines the token quantities that satisfy that order at the resulting pool prices.
A basket order
| Side | Asset | Instruction |
|---|---|---|
| Pay | USDC | Pay 600 tokens |
| Pay | USDT | Pay 400 tokens |
| Receive | DAI | Allocate 60% of receive value |
| Receive | USDS | Allocate 40% of receive value |
This example illustrates the order’s composition. Different token prices and fees affect the final receive amounts.
The same structure applies to a pool containing eligible tokenized stocks or other RWAs. A stock basket requires those tokens to be registered and tradeable in the selected pool.
One exchange
The engine sums pay-side value flow and allocates it across receive assets. It solves the complete reserve exchange, then settlement applies the accounting and token movements atomically.
Distinct receive assets are priced from their own opening reserves and scales. The engine solves each receive leg within the same pool. Finite-precision allocation remainders can depend on order, so clients should preserve the order between quote and execution.
Constraints
Both sides must be nonempty. Pay amounts and receive allocations must be positive. Allocations must sum exactly to a complete allocation. Tokens must be unique within and across the sides.
The user protects each receive amount with a minimum. If one minimum fails, the whole exchange reverts. Gas limits constrain the number of submitted legs.
LP Tokens
The selected pool’s LP Token uses dedicated provide/remove operations. Its issuance and redemption follow the liquidity API. An LP Token from another pool can trade as a Reserve Asset when registered in that role.