Resolve the pool key by ABI family
First match the token’shook_address to tradeableDeployments from Capabilities. The resolution path depends on that deployment’s hookAbi:
The deprecated Ink hook does not implement
getLaunchPoolKey. Calling that selector on it reverts.
For a corrected hook:
tokenToLaunchId(token.address)equals the indexedlaunch_id.getLaunchState(launchId)is finalized and names the same token.- The currencies are exactly the launch token and its quote asset: native zero address for a native launch, wrapper address for an xStocks launch.
hooksequals the token’s original deployment, whilefeeis positive andtickSpacingis nonzero.keccak256(abi.encode(currency0, currency1, fee, tickSpacing, hooks))equals the 32-bytelaunch_id.- An indexed
pool_id, when present, equals that computed ID.
Current pool settings
The checked current deployments use:
Read these values from the pool key instead of treating this table as a permanent constant.
Trading
The InkyPump trade page changes route after bonding. Direct integrations swap through the chain’s V4 router with the returned pool key. Quote and simulate against the same block when possible, then apply a user-approved minimum output and deadline. The current Ink V4 addresses are published throughGET /api/capabilities?chainId=57073 under activeCreationDeployment.canonicalV4. Fetch them at runtime instead of copying router, quoter, or state-view addresses from an old page.
Fee allocation
The1000 pool tier charges a 0.1 percent LP fee. Current checked hooks also charge a 1 percent protocol fee and a 1 percent variable hook fee after bonding. The hook fee can be taken in the quote asset or launch token, depending on swap direction and exact-input or exact-output mode. Use the deployment’s quote output as the user’s net result instead of subtracting a flat percentage in the UI.
How the variable hook fee is allocated depends on the deployment. Current Ink uses holder fee sharing for the non-creator portion; older Ink uses buy-and-burn.
Liquidity and price
The bond transaction seeds the pool with the launch’s quote reserves and liquidity supply. Later liquidity positions can change depth and execution price. Read live pool state for quotes; do not infer executable output from a USD market-cap value.State checks
getLaunchState(launchId)tells you whether the launch finalized.- Corrected hooks expose
getLaunchPoolKey(launchId); legacy Ink uses the indexed immutable pool fields. LaunchFinalizedproves the bond transaction.- V4 state reads provide the current tick and liquidity.