EDIT: This proposal sparked the interest from different community members who have sent or are working on proposals for this merge. Seeing the great community response, I would like to withdraw my proposal in favor of those with continuous (non-batched) minting, if we can arrive to an implementation in a timely manner. If that doesn’t seem feasible, I will put forward my proposal again, which can be implemented in a matter of days.
Due to multiple issues, the ANT-ANJ merger hasn’t happened in a timely manner. We understand ANJ holders would like to proceed with the merge as fast as possible, and so I wanted to make a proposal to kick off the first part of the merger, enabling ANJ holders to redeem unlocked ANT at 0.0015 ANJ per ANT.
Step #1: ANJ holders signal their intent to redeem ANT at 0.015 ANT per ANJ
ANJ holders who want to redeem their ANT at that rate should just send the ANJ they want redeemed to
Step #2: Going through burn transactions to determine ANT balances
In this second step, we run a script to collect all the addresses and ANJ they have burned.
Then we would calculate the corresponding balances to be redeemed in ANT, which would just be
(burned ANJ balance) * 0.0015
Step #3: Deploy Merkle distributor
Merkle root-based distribution was recently used by Uniswap as a way to reward its early adopters.
As it has been extremely battle-tested, we could use Uniswap’s Merkle distributor as-is.
We would deploy the distributor with the corresponding balances calculated in the previous step.
Step #4: Deposit ANT in the distributor contract
For the Merkle distributor to work, it obviously needs ANT.
We would propose a vote to the Community Multisig to mint the needed ANT and send it directly to the distributor contract. The amount would be exactly what the distributor contract would need, which would be the total ANT that corresponds to the burned ANJ.
Users would then be able to claim their ANT by pulling it from the contract.
Step #5: Repeat steps 1 through 4
This mechanism is very simple, but has one caveat: it needs to be repeated, since each time we would need to run through the burnt ANJ, construct the database with amounts to be redeemed and deploy the Merkle distributor smart contract. The part which has some friction is obviously that the Community Multisig needs to be bothered each time, which should be minimized as much as possible. Because of that, we would run it in batches:
- First batch lasts one week, so ANJ holders that burn their tokens within the first week get included here
- Second batch lasts one month after the first batch ends
- Third batch lasts three months after the second batch ends
- Fourth batch is last call, and lasts one year after the third batch ends
This implementation would comfort ANJ holders, since they would be able to redeem their ANT very soon. This implementation is simple because:
- We don’t need to create and audit new smart contracts (saving approximately 1 month)
- We just need a very tiny frontend for claiming the tokens from the distributor contract, but we can reuse Uniswap’s code for it
- The main component is a script that scans the Ethereum blockchain for burned ANJ, and that is very trivial
We’d welcome community feedback on this possible path forward before formally proposing it to the Community Multisig. Feel free to chime in here or in Discord!
Next steps for ANT with one-year lock up
Redeeming ANJ in exchange for ANT to be locked up for one year is a bit more complex, since it involves having Aragon Protocol deployed as a dependency. The rate for those who want to redeem their ANJ for ANT locked up into Aragon Protocol for one year would be 0.044 — approximately triple of the rate without lock up.
We are working on it and will release a timeline during next week. In the meantime, we want to reassure ANJ holders that our proposal will keep in mind the delays, and set the locking start date to when the bonding curve was paused by the Aragon Network council on October 5th.