Why Solana swaps compete for the same pool accounts
Solana swaps can compete for the same writable pool accounts, delaying execution and worsening price; routing, slippage limits and priority fees shape the trade-off.
By Web3 Hub Newsroom2 min read
Solana swaps that write to the same liquidity pool account cannot run in parallel, so competing trades may wait, land against changed prices or fail their slippage checks. The conflict is about shared on-chain accounts, not simply how many people are using Solana.
Why do Solana swaps contend for a pool?
Each Solana transaction declares the accounts it reads and writes, and the runtime uses those permissions to decide which transactions can run at once. Transactions that write to the same account conflict; transactions touching separate writable accounts can be processed in parallel.
A swap changes pool state, such as token reserves or concentrated-liquidity positions, and usually writes to token vault accounts too. When many swaps target one pool, they compete for those writable accounts. A transaction that executes later may face a different price than the one quoted when the wallet prepared it.
How do routes and pool design affect contention?
A direct route usually touches fewer pools than a multi-hop route, but it can still concentrate activity on one popular pool. A route through several pools may find a better quoted price, while requiring writes to more accounts and creating more places where the transaction can conflict.
Pool design affects which accounts trades need to update. Concentrated-liquidity pools track liquidity across price ranges, so a swap’s path through those ranges can affect which state accounts it accesses. For more on deposits and concentrated liquidity, see byreal.
That trade-off is why the lowest quoted price is not the only measure of a route. A wallet’s quote can change before execution, and a transaction may fail if the resulting price moves beyond the user’s slippage limit.
Can priority fees prevent a swap collision?
A priority fee can improve a transaction’s scheduling priority, but it does not reserve a pool account or guarantee execution first. Solana calculates the fee using the requested compute-unit limit and price, so asking for more compute than the transaction needs can increase the fee without resolving contention.
Solana’s fee documentation describes scheduling priority as a ranking among transactions. The practical effect is that fees can help a swap compete for processing, while the writable-account conflict and the pool’s changing state still determine whether the trade can complete at its limits.
What should a trader check before confirming?
For most swaps, the useful checks are the quoted output, slippage tolerance, route and priority fee. A tighter slippage limit protects the minimum acceptable output but makes a transaction more likely to fail during a fast move; a looser limit can allow a worse price.
- Check whether the route uses one pool or several, and compare the quoted output.
- Set a slippage limit that reflects the price movement you are willing to accept.
- Review the priority fee and avoid paying for an unnecessarily large compute limit.
- If a swap fails, check its transaction status before retrying; Solana charges transaction fees even when execution fails.
The takeaway is that pool contention is local to the accounts swaps share: a busy pool can slow or disrupt its own trades while unrelated pools remain available. Before confirming, compare the route and output; after a failed attempt, check the transaction status before sending another.