[APPROVED] [PROPOSAL #6] Update the airdrop contract to facilitate NTRN delivery to cosmos hub

Creating this post to enable the discussion of Proposal 6.


The terms of the security agreement between Neutron and the Cosmos Hub, defined in Prop 792, include the transfer of unclaimed tokens from the NTRN airdrop to the Cosmos Hub.

To ensure the successful and trustless delivery of tokens to the Cosmos Hub, a simple upgrade to the airdrop contract is recommended.

If approved, this proposal will upgrade the contracts as follows:

  1. Make the withdraw method permissioned and triggerable by the Neutron DAO or the recipient address (which is currently set to the AADAO multisig). This is to ensure that the withdrawal is only triggered once the right set of contracts is available and set as the recipient.
  2. Add a message that enables the current recipient address (AADAO) to update the recipient address. This will be used to update the withdrawal address to the transfer contracts once deployed.

Full description

The terms of the security agreement between Neutron and the Cosmos Hub, defined in Prop 792, mention that airdrop “tokens left unclaimed after three months, if any, will be sent to the Cosmos Hub.”

At genesis, to ensure tokens could only be withdrawn to a Cosmos-Hub aligned account, the withdrawal address for the unclaimed airdrop tokens was set to the ATOM Accelerator DAO’s multisig address.

Delivering the NTRN to the Cosmos Hub can be achieved in a number of ways:

  • Ownership only: The tokens could be sent to the Cosmos Hub community pool. Since the community pool can only be funded via a special message on the Hub, automating the transfer would require a special smart contract to control an Interchain Account on the Hub. This contract is currently being developed by Hadron Labs.
  • Ownership + Voting Power: The tokens could be sent to a DAO contract owned by Cosmos Hub governance. This would allow the Cosmos Hub to not only own the tokens, but also wield significant voting power in Neutron governance. These contracts are also being developed by Hadron Labs and Timewave, but may require enabling the ICA-controller and/or express proposals functionality on the Cosmos Hub to fully function.

Deciding which solution should be implemented should be done by Cosmos Hub governance, and a proposal detailing options is expected to be shared on forum.cosmos.network shortly.

In the meantime, the existing airdrop contract should be upgraded to ensure the tokens are only transferred once the Cosmos-Hub-sanctioned set of contract has been implemented, to minimize operational risk and ensure successful delivery.

Therefore, while the contracts are being worked on, we propose to update the airdrop contract to make the method to trigger withdrawal permissioned.

This would only allow the Neutron DAO and/or the ATOM Accelerator DAO multisig on Neutron to trigger the withdrawal of unclaimed airdrop tokens to the recipient address. This measure is recommended to ensure the withdrawal is not triggered prematurely, which could otherwise create additional technical and operational overhead.

Furthermore, this proposal adds a method to the airdrop contract to enable the current recipient (e.g. AADAO) to update the recipient address. Once Cosmos-Hub sanctioned transfer/governance contracts have been deployed, the AADAO would use this method to make the transfer/governance contracts the recipient for the tokens. The withdrawal to the transfer/governance contracts would then be triggered, delivering the tokens to the Cosmos Hub.

How to check the proposal’s correctness

The proposal consists of a single migrate message with the changes described above. These changes are reflected in the following diff: Comparing v0.4.4...v0.4.5 · neutron-org/neutron-tge-contracts · GitHub

How to verify the binary:

$ git clone https://github.com/neutron-org/neutron-tge-contracts.git
$ cd neutron-tge-contracts
$ git checkout v0.4.5
$ make build
$ shasum -a 256 artifacts/cw20_merkle_airdrop.wasm

bc386865a32e3817513866704911e90215d9875f7aeb893280a70735c71434fe  artifacts/cw20_merkle_airdrop.wasm

bc386865a32e3817513866704911e90215d9875f7aeb893280a70735c71434fe is the hash of the Airdrop contract binary you’ve built on your machine.

To verify that the migration will happen to the proper binary you should get a hash of the deployed contract by its code id (you can see a new_code_id in the message to be executed below):

$ neutrond q wasm code-info 196 --node https://rpc-kralum.neutron-1.neutron.org:443 --output json | jq ".data_hash"


If hashes are equal (case insensitive), that means the deployed binary is correct and contains all the changes above.

Governance Votes

The following items summarise the voting options and their significance for this proposal:

YES - You agree to update the airdrop contract to add permission for the clawback function, and enable the recipient to update the recipient address.

NO - You disagree to update the airdrop contract to add permission for the clawback function, and enable the recipient to update the recipient address. You understand that this may lead to the premature transfer of the tokens to the AADAO multisig on Neutron.

ABSTAIN - You wish to contribute to quorum but you formally decline to vote either for or against the proposal.