SpookySwap swaps fit an integration that needs an immediate token exchange; liquidity suits one willing to hold two assets and manage price exposure; farming suits an eligible position seeking extra rewards. Decide from executable output, active depth, fees, gas and reward terms on the chosen chain.
Which activity fits the integration?
Choose the activity by what your application must deliver to its user: an exchanged token, a share of trading fees, or an incentive on an existing liquidity position. These are distinct contract interactions with distinct assets to track.
- Swap: exchange one token for another against pool liquidity.
- V2 liquidity: deposit a token pair into a full-range pool and hold fungible LP tokens.
- V3 liquidity: set a price range and fee tier, then hold a position NFT.
- V3 farm: stake an eligible position NFT for a specified reward program.
- BOO staking: deposit BOO and receive xBOO, a separate staking receipt.
Swap. A trade consumes available liquidity and returns the output token in one transaction, subject to its minimum-output condition. SpookySwap on Fantom and its Sonic deployment draw on liquidity on their respective chains. When a user already holds an input token there and needs to exchange it, spookyswaps.app lets them swap tokens in that ecosystem; your integration should still select the chain and verify the resulting transaction.
V2 liquidity. A V2 pool follows the constant-product model, with reserves spanning the price curve and LP tokens representing a proportional claim. I would choose it when the relevant pair has useful V2 trading volume and the application cannot maintain V3 price ranges; the LP still takes inventory risk as trades change the pool’s token balances.
V3 liquidity. A position specifies a pair, one of the pool’s fee tiers, and lower and upper price ticks. Capital works harder near the chosen price, but a position outside its range stops earning swap fees and ends up holding one asset. Its NFT identifies a particular position, so an integrator must track that token ID and its uncollected fees, which are not automatically reinvested.
V3 farm. SpookySwap BOO farming requires more than owning a token pair: the position NFT must match an active farm’s pool and fee tier, then be staked. Check the reward token, remaining incentive period and withdrawal terms before projecting yield; community-created farms can reward tokens other than BOO.
BOO staking. Depositing BOO for xBOO gives exposure to the staking pool’s changing BOO-per-xBOO ratio, rather than a share of a trading pair. Treat that ratio and any separate xBOO partner-pool reward as different accounting items. It does not substitute for providing liquidity to earn a pair’s swap fees.
How do chain and pool choices change the result?
The chain determines which contracts, token balances, gas asset and pool liquidity an integration can use. Sonic is a separate network from Fantom, with chain ID 146 and S for gas; a token balance on Fantom does not become spendable on Sonic because the token has the same symbol. Read the wallet’s chain ID and token contract addresses before constructing a route.
Within a chain, compare V2 and V3 pools for the actual trade size, including any intermediate hops. SpookySwap V3 documents fee tiers of 0.01%, 0.05%, 0.30% and 1%; the pair can have several pools at once. A low fee is useful only if active liquidity near the current price keeps price impact low.
For example, suppose a $1,000 input faces a 0.05% pool fee and 1.2% price impact: the approximate output value is $1,000 × 0.9995 × 0.988, or $987.51. A deeper 0.30% pool with 0.2% impact gives $1,000 × 0.997 × 0.998, or $995.01 before gas. Use live quotes to make this comparison; the figures here are illustrative, and a quoted output already includes the pool fee and price impact.
A multi-hop route can improve output by accessing deeper pools, but each hop adds its own fee and execution surface. Quote candidates against the same block state and input amount, then recheck near submission. A pool’s total value locked is a poor substitute for active V3 depth: liquidity placed far outside the current ticks cannot fill the present trade.
What must a swap integration enforce?
A swap integration must bind the user’s intent to a chain, token contracts, input amount, recipient, minimum output and deadline. Resolve token identity by contract address, including decimals, rather than symbol; a permissionless pool can contain a lookalike token. Keep router and approval targets tied to the selected deployment.
For an exact-input swap, derive minimum output from the current quote and an explicit slippage tolerance: at a quoted 500 output tokens and 0.5% tolerance, the floor is 497.5 tokens. That tolerance covers movement after quoting; it does not erase price impact already embedded in the quote. If execution falls below the floor or passes the deadline, the trade reverts and gas may still be spent.
An ERC-20 input may need an allowance transaction before the swap. Check the allowance for the actual spender and amount, account for approval confirmation, then refresh the quote before submitting the trade. A route that changes during this interval can fail even though the earlier quote was valid.
For contract integrations, simulate against the current state and inspect the receipt and balance changes after execution. Handle tokens with transfer taxes or unusual transfer behavior explicitly: a router’s assumed input can differ from what the pool receives. Likewise, do not feed a pool’s instantaneous spot price straight into a lending or collateral decision; one trade can move it within the transaction.
When do liquidity fees and farm rewards justify the exposure?
Liquidity is worthwhile when expected fee income and any incentives compensate for inventory changes, inactive time and maintenance costs. Estimate fees from trading volume through the position’s active ticks, multiplied by its share of active liquidity and adjusted for any protocol fee. A displayed annual rate based on recent volume is a scenario, not a payable rate.
Suppose a pool trades $500,000 in a day at a 0.30% tier and your position supplies 1% of the active liquidity throughout those trades. Its gross fee estimate is $500,000 × 0.003 × 0.01, or $15 for that day, before a possible protocol share. If price exits your range halfway through, volume after the exit earns that position no swap fees.
Then compare the position’s ending token amounts with simply holding the deposited assets. A narrow range can earn a larger share of fees while active, yet crosses its bounds sooner and may require gas, swaps and new deposits to rebalance. For an application that cannot monitor and act on range exits, I would start with a wider range or a liquid V2 pool, provided its measured fee income supports the choice.
Add a farm only after confirming the NFT’s eligibility and the incentive’s remaining duration. Model rewards in the token actually distributed, using its current value separately from pool fees; BOO emissions can change, and a high displayed reward rate can shrink as more liquidity is staked. Include the transactions needed to stake, claim and withdraw in the net return.
Questions that follow
Does a user need BOO to swap?
No. A swap needs the input asset, any required token allowance and enough of the chain’s native asset for gas; BOO is not the gas token. On Sonic, gas is paid in S. BOO matters if the user chooses a BOO-denominated position, a BOO reward program or BOO staking, so keep those flows separate in the application’s balance checks.
Can an old Fantom position be used on Sonic?
No. Fantom LP tokens and position NFTs refer to Fantom contracts and liquidity; Sonic has separate deployments. Moving assets between chains is a separate operation with its own conditions, and an old migration instruction should not be treated as proof that a route remains available. Check the current route before planning a withdrawal, transfer and new deposit.
Choose a swap for immediate output, liquidity for fee income you can manage, and a farm only when its verified incremental reward outweighs the added commitment.