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. Each pool names its token and issuer; check them 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. Pools 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.
A pool's page
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 | Both vaults in dollars, with the token valued at the market's public raw token price |
| NVDAx in the pool, USDC in the pool | What the pool's two vaults hold, read from chain; How the pool earns gives the time of the reading |
| Shares | All shares outstanding, including those the owner wallet received for its deposits |
| Providers keep | The part of each trading fee that stays in the pool for providers: 80% |
| The mix | How the pool's value splits between the token and USDC, on a bank of ticks from All USDC through Even to All NVDAx |
| Your position | Your share of the pool, your shares, their value, and what they would redeem for at the pool's current mix |
| Your activity in this pool | Your deposits and withdrawals in this pool, with their status and a link to the transaction |
Pools 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 the USDC to put in; the ticket shows the matching amount of the stock token at the pool's mix, so you need both in your wallet. To withdraw, choose Withdraw and take out a share of your position: 25%, 50%, 75%, all, or a percentage you type. 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.