On the way of pursuing a completely decentralized financial environment, the DeFi community has made tremendous progress by introducing elegant economic designs. I admire projects and individuals in the DeFi space and appreciate the architectures people built. I especially appreciate PlutusDefi’s bonding curve listing strategy and yearn.finance’s 5NO design (no founder’s allocation, no premise, no partnership allocation, no ICO, no advisor tokens), and it incentivized me to create bounce.finance. [Not as a job, but for fun. It is only an experiment so far.]
The idea of “swap” originated from Uniswap, and it provides infinite liquidity for participants. This is a great idea, but I think the opposite scenario should also be built. What if assets need to be swapped in a competitive environment? What if there is a limited supply of tokens? What if the swap should be somehow similar to an auction? I had experience conducting a token sale with different tranches in the past when there was no readily available DeFi infrastructure to provide market efficiency and transparency. I wish this was done at the time. Now I am here to disrupt it.
Swap or Get Bounced
A pool creator sets the following parameters:
- The number of tokens he wants to swap off
- The maximum amount of ETH he would accept to swap
- Duration of the pool
- Fixed price swap or dynamic price swap
After the pool creator creates the pool, people can come and use ETH to auction and get the tokens. A participant needs to send an ETH transaction to the pool’s address within the pool expiration time. A swap is successful if the accumulated ETH deposit in the pool is less or equal to the bounce level, which is the maximum amount of the ETH allowed to be received. Any additional ETH deposit when the accumulated ETH deposit is greater than the maximum ETH amount will be bounced off and sent back to the sender’s addresses. In simple words, there is a limited quantity of swap allocations in each pool and users need to compete with each other to get swap opportunities. When a pool goes live, a user can send ETH to the bounce pool. A transaction will be bounced back to the user if there is no longer allocation in the pool.
There are two ways a live pool will close:
- If within the time limit, accumulated ETH amount reaches the bounce level which is the maximum amount of ETH allowed. the pool will close and bounce off all additional transactions.
- If time runs out.
There are two types of bounce pools:
- fixed-ratio swap: the swap ratio between a pool creator’s tokens and ETH is fixed all the time. The user will receive swapped tokens once his ETH gets confirmed. If the accumulated ETH amount does not reach the bounce level when time runs out, the unswapped tokens will be sent back to the creator of the pool. In this type of pool, Users and pool creators will receive tokens right after the transaction gets confirmed and both parties do not need to wait until the pool closes.
- Dynamic ratio swap: The swapped ratio is based on the number of pool creators’ tokens and the amount of ETH in the pool. If the accumulated ETH amount does not reach the bounce level when time runs out, all pool creators’ tokens will be swapped to the accumulated ETH in the pool and no token will be given back to the creator. For example, a pool creator wants to swap 10 ABC tokens and sets the bounce level is 10 ETH, but there is only 5 ETH deposited into the pool during opening time, then the pool creator has to swap 10 ABC tokens for 5 ETH and users will receive A tokens with a better rate. Unlike the fixed-ratio pool, the dynamic ratio swap pool will send swapped tokens to creators and users after a pool is closed because the final rate is decided at the end.
At the current stage, it only allows pool creators to swap tokens into ETH. I am working hard to adding more options for bounce pools.
I hope my explanation makes sense. The platform will be live soon. Create a pool. Enjoy it.