Current limitations
Implementation and integration boundaries to preserve when building on grapl.
Match your application to supported capabilities and the current ABI. The constraints below affect market design and transaction construction.
Protocol constraints
- Pool mode
0is CLMM; mode1is the virtual-reserve curve. Curve swaps do not cross into CLMM inside one trade; graduation is a separate instruction. - Pool settlement accepts classic SPL Token. A separately declared Token-2022 reward CPI does not enable Token-2022 reserve assets.
- Initialization permits classic reserve mints with issuer freeze authority. Issuers can freeze token accounts, including pool vaults, preventing transfers, swaps and withdrawals involving those accounts. The independent factory still creates no freeze authority and no metadata.
- One swap accepts at most 16 supplied tick pages; transaction bytes, hooks, and CUs can impose tighter limits.
- Compact pages can grow through funded reservation; shrinking or rent refund for those pages is not implemented.
- The core has four external fee-beneficiary slots. General custom hook accounting and return deltas reject.
- Hook payloads and extras are bounded. Per-phase permissions do not grant reserve custody or wallet signatures.
- Zaps require an existing owned CLMM position and a caller-selected conversion amount. They do not optimize the split or collect LP fees automatically.
- A curve's graduation position is creator-owned; retained LP-share fees fund its bootstrap. Protocol and beneficiary debts are excluded. Applications must explain this ownership policy.
Hook and route boundaries
Only one hook program binds to a pool; developers may combine rules within it. A pool hook does not constrain token transfers or trading on unrelated pools.
A generic quote does not prove wallet eligibility. Public sponsored rewards can assemble wallet accounts later, but contextual allowlists need an explicit proof/identity path. Some hook effects require pre-funded sponsor SOL. Neither issuance caps nor fee revenue guarantee sufficient rent funding or resistance to new-wallet abuse.
Public Jupiter registration, discovery, shared-account routes, and multi-hop execution require a separate routing integration.
Deferred capabilities
Confidential balances and settlement are deliberately deferred. Also outside the current interface: Token-2022 reserve extensions, verifiable asynchronous randomness, strategy vaults, automatic compounding, and transferable LP positions.
Release boundaries
There is no public mainnet address registry, completed grapl audit, guaranteed liquidity, production indexer, or verified Jupiter admission in these docs. The treasury increment adds ProtocolTreasuryInitialized and ProtocolFeesCollected events. Those events and instruction/probe logs do not provide a complete stable observer API for every operation.