An implementation proposal for the ANT-ANJ merger (no-lock)

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 0x000000000000000000000000000000000000dEaD.

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.

Uniswap/merkle-distributor

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

Summary

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.

2 Likes

I am strongly against this proposal as it will require putting trust in a centralized entity (Aragon Association and the community multisig) to operate the exchange (not only once, but on a recurring basis) when a smart contract could be built very easily and no trust would be required.

What is being proposed here is that ANJ holders will burn their tokens and then wait for someone to send the ANT once that new ANT has been minted, while in the meantime being exposed to price fluctuations. I have never seen any projects do something like this and for good reason. Swapping ANJ for ANT (either locking or not), should be atomic and handled by a smart contract, but by humans at the Association or the multisig.

On top of this, minting ANT is something very serious and the community multisig shouldn’t be used to mint arbitrary amounts at random times. A one time mint cannot occur since the total amount of ANT that needs to be minted is unknown at this time (it depends on the decisions of all ANJ holders), so in order for this program to continue indefinitely, the multisig will need to continue minting ANT depending on the amount of ANJ burned.

This also gets in the way and adds more complexity for ANT minting being controlled by the AN DAO soon in the future, as the DAO will need to continue passing proposals to give minted ANT to those converting ANJ. Smart contracts exist to remove humans where human judgement is not needed, precisely like in this case.

I just cannot understand how saving ‘1 month’ (in my profesional opinion, this contract could get done and audited in a few days) merits this bad proposal that goes against best practices in the space, common sense, and makes the long term more difficult.

3 Likes

Hey Jorge,

I agree with transitioning to the Aragon Network DAO minting capabilities ASAP, and I also agree that using a smart contract for constant minting – instead of batched – would be ideal. Do you think you can submit a proposal, together with smart contracts, by end of next week? That was the timeline we had in mind for ANJ holders to be able to start redeeming their ANT. We think it’s paramount for ANJ holders to redeem their ANT, since they have waited for too long.

Thanks

1 Like

Hey guys!

yes, we ANJ holders want to redeem our ANT, we do have waited too long… But, can’t you just roll back the lock-up of the ANJs and come back to the previous situation?

I mean, it’s obvious there were some technical difficulties, and now it appears there’s no team to drive this migration forward, and now @luis appears with a proposal that seems to be centralizing people’s funds in a party as the Aragon Association, that according to this ex-employee statement (and other 12 fellows) can’t be trusted anymore.

It’s imperative that you guys accept and acknowledge the mistakes you have done so far before moving forward. Please stop playing with people’s money, calm down, get your things together, make and present a solid plan to re-structure the Aragon organization and governance, and then, you can come back and kick some asses as you guys know how to do!

My best wishes to both of you are genuine and sincere, and I really hope what’s happening can teach you some humility, and that some times is just better that our plans are not delivered as we wanted as these could be hurting people in the way.

That’s inaccurate, the Community Multisig is the one who would receive a payload with all transactions burning ANJ, verify that the Merkle distributor is correctly set up and mint ANT to it.

Therefore there’s no trust in the Aragon Association whatsoever.

1 Like

The community Multisig AFAIK is a contract which signers where selected and defined before the ICO times. Have those signers being updated in all this time? Or is there a new one? Who are they now? Can we have an open statement from them about this proposal? (and maybe about yesterday’s workforce walkout as well?).

Thanks for the clarification, but at this point I wouldn’t know if the Community Multisig is still a trusted party.

Is a rollback technically possible @jorge ?

https://wiki.aragon.org/association/multisigs/community

A rollback, assuming you mean unpausing the bonding curve, probably wouldn’t be a good idea because that would mean that if people start exiting then the price will decrease well below the flat rate 0.015 that was voted on in the no-lockup merger proposal. It would also increase the complexity of this entire situation in my opinion. Since this has now become a priority for the Aragon Association, I think we should sit tight and wait for the smart contract (no-lockup as well as then subsequently the lockup proposal).

This is assuming, of course, that those who remain in Aragon now, still feel that the best path forward is a single token ecosystem.

well… at least that is fair behavior for failed coins as the ANJ is. Was cool that the team wanted to avoid this scenario when proposing to merge back the ANJ into ANTs… but if they can’t do it seamlessly and in a decentralized fashion… maybe better to avoid it, IDK, I probably trust more Jorge than myself on this matters as I’m not a technical person.

I agree with @sepu85 that a rollback would be the best option. I do not think it will decrease the value of ANJ. People sell their tokens because ANJ is technically obsolete right now. I am waiting for the merger contract to swap my ANJ as soon as possible. However, I would keep them if they decide to continue with ANJ as usual before the merger decision. And I think that in fact will increase the value of ANJ. @luis, pease do consider the rollback option by simply unpausing the bonding curve, which seems the fastest and best option in current circumstances.

Unpausing the bonding curve right now, though technically possible, is not a good idea given that the ANT backing the curve will effectively be used in the swap. Changes in the bonding curve ANT reserves right now would mess the total figure for ANT issuance that ANT holders approved.

I know this isn’t what some people want to hear given that this has been going for too long, but my recommendation would be to wait a little until a proper swap contract is developed and ANJ can be swapped to ANT without changing any more things.

3 Likes

if there are any counterproposals to the initial one put forward by @luis , I’d like to propose that these are submitted here prior to Tuesday 12th January 6pm UTC so that we can keep the ball rolling swiftly with the ANJ/ANT merger. We can then put legally compliant proposal submissions to an ANT holder vote.

Dear @luis and @jorge,

I seriously appreciate the different perspectives that you brought to this thread, I feel like your individual takes on the situation complement each other well, even if they may seem somewhat incompatible initially.

What do you guys think of perhaps doing this proposal posted by @luis as a short-term solution, and then having the smart contract suggested by @jorge come in as the longer-term solution?

The proposal @luis has outlined is a novel ceremony, of sorts, where taking part only makes sense if you trust Aragon to fulfil step #4.

This ceremony would somewhat unionise a base of the Aragon community. It is “Proof of Trust”, in Aragon, in a sense.

Therefore, if we take the route of carrying out what @luis has said as a short-term solution, and what @jorge has said as a long-term perspective, I feel that there should be another token minted which comes along in the Merkle distribution, 1:1 with the ANJ quantity burnt.

This token would, during distribution, represent a subset of the Aragon community which I think may very well be beneficial for the future of Aragon Protocol, potentially as a future hedge against a tragedy of the commons, or in case a single-token model ever ends up requiring backup, maybe someday there needs to be another voice in the room - though even if it is never required for anything, it would be a great souvenir to take out of this entire ordeal. I think it would overall be positive for the Aragon community and it would at least leave me feeling more fulfilled to still have a token to represent my belief in Aragon Court.

TL;DR:

I just thought I would put this out there, that there might not be any reason not to do both what @luis has suggested as well as what @jorge has suggested. With the addition of having a new token minted at a 1:1 rate for every ANJ token burnt, as it may come in handy in the future evolution and stages of Aragon’s decentralisation process. This also means that the smart contract + audit doesn’t need to be rushed, which is probably a good idea given the state of things.

1 Like

I like this idea of combining the approaches @revolution0x… do a 1 week long burn to 0xdead as a safety relief valve for ANJ token holders that want liquidity asap… while working on a trustless solution for the people who prefer that approach or aren’t paying attention. Then the Community multisig just does one mint and it’s done until a few smart contracts can be written and audited.

Whatever approach is taken, I am on the Community Multisig and I will do what I can to make sure that the ANT gets minted in a safe and timely manner, but I would like to request the AA and some ANJ token holders to step up to review the list of burned tokens for correctness before its minted.

3 Likes

Edit: I withdraw this proposal in favor of the @jorge version.

Following this discussion, I suggest an alternative approach for ANT-ANJ conversion. I’m ready to write a Solidity (0.6.12) smart contract with a simple front-end but will require an independent code audit handled by Aragon.

Step #1

A smart contract is written and audited for both conversions (next week).

Step #2

Multisig mints 1,929,682 ANT to this smart contract (total supply of ANJ * 0.015).

Step #3

Any ANJ holder can redeem those ANT for 0.015 rate or exchange to vANT by 0.044 rate.

Step #4

At 6 of October 2021 additional ANT is minted to cover vANT claims to that smart contract.

Step #5

All vANT holders will be able to exchange 1 vANT to 1 ANT, by unstaking from AP after 6 of October 2021.

vANT will be used as untradeable staking token on Aragon Protocol, when you stake ANT it’s automatically converted to vANT, unstaking converts vANT back to ANT

Pros

  • Decentralized and permissionless;
  • Exact amount of new ANT is minted as it’s needed.

Cons

  • 2 minting operations.

@luis @jorge what do you think about such an approach?

Great debate between @jorge and @luis , this is exactly what the decentralised governance process is all about. I agree with Jorge the solution ideal but also agree with Luis that speed should be prioritised given how long this process has been ongoing. If a better, smart contract based solution can be found that can be implemented in <2 weeks, I’m happy to do that. If not, I’d go with Luis’s solution. I think we can have a deadline for proposing alternative solutions sometime next week and then assess accordingly.

This is my favourite solution so far. Having spoken to @jorge offline, the main problem with this seems to be that Aragon Protocol only accepts ANT as its staking token, meaning those taking the higher conversion price would miss out on participating in AP.

It’s possible to solve this challenge if we use vANT as a wrapper token for staked ANT, so vANT will be an AP token. When the user stakes ANT to AP, under the hood it gets converted to vANT and those are staked to AP. When the user removes it’s stake from AP, that vANT are converted back to ANT.

vANT smart contract can have business logic that will block unstacking for ANJ converted vANT.

1 Like

Actually if vANT could be used in Aragon Protocol, this does seem like a great solution.

I also like @GriffGreen’s approach of using my proposal for the first minting, and then smart contracts as @jorge described for the rest. I do not have a strong opinion, it would be great to hear more about @jorge’s proposal.