Pools, inventory and skew
Each OPmode market holds a stock token and USDC. Providers own shares of those assets and receive a share of trading fees.
One pool per mint, shared ownership
An OPmode pool has two program-controlled vaults: one holding the stock token and one holding USDC. Providers receive on-chain shares. When you buy, stock tokens leave the pool and USDC enters it; selling reverses that movement. Share value changes with inventory prices, trades and fees.
xStocks and Backpack Securities tokens use separate pools, identified by their mint addresses. AMDx and AMD can track the same company without being interchangeable deposits. Filter the Pools view by issuer and check the selected instrument before depositing. New pools are configured by opcode's operator; the terminal does not create pools. A registered market still needs funding, a supported verified reference and open transfer conditions before it can quote.
The ten original xStocks pools were seeded with half their initial budget in the token and half in USDC, 14,000 USDC in total:
| Pool | Initial funding |
|---|---|
| NVDAx / USDC | 5,000 USDC |
| SPYx, QQQx, GLDx, TSLAx, AAPLx, MSFTx, METAx, COINx and CRCLx / USDC | 1,000 USDC each |
These are historical first deposits, not current values or a promise of available liquidity. The original ten markets are currently paused. The Pools view reads current vault balances and separate deposit and withdrawal availability from the chain; Verify it yourself lists the original pool addresses.
The target
Each pool steers toward holding half its value in the stock token and half in USDC. Its target is the amount of stock that would make that split even at the current reference: the available stock plus the available USDC converted at the reference, divided by two. Outputs already promised to open quotes are set aside first. Every buy from the pool pushes its inventory below target and every sell pushes it above.
There is also a hard range. A trade may not push the stock's share of the pool's value outside 25% to 75%; a trade that would is refused, and one that moves the pool back inside is allowed.
Skew
A pool away from target leans its prices to attract the trade that would bring it back. This is skew: it shifts the center of the quote, moving both sides in the same direction, and leaves the spread's width unchanged.
| The pool is | Its ask | Its bid | Who benefits |
|---|---|---|---|
| Short: below target | higher | higher | Sellers, who bring stock back |
| At target | symmetric | symmetric | Nobody in particular |
| Long: above target | lower | lower | Buyers, who take stock away |
Skew grows in proportion to the distance from target and stops growing at ten percent away, where it reaches its maximum of 15 basis points. It can never exceed that, in either direction.
What happens after your trade
Your fill changes pool inventory and the next quote. Nothing else happens: the pool is not hedged on another venue and is not rebalanced automatically. Skew is the only force that moves inventory back toward target, by making the trade that does so cheaper, and the 25–75% range is the only hard stop.
The Pools view
The labels below use NVDAx as the example. Raw token amounts use the pool mint's precision: eight decimals for xStocks, six for Backpack Securities. USDC uses six decimals. Pool shares are separate whole units; a stock multiplier is never applied to them. A saved liquidity receipt keeps its original token decimals.
| Shown | Meaning |
|---|---|
| Pool value · USD at market price | Both vaults in dollars, with the token valued at the market's public raw token price |
| Pool NVDAx · raw, Pool USDC | What the pool's two vaults hold, read from chain; Observed gives the time of the reading |
| Pool shares | All shares outstanding, including those the owner wallet received for its deposits |
| Provider fee share | The part of each trading fee that stays in the pool for providers: 80% |
| Composition by value | How the pool's value splits between the token and USDC, on a bar from All USDC through Even to All NVDAx |
| Your pool shares, Your pool ownership | Your shares, and your percentage of the pool |
| Your NVDAx share · raw, Your USDC share | What your shares would redeem for at the pool's current composition |
| Your liquidity activity | Your deposits and withdrawals in this pool, with their status and a link to the transaction |
The Pools view lets anyone who has saved the trading acknowledgement provide both assets in the current pool ratio and withdraw their share of both. To deposit, choose Deposit and enter a USDC budget; the ticket adds the matching amount of the stock token, so you need both in your wallet. To withdraw, choose Withdraw and enter the Pool shares to redeem. Review deposit or Review withdrawal prepares the transaction and shows the maximum amounts it can use and the minimum pool shares received, or the minimum amounts received; the minimums are 0.5% below the estimate. You then have up to 60 seconds to choose Sign deposit or Sign withdrawal. Eighty percent of trading fees stays in pool inventory for providers; the remainder goes to the protocol fee vault. There is no reward token, no fixed yield and no guaranteed withdrawal value: providers carry the price moves of the pool's inventory and its trading gains or losses. Every withdrawal voids the quotes outstanding at that moment. A withdrawal that empties a pool, or leaves either vault below its floor, pauses its market; deposits then stop, and withdrawals stay open.