TLDR:
- This is proposed as an amendment/replacement to this previous passed proposal
- The challenge with the previous implementation is the complexity involved and risks when using a decentralized oracle (especially with long tail tokens). While possible, it seems a much simpler/cleaner/safer implementation is possible that will reduce:
- Value leakage
- Attack surface area
- Complexity
- The new method will, in brief, start with a price from CoinGecko, multiply it by 2 (starting price) and then reduce the price based on an exponential decay formula until a taker buys TKN with ETH.
Summary of Flow
This essentially creates a reverse auction where prices start above market price and gradually fall until TKN is purchased.
- Create Carbon POL contract
- Expose a public function to withdraw surplus tokens
- If the pool has trading liquidity of 0 & vault balance is greater than staking balance, anyone can call a function to move surplus TKN from B3 to the Carbon POL contract
- Callers get an incentive of 0.2% of the TKN to call the function
- 99.8% of the TKN goes to Carbon POL contract
- Determine the prices in ETH for each token
- Get price from Coingecko
- Multiply price by 2 to get initial sell price
- Contract offers to sell token at initial sell price for ETH
- For example, there are 100 TKN and oracle/CoinGecko price per TKN is 0.1 ETH.
- Initial price set at 0.2 ETH per TKN
- Any user can send 20 ETH to acquire the 100 TKN
- The price of TKN drops as defined by an exponential decay formula with a 10 day half life.
- Anyone can buy the TKN with ETH at any time.
- These parameters can be adjusted by the DAO
Note
- There is no more min return as this is no longer traded on a DEX
- This solves many of the risks noted above regarding oracle manipulation, slippage and some MEV attacks.
- These TKN are for sale only onchain, there is no UI for this (as there is no mechanism to slowly and programmatically decrease prices in Carbon).
- The contract will have a function to see the expected return price.
- The takers are expected to be arb bots or traders interested in buying tokens at a discount.
- As an additional layer of protection, this proposal sets a prerequisite that no tokens have their initial price set until the public open source arb bot supports this process and can be a taker.
- Of course the bot can only be a taker if there is liquidity on integrated exchanges on Ethereum.
For
Update to POL migration and conversion to ETH method as detailed above with arb bot support as a prerequisite.
Against
Take no action