Limit Pools: Native Limit Orders for AMMs

Today, Poolshark Labs is excited to release Limit Pools, a new way to take one-sided risk on your favorite assets.

The team for Poolshark is also making the source code for Limit Pools available to the public in celebration of this critical milestone.

To couple with this, we are excited to share the audit we concluded with Guardian Audits last month in auditing the Limit Pool contracts.

Let’s dive in! 🤿

Moving from Bidirectional → Directional

Liquidity providers to date have been limited to bidirectional liquidity, which helps bootstrap liquidity for trading pairs and enable swaps. For traders trying to use double-sided liquidity to simulate limit orders, this has led to trade reversal and failed transactions.

Directional AMMs (DAMMs), being introduced with the launch of Poolshark Protocol on both Arbitrum and Scroll, allow more advanced traders to have the familiar limit order experience whilst being able to specify a price range.

Directional (Poolshark) vs. Bidirectional (Curve, Uniswap, etc.) AMMs
Directional (Poolshark) vs. Bidirectional (Curve, Uniswap, etc.) AMMs

In vanilla CFMMs (constant function market markers), LPs are compensated with trading fees and a receipt token for their provided capital. These LPs facilitate bidirectional trading, meaning users in an ETH-DAI pool would be able to trade both ETH → DAI and DAI → ETH.

When the market price of ETH or DAI moves too far in one direction, liquidity providers can incur opportunity cost commonly referred to as IL (Impermanent Loss) or LVR (Loss Versus Rebalancing).

Improved Trading Experience for AMMs

With DAMMs, LPs harvest volatility instead of fees. Each LP position facilitates trading in a single direction, which could be ETH → DAI or DAI → ETH. In this way, the trader takes one-sided risk and is more easily able to get the price they desire.

Poolshark also introduces the concept of Limit Swaps, which behave like a normal swap when the price matches the trader’s expected price. When there is not enough liquidity at the trader’s expected price, a Limit LP will be minted and filled as the pool price crosses the trader’s chosen price or price range.

In the next set of images, we will take a look at the market swaps of today’s AMMs, providing variable execution, and the limit swaps offered on Poolshark which result in fixed execution for the trader, preventing MEV/front-running from affecting the trader’s execution price.

Solving the Dilemma of LVR

From Day 1, Poolshark will have a dynamic fee system for LPs similar to the proposed solution from Alex Nezlobin. This solution increases the fees paid to liquidity providers the further the price is moved away from a manipulation-resistant reference price. Based on sample data, this can cut the losses of LPs to arbitrageurs by 95%.

Market Swaps vs. Limit Swaps

In trading, a market order involves a trade executing at the current price, and a limit order involves a trade executing at an exact price specified by the trader.

In using the terms “market swap” and “limit swap”, we apply the same thought process: market = current price (variable); limit = exact price (fixed).

Market Swaps = Variable Execution; Limit Swaps = Fixed Execution
Market Swaps = Variable Execution; Limit Swaps = Fixed Execution

1. Quote

In this first image, Alice is quoted an ETH amount in exchange for her DAI.

Take note of her Expected Price as this will be the critical difference here.

Alice is quoted a trade price from off-chain.
Alice is quoted a trade price from off-chain.

2. Front-Run

In image number two, another party is able to see Alice’s trade and decides to move the price on her based on her slippage tolerance.

From here, we can see the execution difference between Market and Limit Swaps.

Alice's trade is front-run and the pool price changes on her.
Alice's trade is front-run and the pool price changes on her.

3a. Market Swap

With today’s market swaps on classic AMM venues, users are forced into doing market swaps.

The trader will take the current price up to their slippage tolerance, beyond which the transaction will fail if exceeded.

In the below image, the miner adds liquidity so that Alice’s trade executes within her set price limit.

4a. Variable Execution

Because Alice was able to have her swap execute within her price limit, her actual price is quite different from her expected price prior to the trade.

On today’s centralized stock exchanges, this would be expected behavior as Alice takes the current price whenever her trade is executed.

3b. Limit Swap

With a limit swap, Alice will create a Limit LP at the price range she expected for her trade: 2000 → 2010 DAI per ETH.

4b. Fixed Execution

Because Alice was able to create a Limit LP at an exact price, her execution is “fixed”, meaning at exact price or better.

Bottom Line: Alice was able to have better execution using a Limit Swap instead of a Market Swap.

Beta-2 Participation

Users who would like to participate in our beta-2 should keep an eye out on our landing page.

We will announce a go-live date on our Twitter handle, after which you will have 48 hours to sign up for the beta and have your participation recorded for all time.

Beta-2 will have some noticable feature improvements, namely:

• Improved User Interface 📱

• First Look at Limit Swaps 💰

• …and More!

A sneak preview of the Limit Swap UI
A sneak preview of the Limit Swap UI

To avoid fragmentation of liquidity, our first official launch will be on Arbitrum Mainnet in the coming weeks.

Join us in our Community Discord to stay up-to-date with all the latest alpha and chat with us.

We can’t thank everyone enough for all the support we’ve been receiving from DeFi enthusiasts around the globe.

If you plan to attend ETHLisbon or ETHIstanbul, our team will be attending both of these events and we hope to see you there! Please don’t hesitate to contact us.

The Secret to Limit Pools

The means by which Alice will be able to claim her position will be through the process of passing a ‘Claim Tick’ to the contract.

This ‘Claim Tick’ should have been crossed since Alice created her position.Therefore, we use an epoch system to determine the last time a tick has been crossed.

This is the secret to the gas efficiency of Limit Pools in being able to known process for filling Limit LPs when they claim their position. For full details regarding this mechanism design, you can read the Poolshark whitepaper in its entirety.


To wrap things up, this was a huge release for us and several months worth of work wrapped up into one post.

There’s so much more that wasn’t covered in this article regarding Poolshark and we hope to be able to share more in the coming months.

Your support means everything and we hope to see you out in the waters!

- Poolshark Team🌊🦈

Subscribe to Poolshark Protocol
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
This entry has been permanently stored onchain and signed by its creator.