Concentrated Liquidity Pools in ZetaChain v3: Mechanics, Usage, and Benefits
Apr 11, 2025
ZetaChain Team
Mechanics of v3 Concentrated Liquidity Pools
Concentrated Liquidity Basics
In a Uniswap v3-style concentrated liquidity pool, liquidity isn’t spread uniformly from price 0 to ∞ as in earlier AMMs. Instead, liquidity providers (LPs) choose a specific price range to allocate their capital. All individual LP positions (each with its own range) aggregate to form one combined pool that traders interact with. Within the chosen range, the LP’s funds are actively used for swaps; outside that range, their liquidity is “out of the market” (no fees earned) until the price moves back into their range.
Liquidity Provisioning & Ranges
When adding liquidity in v3, an LP deposits two assets but must also specify a price band. For example, an LP might concentrate liquidity in a narrow band around the current price (if they believe the price will stay in that range). A narrower range means the deposited assets provide more depth (greater capital efficiency) within that interval, which can yield higher fee earnings since traders get more liquidity to trade against. However, if the market price moves outside the LP’s set range, their position becomes inactive and stops earning fees. LPs can always widen their range up to “full range” (0 to ∞), which is equivalent to a Uniswap v2 pool position (lower efficiency but never out-of-range). This flexibility lets LPs balance risk vs. reward: narrow ranges concentrate fees but require active management, while wider ranges give passive exposure with steady (but smaller) fees.
Fee Structure
Uniswap v3 introduced multiple fee tiers per pool, allowing each trading pair to have a fee setting that reflects its volatility/risk (e.g. 0.01%, 0.05%, 0.3%, or 1%). ZetaChain’s concentrated liquidity pools adopt the same principle. A stablecoin pair on ZetaChain, for instance, might use a low fee tier (to encourage high-volume trading), whereas a more volatile pair (like ZETA vs a small-cap token) could use a higher fee tier to compensate LPs for impermanent loss risk. Traders pay the pool’s fee on each swap, which is then distributed pro-rata to LPs active in the price range where the trade occurred. Because liquidity is denser at the market price, slippage and price impact are reduced for traders, meaning even with similar fees, trade execution can be more favorable.
LP Benefits in v3
LPs gain granular control over how their assets are used. They can fine-tune their positions to maximize usage of their capital. For example, an LP on ZetaChain providing ZETA and ETH in a v3 pool could decide to confine their liquidity to a tight range around the current ZETA/ETH price. This means nearly all of their funds are constantly being used for swaps in that range, earning fees, rather than sitting idle across far-away price intervals. If the price stays in-range, the LP earns considerably more fees on a smaller investment than they would in a v2 pool. Additionally, LPs can use this mechanism to express market views or perform automated strategies — e.g. by setting a range entirely above the current price, an LP is effectively placing a limit sell order (they’ll hold one asset until the price rises into their range and swaps it for the other asset while earning fees). All LP positions are represented by NFTs (non-fungible tokens) rather than fungible LP tokens, because each position can have unique parameters. These NFT positions can be managed (increase, decrease liquidity or collected fees) individually by the LP. In summary, concentrated liquidity gives LPs more control, higher potential fee rewards, and the ability to tailor liquidity deployment to their strategy, at the cost of more active management to avoid being out-of-range.
Comparison to Gas Pools Used by the Protocol
Overview
ZetaChain’s gas pools (aka core pools) are a special category of liquidity pools used by the protocol to facilitate cross-chain transactions. Each gas pool is a ZETA / [Chain Gas Asset] pair deployed on ZetaChain’s network. For example, ZetaChain has pools like ZETA/ETH (for Ethereum), ZETA/MATIC (for Polygon), ZETA/BNB (for BNB Chain), etc. However, they are not used in every transaction type. For instance, when a call is successfully made from a connected chain to ZetaChain, these pools are not involved. Similarly, when initiating a call from ZetaChain, the user (or contract) must first approve the Gateway to use the gas ZRC‑20 token to pay for the outgoing transaction fees, so in that case the pools are bypassed. The gas pools come into play primarily in error recovery situations. For example, if a deposit-and-call transaction is initiated from Ethereum to ZetaChain and the call subsequently reverts, the protocol must execute a cross-chain transaction back to Ethereum. In this scenario, even though the deposited asset might be USDC, the gas fee on Ethereum must be paid in ETH. To handle this, the protocol uses the relevant gas pool to swap a fraction of USDC for ETH, ensuring that there are sufficient funds to cover the gas fees for the outbound transaction.
Mechanics & Functionality Differences
Importantly, the gas pools today use a Uniswap v2-style AMM model. Liquidity in these pools is distributed across the entire price range by default, and LPs who provide to these pools receive a standard ERC-20 LP token representing their share (as with Uniswap v2). There is no concept of per-LP custom price ranges in the current gas pool implementation. This is a deliberate choice for reliability: the protocol must always be able to swap some amount of ZETA for gas at the prevailing market rate to keep cross-chain transactions running. Using a uniform liquidity model ensures that at any price there is some liquidity available. If instead a concentrated (v3) model were used for gas pools, there’s a risk that if all LPs set narrow ranges and the price moved outside those ranges, the pool could momentarily have zero liquidity at the needed price, disrupting cross-chain operations. In practice, ZetaChain may encourage full-range positions for such critical pools if it ever introduces v3 mechanics to them, or it might keep them as v2 pools for simplicity and predictability.
Purpose and Use-Case
Gas pools are utility pools serving the protocol’s needs, whereas v3 concentrated liquidity pools are generally user-facing pools serving trading and liquidity provision needs. A gas pool’s role is to facilitate fee payment, not speculative trading — users don’t directly swap assets in these pools except when the protocol triggers a conversion or when arbitrage bots rebalance them. In contrast, the concentrated liquidity pools (e.g. a ZETA/ETH pool on a DEX like Sushi or AbstraDEX) are meant for open trading by users and dApps. The protocol’s usage of gas pools results in steady, small swaps (every cross-chain transfer may generate a swap for gas), whereas user trading can be larger and more sporadic.
LP Incentives and Returns
LPs can provide liquidity to gas pools and earn fees, but the dynamics differ from typical trading pools. The swap fees in gas pools come from cross-chain activity: as ZetaChain usage grows, these pools will see more volume and thus more fees to distribute. Arbitrageurs also interact with gas pools to maintain fair prices whenever the protocol’s gas conversions push the price slightly. The fee rate for gas pools is currently the default of the Uniswap v2 router (commonly 0.3% per swap) unless otherwise specified. By comparison, concentrated v3 pools often have tailored fee tiers as noted, and their volume comes from user swaps and liquidity routed by aggregators or dApps. LPs in concentrated pools are usually motivated by trading fees and possibly liquidity mining incentives from DEXes, whereas LPs in gas pools are essentially supporting the network’s infrastructure (while still earning swap fees in return).
Summary of Differences
In short, Gas Pools are about ensuring cross-chain functionality (ZetaChain converts ZETA to gas via these pools) and are currently implemented with a simpler AMM model for reliability. They exist for each chain’s native token and always involve ZETA. Concentrated (v3) Liquidity Pools, on the other hand, are about maximizing capital efficiency for trading and swaps. They allow custom price ranges and multiple fee tiers, and can exist for any token pair that users want to trade on ZetaChain’s network (not only gas assets). Gas pools serve the protocol’s internal needs, while v3 pools serve users’ and developers’ needs for efficient swaps. The two types complement each other: gas pools unify gas liquidity for cross-chain execution, and concentrated pools unify trading liquidity for user-facing swap markets.
How Developers Should Use v3 Pools for Their Own Swaps
Developers building on ZetaChain can leverage v3 liquidity pools to facilitate token swaps in their applications, taking advantage of the unified, omnichain environment. Here are some best practices and tools for using these pools in your dApps:
Use ZetaChain’s Swap Contracts for Cross-Chain Swaps
ZetaChain provides example contracts (and a Toolkit library) that demonstrate how to perform swaps using the chain’s liquidity pools. For instance, the official
Swap
Universal Contract can accept a token from a user on one chain, swap it via ZetaChain’s pools, and then send the output token to another chain (Swap – ZetaChain Docs). As a developer, you can reference this contract’s logic in your own omnichain dApp. It shows how to interact with the Uniswap router on ZetaChain (currently v2 router in examples) – e.g., splitting an incoming amount into a portion for gas fee swap and the remainder for the target asset swap. Adapting this to v3 pools would involve calling the appropriate v3 router or pool functions instead.
On-Chain Swap Integration (ZetaChain as a DEX hub)
If your use case is purely on ZetaChain (for example, you’re building a DeFi app on ZetaChain that needs token swaps), you can integrate with the concentrated liquidity pools just as you would on Ethereum or another EVM. That means using the Uniswap v3 contracts deployed on ZetaChain (or a DEX like Sushi v3 on ZetaChain). Typically, you’d use a Swap Router contract provided by the DEX to execute trades. You specify the pool (token pair and fee tier) and the amount, and the router will handle the swap against the concentrated liquidity pool. For a single-pool swap (Token A -> Token B in one pool), you can call a function like
exactInputSingle
on Uniswap v3’s router, providing it the desired amount, the pool fee, and slippage parameters. For multi-hop swaps (if needed), you’d useexactInput
with a path. All these functions are available in Uniswap v3’s periphery and have been deployed on ZetaChain by various DEXs. The integration is very similar to using Uniswap v3 on Ethereum – you can even use existing SDKs (like Uniswap’s SDK or Sushi’s SDK) by configuring them with ZetaChain’s chain ID and the addresses of the v3 factory/router on ZetaChain.
Leverage Existing DEX Infrastructure
ZetaChain’s ecosystem already includes DEXes that support concentrated liquidity. For example, SushiSwap v3 has been deployed on ZetaChain, allowing users to swap and provide concentrated liquidity via Sushi’s interface (Tutorial: Bridge assets, Swap and LP (v3) on Zetachain via Sushi | Sushi). As a developer, you don’t need to deploy your own AMM from scratch — you can route trades through these existing protocols. Many projects choose to integrate with these protocols at the contract or SDK level. Check if the DEX offers an integration guide or API. In many cases, you can call their smart contracts directly from your omnichain contract or backend. For instance, you might instruct users to deposit funds into ZetaChain (using ZetaChain’s bridge) and then call a swap on Sushi v3 pools programmatically. The ZetaHub and partner UIs already demonstrate how bridging + swapping can be combined into a smooth user flow — you can emulate a similar flow in your dApp by using ZetaChain’s messaging to sequence a bridge then a swap, all abstracted for the user.
Best Practices
Ensure you handle slippage and liquidity checks when using v3 pools. Because liquidity can be concentrated in ranges, large swaps might suffer price impact if the price moves to the edge of a big LP’s range. It’s good practice to query the pool’s state (price and liquidity depth) or use an off-chain SDK to simulate the swap beforehand. Set a reasonable slippage tolerance in your transactions. Also, consider using a DEX aggregator if multiple pools or DEXs could offer a better price for the swap — for example, if there’s both a Sushi v3 pool and an iZiSwap pool for the same pair on ZetaChain, an aggregator could split the trade. ZetaChain’s team has mentioned exploring DEX aggregators to ensure minimal cost to users (Core Liquidity Pools — ZetaChain Docs), which indicates that integrating an aggregator logic can benefit your users.
Developer Tools
Aside from ZetaChain’s own docs, you can refer to Uniswap v3’s documentation for low-level integration details (the mechanisms are the same on ZetaChain’s EVM). Uniswap’s docs and example code explain how to add liquidity positions (via the NonfungiblePositionManager) and how to perform swaps via the SwapRouter (Introducing Uniswap v3). You can also use block explorer (ZetaChain Blockscout) to find the addresses of existing pools and routers on ZetaChain Mainnet, or consult ZetaChain’s official Github for deployed contract addresses. The ZetaChain Developer Discord/Community is another great resource to ask for best practices when working with liquidity pools. In summary, developers should treat ZetaChain as a familiar EVM environment with the added bonus of omnichain capabilities — use the established v3 pool contracts for efficient swaps, and use ZetaChain’s cross-chain messaging to string those swaps into cross-chain transactions as needed.
Benefits for Users and Developers
For Users (Traders and Liquidity Providers)
Concentrated liquidity pools bring improvements to the trading experience on ZetaChain. Traders enjoy better prices and lower slippage on their swaps because liquidity is dense where it matters. Rather than spreading liquidity thin across all prices, v3 pools concentrate it around the current market price, resulting in a deeper pool for execution. This means a user swapping, say, USDC for ZETA on ZetaChain will get a more favorable rate (less of a price change for a given trade size) compared to a traditional v2 pool of the same total liquidity. In many cases, the efficiency is so high that trade execution can rival centralized exchanges or specialized stablecoin AMMs in terms of low slippage.
Users also benefit from more choice and flexibility. Since LPs can target specific ranges, liquidity tends to accumulate around popular price levels, supporting higher-volume trades there, and it can be provided even for relatively volatile or new token pairs without requiring enormous capital. Additionally, users who are liquidity providers gain more control. They can earn higher yields by focusing their liquidity where the demand is. For example, an LP providing to a ZETA/ETH pool on ZetaChain might keep their range tight during times of low volatility to earn higher fees, then widen it if volatility increases. They effectively have the option to behave like market makers, adjusting their “orders” as market conditions change, all while staying in the pool and earning fees. This level of control was not possible in earlier pool designs. If an LP prefers simplicity, they can still provide across a wide range (even the full range) to passively earn fees like a v2 pool — the key is that the choice is theirs. Overall, users see a “smooth experience” with efficient, seamless trading across multiple chains thanks to ZetaChain’s unified liquidity approach, and LPs are rewarded proportionally to the value they add.
For Developers
Developers building on ZetaChain benefit from these liquidity improvements in several ways. First, efficiency: higher capital efficiency in pools means your dApp can achieve the same liquidity depth with less total capital. This can lower the barrier to launch new markets or ensure your users get good prices even if liquidity is initially limited. It also means if you are incentivizing liquidity (through yield farming, for example), those incentives go further in concentrated pools because each dollar of liquidity is put to more effective use. Second, lower slippage and better execution lead to happier users of your application. If you build a cross-chain swap service or an omnichain DeFi protocol on ZetaChain, your users will notice that they get more of the output asset for a given input, compared to less efficient designs. This can be a key selling point for adopting ZetaChain’s pools. The ZetaChain team explicitly focuses on minimizing costs and slippage for end-users, so by using the recommended v3 pools or aggregator strategies, developers can align with that goal and deliver a superior UX.
Another major benefit is liquidity control and innovation. As a developer, you can tap into the concept of liquidity as code: since LP positions are NFTs with parameters, your smart contracts could programmatically manage liquidity (e.g., move ranges, or even create on-demand liquidity positions for particular events). This opens doors to advanced use cases like automated market-making strategies, dynamic fee adjustment, or implementing features like limit orders and stop-losses on top of AMMs. For instance, you could create a service that automatically narrows an LP’s range during certain hours of the day when volatility is low, and widens it during high volatility — effectively an automated liquidity manager. Such strategies give developers new tools to differentiate their DeFi products on ZetaChain.
Unified Liquidity Across Chains: Both users and devs benefit from ZetaChain’s overarching vision of unified liquidity. Because ZetaChain can natively manage assets from multiple chains, a single concentrated liquidity pool on ZetaChain can serve cross-chain swaps for many networks. Users don’t need to hunt for liquidity on each chain — liquidity accumulates on ZetaChain and is accessible universally. Developers, in turn, don’t have to fragment their liquidity mining programs or integrate multiple DEXs on different chains; they can build on one platform (ZetaChain) and reach multiple networks. This omnichain liquidity model means fewer hops for users (reducing complex bridge + swap sequences into one transaction) and potentially less total liquidity required to support a wide range of cross-chain trades. It’s easier to maintain and secure one deep pool than many shallow ones on each chain.
In summary, concentrated liquidity pools in ZetaChain v3 offer greater efficiency, lower slippage, and more control. Users get better trade outcomes and more ways to earn on their assets, and developers can deliver powerful cross-chain DeFi experiences without compromising on liquidity or user experience. For more details and technical guidance, you can refer to ZetaChain’s official documentation on liquidity pools and the Swap contract (for cross-chain swap logic), as well as Uniswap v3’s documentation for the general mechanics.
Sources:
ZetaChain Documentation — Core Pools (Gas Pools) Overview (Core Liquidity Pools — ZetaChain Docs) (Core Liquidity Pools — ZetaChain Docs)
ZetaChain Docs — Cross-Chain Swap Tutorial (Swap contract usage) (Swap — ZetaChain Docs) (Swap — ZetaChain Docs)
Uniswap v3 Documentation — Concentrated Liquidity Concept (Concentrated Liquidity | Uniswap) (Concentrated Liquidity | Uniswap)
Uniswap v3 Announcement — Capital Efficiency and Low Slippage (Introducing Uniswap v3) (Introducing Uniswap v3)
Sushi Academy Tutorial — Adding v3 Liquidity on ZetaChain (illustrating LP range selection) (Tutorial: Bridge assets, Swap and LP (v3) on Zetachain via Sushi | Sushi)
ZetaChain Ecosystem Page — AbstraDEX (Concentrated Liquidity DEX on ZetaChain)
Categories
Related Posts
ZetaChain’s New Revert Handling for Cross-Chain
ZetaChain’s new onAbort mechanism prevents stuck assets in cross-chain transactions. With onRevert for rollbacks and onAbort as a failsafe, every transaction is either executed or accounted for — ensuring seamless failure recovery without manual intervention.
Introduction to Universal Apps on ZetaChain
ZetaChain is an EVM-compatible blockchain with built-in cross-chain interoperability. A smart contract deployed on ZetaChain can handle incoming contract calls from any connected blockchain like Ethereum, Base, Polygon, BNB, Solana and Bitcoin.