Idea Summary: For the purposes of this submission, I will refer to fixed supply AMPL as fAMPL.
Currently there exists no derivatives product for AMPL other than the FTX AMPL-PERP, which is settled in USD, not AMPL.
On top of this, even though AMPL is rank #84 on CMC, outside of trading on a dex, it is only listed on FTX, Bitfinex, Hotbit, Gateio, MXC, and XT. Along with that, it is not possible to trade AMPL on such exchanges during the time of rebase.
The reason for this is that it is very difficult/cumbersome for people to interact with AMPL off chain, as it rebases. Along with this, Dervivative DEX protocols which specify fixed amounts of coins to be settled or transferred do not work with AMPL.
fAMPL is ampleforth with a fixed supply, that is, during a rebase, 1 fAMPL will still be worth what 1fAMPL was worth beforehand.
I have a mock draft of how such a smart contract would function. It is easier to explain while having numbers to look at. Assuming that fAMPL & AMPL are both 0 decimal coin (as decimals don’t really exist for erc20s), and the circulating supply of AMPL is 1,000
One would then call the fAMPL smart contract with the function to fix, for instance, to fix 100 AMPL, one would call: fix_ampl(100)
The contract now has 100 AMPL. Within the contract is stored a number I will call the divisor. This number is initiated at smart contract creation and never changes. For now, let us say that the divisor is equal to 1e18.
The user will then receive amount*(total ampl supply)/divisor, or in this case, 100*1e18/1000, or 1e17 fAMPL. Of course one must ensure that precision is maintained when doing the math in solidity. I believe, given the 256bit integer limit, that the supply of AMPL will never increase to a certain point where fAMPL total supply will overflow.
Now let us say a rebase happens, and the current circulating supply of AMPL is now 2,000. The contract will now have 200 AMPL within it. The user can then call a function such as unfix_fampl(1e17), remembering that the user received 1e17 fAMPL. The user will then receive amount*divisor/(total ampl supply), or 1e17*2000/1e18 = 200AMPL.
fAMPL, as you can see, gives one exposure to the market cap of the coin. This allows for 24/7 trading, along with the potential for products like futures and options for AMPL, since 1 fAMPL is always equal to marketcap/supply of AMPL. This should make exchange listings much easier, and allows AMPL to easily integrate into currently existing DeFi platforms, as they will not need to change any code in order to incorporate AMPL into their ecosystem.
I see this as a way to not only increase accessibility to AMPL, but also lead to at least being able to get AMPL on some lending platforms in the shorter term.
Budget/Cost: I am not really sure what the cost of this project would be.
I have currently developed a very basic prototype of the contract and would love to work with people on it. I would not mind developing the contract for free.
fAMPL is an interesting idea. Can you more clearly explain the mechanics of how users’ Amples are:
- Deposited into the contract? It appears that users’ Amples are swapped for fAMPL. Is it a 1 to 1 swap?
- Withdrawn from the contract? Amples are still in the contract and are subject to rebases. What happens during negative rebases and positive rebases? It’s not clear what happens to their Ampl balance in these cases. Are the rebases just ignored? Is there a benefit to holding fAMPL during negative rebases? The math needs a clearer explanation, such as: during positive rebases [this happens].
- What is the strategy for engaging with DeFi protocols to have fAMPL listed as a borrowing / lending / listing product? Is there a marketing strategy? How would this impact efforts to have Ample itself integrated into exchanges, lending platforms, etc.? Does it help to expand the ecosystem for Ample itself?
- This appears very similar to mbBased, a product that the BASED team created with a very similar function: allow BASED to be utilized in exchanges, etc. According to the BASED team:
“You deposit your $BASED into Moonbase and in return, you get mbBASED. mbBASED is a standard ERC-20 token that represents your share of TVL in the Moonbase. All of the complexities of rebasing are handled within the Moonbase, so this provides a new layer of composability for the $BASED token itself.”
So, given this, an ecosystem would have to be developed around fAMPL, which may divert resources away from our core mission of driving use cases for AMPL itself. Can you comment on this issue?