Autocompounding $TORN Vault for governance staking

Hello everyone!

The main purpose of this post is to receive feedback from the community regarding the $TORN auto compounding Vault. Our goal is to make sure the $TORN vault is aligned with the community’s needs and requests.

I am Vasily from PowerPool - a DAO developing structured Defi products built on top of an on-chain automation network.

Recently I and several other PowerPool DAO members [we are TORN holders and users] saw an opportunity to generate more income from TORN staking via automated harvesting and re-investing to compound staking rewards. We collected on-chain data and built a Python model for different harvesting strategies and learned that during the last two months, TORN stakers could have generated 17% more income if their deposits were auto-compounded in an optimal way.

This is why PowerPool developed, audited, and deployed the TORN Vault to mainnet, It has been audited by Pessimistic.

Current tech specification: upgradable contract controlled by PowerPool DAO multi-sig with auto compounding strategy powered by PowerAgent - our DAO-powered on-chain automation network.

Several members of the $TORN community suggested changing the architecture: (1) making it non-upgradable (2) removing the automation network and allowing any user to call the contract for harvest/re-stake, and (3) implementing a voting option.

In our opinion, these suggestions are useful and allow the $TORN Vault to become more decentralized and robust.

Here are the tech specification updates that we propose after having discussions with $TORN community members:

  1. Non-upgradable contract. No third party that controls/could do something.
  2. Once per 24 hours, any deposit or withdrawal of TORN tokens from the Vault initiates harvest/re-stake for all Vault LPs. Spent gas is compensated in $TORN tokens (according to the current TORN/ETH exchange rate + 10% premium). Gas is compensated according to Chainlink fastgas magnitude.
  3. Reinvested $TORN rewards have 6hr lock-up period. This means that if somebody exits the Vault (withdraws $TORN tokens) within 6hrs after the latest harvest/re-stake, they would not be able to withdraw their newly-compounded token.
  4. All governance rights belong to TORN LPs. Since the contract can only vote with all TORN tokens at once, $TORN LPs should decide how they want to vote before the next voting period. For this purpose, we propose a simple on-chain governance system forked from Compound.

In conclusion, the changes that we are proposing would make the contract non-upgradable and nobody could have an access to users’ funds, users execute everything themselves without any third party, and governance rights belong to $TORN LPs. The fee associated with this product is a topic for discussion, I propose to make it as low as 1-2% from profits claimable by PowerPool DAO multi-sig.

What do you think about such architecture? What can we do better? Would you use this Vault if it will work in the way we specified above?

Since new users can add only two links in the post, I share here $TORN Vault code and security audit. Would add other links in a comment if someone will be interested (link to UI/UX, Python model&on-chain data):

  1. Current implementation of $TORN Vault:

  2. Security audit:


Hello Vasily,
Nice idea. Alghougth I would prefer, if tc would support autocompounding natively.
If it is not planned, I will consider your solution.
With best regards,


Vasily, thank you for this great opportunity. Creating autocompounds in TC is so relevant for many people! Yes, implementation of this opportunity directly in TC would be great! But while it’s not available, I took advantage of your contract. I hope to see the features above realized in the next version of smart contract. These changes are really important because it will raise user trust and increase the number of customers who will love your product.

My opinion is that these changes will benefit the DAO.

It’s more decentralization, all the way to the likes of the Tornado user.

Vault works, the first harvest was done around 8hrs ago: Ethereum Transaction Hash (Txhash) Details | Etherscan

1 Like

This is a cool feature!
We need to think about a way to make governance works for ppTORN holders without adding troubles.

Let’s brainstorm about it here @vasilysumanov

1 Like

Dear @bt11ba, may be we should think about implementation of autocompounding feature natively in the next version of tornado cash instead of brainstorming for voting for xxTorn holders? This seems to be the straight forward solution.

This solution is actually available, that is why it is necessary to talk about governance process for pptorn holders.

Regarding the integration into Tornado Cash contracts directly, this is something I will work on with developers :slight_smile:

1 Like

I think it is worth to implement nativ staking for many reasons:

  1. in general concentration of torns in an external contract seems to be risky regarding influence on voting from the 3d party
  2. if they restake every day the APY of direct stakers will effectively drop down, since the sum to redistribute stays the same and automatic restake is redistributing the reward to them. This would incentivise even more move of torns to them