Proposal to Seed Liquidity for AMPL-SPOT Pair on Button Swap

TLDR: Use the FORTH DAO treasury to seed an AMPL-SPOT pool on ButtonSwap with 25,000 SPOT and 25,000 AMPL.

Dear FORTH DAO community,

My name is Matthew and I lead growth for Buttonwood. At Buttonwood, we’ve worked on a number of things to further the DeFi ecosystem. Today I’d like to present a proposal that aligns our shared goals: to increase the utility and liquidity of SPOT, and to support the early growth of Button Swap, a new AMM for rebasing assets.

DAOs generally have two big problems:

  1. How to diversify its treasury without putting downward pressure on its own token
  2. How to put its treasury assets to work and earn

Providing liquidity on Swap solves the latter as FORTH DAO would earn fees from swaps.

Ampleforth x Buttonwood

Although new to this forum, Buttonwood has been closely tied to and aligned with the Ampleforth team for years:

  • Our founder Manny Rincon-Cruz co-authored the Ampleforth whitepaper in 2019.

  • Ampleforth inspired Button Wrapper, a protocol that transforms any non-rebasing asset into a rebasing asset.

  • Our concept and whitepaper of a crypto-backed stablecoin, Button Stable, served as inspiration for SPOT.

  • SPOT is built on top of Buttonwood’s Tranche contracts.

  • AMPL was the first supported asset on Buttonwood’s zero-liquidation lending market.

  • Manny co-authored the SPOT whitepaper in 2022.

LPs Earn More on Button Swap vs. Other AMMs

Through our involvement with AMPL and rebasing assets, we found and created a better solution for AMPL liquidity providers (LPs).

On other automated market makers (AMMs), rebasing alters the marginal price. This creates a number of problems:

  • For positive rebases, existing AMMs think the asset is getting cheaper.
  • For negative rebases, more expensive.
  • As a result, traders arbitrage tokens from the pool that would otherwise be owned by LPs.

Button Swap’s Solution

Button Swap doesn’t solve every type of impermanent loss, but it does solve the one described above. The design is similar to Uniswap v2, but introduces a novel innovation, reservoirs:

  • Button Swap’s model includes both a liquidity pool and a “reservoir” for each asset.
  • Liquidity pools and reservoirs together form a “pair.”
  • Liquidity pools are the active liquidity that gives users the swap ratio between two unique tokens.
  • Reservoirs hold “excess” tokens, representing inactive liquidity (Note: at least one reservoir is always empty).

With Button Swap, new tokens flow to the reservoir, rather than liquidity pools. This allows the active pool to maintain the marginal price (1 AMPL = 1 SPOT):

Negative rebases follow the same logic. For a 10% negative rebase to AMPL, each pool would hold 90,000, and the reservoir for SPOT would hold 10,000 SPOT.

The net result of our design is more money for LPs. With Button Swap, additional token incentives become lucrative rewards, rather than compensating LPs for predictable losses.


To establish a strong start and incentivize early liquidity providers, we kindly propose that FORTH DAO seed initial liquidity for a new asset pair on Button Swap: AMPL-SPOT. We think a good starting point would be 25,000 AMPL and 25,000 SPOT.

  • We believe Button Swap has the best design for a AMPL-SPOT pool
  • The AMPL-SPOT pair does not exist anywhere else
  • The FORTH DAO already owns both of these assets, and will earn fees from this initiative

In addition to earning fees on treasury funds, seeding liquidity for the SPOT-AMPL pair is a strategic move that generates additional benefits, including:

  1. Enhanced Liquidity: A deep AMPL-SPOT pair will improve price stability and reduce slippage for traders.

  2. Mitigated Impermanent Loss: Button Swap’s unique mechanism to handle rebasing events will result in reduced losses for LPs. This feature should attract even more LPs to this pair, thereby further enhancing its depth and stability.

  3. Introduces New Market Opportunities: A successful AMPL-SPOT pair opens the door for additional rebasing pairs down the road. Pairs could be denominated in SPOT or AMPL. Button Swap can support two rebasing assets as well, so Lido stETH-AMPL would work nicely as well.

  • Note: Button Swap’s value proposition for rebasing assets also applies to reward-bearing assets. A Rocketpool rETH-AMPL or rETH-SPOT would be another example.

Moving forward

We invite all FORTH DAO members to explore this idea, ask questions, and express any concerns or suggestions you may have. The Buttonwood team looks forward to participating in a community discussion.

If this is passed and is successful, in the coming weeks we would like to 1) revisit adding more liquidity to this pair, 2) propose adding token incentives to attract more LPs, and 3) discuss adding support for additional pairs. I will look to start a snapshot vote after 1 week if there is community support for the initiative.


Rebalancing the Pool

Reservoirs can be rebalanced in two ways:

  1. Automatic rebalance: If there were two consecutive positive rebases, the reservoir for AMPL would continue to grow. However, if a negative rebase followed a positive rebase, then a portion of the excess tokens would flow into the active liquidity pool.
  2. Single-asset deposit: In the positive rebase example above, an LP could manually rebalance the pool by depositing up to 10,000 USDC. The tokens from the AMPL reservoir would then flow into the active liquidity pool. The same logic applies to the negative rebase example.


There are two types of redemption:

  1. LPs can withdraw liquidity and redeem (burn) for a proportional share of the pool and reservoir
  2. LPs can withdraw from just a single-asset reservoir, up to the total number of tokens in the reservoir.

Additional information can be found in our docs. We also outline Button Swap at a high level in a recent blog post.


Hey everyone, we’ve been cooking this for a little while now - excited to have reached the point we can share it!

The diagram in @mfisher’s post best explains how we avoid rebases triggering immediate price changes in DEX pairs, but if there’s any questions around the finer details I can help answer too.

1 Like

Ampl and Spot can really benefit from a pool, and button swap seems to be the best option for the pool, given its native support for rebasing tokens. I am in favor of this proposal.

1 Like

Just adding few thoughts to the proposal
In case of negative growth of the pool valuation - if someone is adding liquidity to the pool then if there is an incentive percentage wise Suppose the total value of initial LP is 25000 + 25000 as proposed considering 1:1 spot:ampl price for simplicity purpose now i add 5000 SPOT and 5000 AMPL to the pool and so i acquire 16.67 % of the total pool ie - ( 5000+5000) / (50000 + 10000) * 100

Now suppose ample rebase negative and pool value goes down like say from 30000 ampl it rebase to 25000 ampl and then 5000 spot goes to reservoir ( cumulative = 55000 ) Now someone comes in with a liquidity of additional 5000 + 5000 SPOT and AMPL He should get 10000/(55000+10000) *100 = 15.38% What if he gets a bonus percentage wise like the pool cumulative value is down from 60000 to 55000 means 8.33% down.

So when someone add 5000 ampl + 5000 spot instead of allocating 15.38% of the pool allocate an additional incentive of 8.33% to the 15.38% - that is 16.66 % The deeper the pool goes negative the higher the discount - so arbitragers or risk takers will come and buy the pool heavily in discount

Similarly when the pool value is higher then the newcomer should be having a loading fee - similar to the discount instead of discount there will be an similar decrease in the percentage of pool allocated to late comers. This will incentivise people to add liquidity early to the pool.

So this will always work like a winding up spring - as pool goes negative lots of people may re invest again into the pool or more people may add liquidity to the pool availing the discounts. The deeper the pool is negative the higher is the discount.

I support this proposal. How does Button Swap’s design differ from ElasticSwap’s design?

Assumed one of you would ask this. Might be more than you are asking for, but we wrote up the difference between the two and how the exploit that happened to them would not be possible with Button Swap:

The ElasticSwap exploit boils down to how they calculated the amount of liquidity tokens to give a user when they do a single-sided mint. (Note, in ES there was only one function for minting, and it would do single-sided mint until rebalanced and then dual-sided to make up the rest of the requested amount). Their calculations for single-sided mint use the ratio of the currently stored virtual balances for active liquidity (aka the price) to valuate tokens whilst determining how much of the user deposit needs to be used to match the discrepancy between virtual balance and actual balance that has been caused by rebasing. Unfortunately, there’s nothing to prevent an attacker from manipulating that price with a large trade and then minting far more liquidity tokens than their deposit is worth. Burning liquidity tokens then uses proportional redemption of actual token balances to pay out, meaning the exaggerated share of liquidity tokens the attacker minted can then immediately be used to extract the majority of all tokens deposited.

In contrast, ButtonSwap has a more robust architecture in general. Rather than storing virtual balances and iteratively updating them, it recalculates the active liquidity balances at the start of all relevant operations based on the current live token balances and the price of the last swap. This is simpler both conceptually and in terms of the actual code, greatly reducing the potential for accounting errors to be present. In addition to that, and crucially, Button Swap doesn’t use the live price to valuate tokens during single-sided operations. Single-sided token valuation is done using a TWAP (Time Weighted Average Price) to prevent exploiters from manipulating the price in an instant.

In addition to this, there are two further mechanisms. The first is a time-lock that triggers every swap, with its duration based on the price volatility induced by the swap. This further ensures that the current TWAP price is stable when using it for calculations. The second is a limit on how many tokens can be exchanged during a single-sided operation over a given time-frame, set to a fraction of the corresponding active liquidity. This serves to curb the volume of tokens being exchanged during single-sided operations rather than swapped in the normal manner, as it doesn’t make sense to price a larger market via a smaller one.


Hi gents, I am more than happy to support this proposal.

I would support this proposal. I’m curious to see the interest.

Signal vote is up now and will conclude on July 20th. Please cast your votes here: Snapshot

1 Like

plus 1 for the new logo

1 Like

Hey again everyone, on-chain vote is back after that hiccup before: Tally | Ampleforth Proposal
(As I understand it, the vote was cancelled because the proposer lost sufficient vote power after changing delegation)

1 Like