Skip to content

Choose a market path

Create a token independently, then choose a direct CLMM or a virtual-reserve curve.

Token issuance and market creation are separate decisions. You can bring an existing supported token or use the token factory. Neither route automatically creates every possible token pair or supplies liquidity.

flowchart LR
Token[Create or bring token] --> Direct[Initialize CLMM / fund positions]
Token --> Curve[Initialize virtual-reserve curve]
Curve --> Target[Reach net quote target]
Target --> Graduate[Separate atomic graduation]
Direct --> CLMM[CLMM swaps and LP lifecycle]
Graduate --> CLMM

Direct CLMM

Choose initial square-root price, tick spacing, fee shares, and an optional hook. Open and fund positions around that price. Full-range and concentrated positions use the same accounting. An out-of-range position can be single-sided; a zap can convert part of one asset into an in-range deposit.

This path makes sense when the creator can choose an initial price and provide both sides or a deliberate inventory range. A market still needs real quote liquidity before it can pay sellers.

Virtual-reserve curve

Choose real base inventory, virtual A/B reserves, a protected bootstrap allocation, and a target in net quote atoms. The pool prices buys and sells under those parameters, but virtual reserves cannot fund redemptions. See bonding curve accounting.

After the target is reached, graduate_curve uses real principal and retained LP-share fees to fund a creator-owned full-range CLMM position. Protocol and beneficiary fee debts stay reserved. The pool, vaults, mints, and hook binding remain the same. The Q64.64 marginal price is preserved; matching price does not imply matching depth or future slippage.

Decide before initialization

DecisionWhy it matters
Quote assetDefines the units of price and the curve target; WSOL is not a USD oracle
Initial supply and authorityDefines issuance, not automatic liquidity or circulating supply
Tick spacingDefines valid CLMM range boundaries and graduation's full range
Input fees and beneficiariesDefine costs and liabilities in the input token
Optional hook and permissionsDefine callbacks, custom policy, and allowed external effects
Curve bootstrap floor and targetConstrain reachability and graduation backing

The hook configuration is bound to the pool. A curve's graduation preserves it rather than silently creating an unrestricted destination pool. Policy behavior can still depend on pool_mode, so inspect the hook implementation.

Use protocol capabilities to check the supported operations and interface versions for either path.