Rationale
The current value proposition behind stkTRU is that stkTRU holders can earn a portion of interest earned by the protocol which gives TRU inherent value. Currently, TRU rewards are offered on top of this to incentivize deposits. A lot of community members are asking for a “restake” functionality in TrueFi. In addition, stkTRU cannot be used on an AMM, the account which owns the stkTRU is entitled to the rewards, and AMMs do not have the ability to claim TRU or tfUSDC rewards from stakers. This proposal encourages the creation of a new token called xTRU, which automatically compounds TRU rewards earned through the contract’s stkTRU balance. In addition, fees are used to buy TRU and stake it back into the contract, thus allowing the value of one token to increase in it’s TRU value over time.
Implementation
A new token is created called xTRU, which pools stkTRU in a single contract
Deposit stkTRU or TRU into the xTRU contract in exchange for a share of the pool
TRU farmed through stkTRU rewards are re-deposited back into the contract for stkTRU
User shares are tracked so that their stkTRU balance grows as the pool compounds
tfUSDC earned are used to buy more TRU and stake the TRU back into the xTRU pool
xTRU can be used on AMMs to increase liquidity for stkTRU
xTRU/ETH or xTRU/USDC pair can be incentivized through a farm an offramp for xTRU
Open to thoughts or feedback. Anyone can develop this since it is only wrapping functions on top of existing smart contracts. This could be a good hackathon project for a solidity developer or TRU funded grant.
We shouldn’t make a new contract that will utilize the old one, stacking one on top of another, because it will just make everything unnecessarily complex and gas costly. Smaller TRU holders are already cut out of the system and there is no point in staking less than already a pretty big amount of TRU. If we stack more logic on top of each other, it would be even worse. We need to upgrade the way the currently existing staking contract works, to not distribute new TRU through claiming but just increase stkTRU value (that being said, I keep in mind, that we will still need to keep the claiming mechanism for stablecoin dividend). Or we should just introduce a new staking contract and migrate.
Also, we shouldn’t really run two separate contracts of similar nature alongside.
Upgrade or migrate.
Migration would be cleaner in terms of process and architecture. Upgrade would support smaller stakers.
I am strongly in favour of anything that allows auto-compounding for smaller stakers (like me). With the current situation I need to wait a long time to earn enough from staking before it’s worthwhile withdrawing it (due to gas costs) and then why would I re-stake what I’ve earned? as it’s yet another gas tax applied on the way in.
Claimable tfUSDC grows so slowly I can’t see a time that I will ever be claiming it as it’s not worth the gas cost so I agree with this being paid in TRU instead and staked back into the pool to get the compounding effect.
this sounds very reasonable to me… sure gas is not as crazy as 4-6 weeks ago but it’s still 15-30$ to do pretty much anything x2 to claim and stake that can certainly eat into the 26.69% ROI.
The benefit of this system is that the people entering / exiting xTRU would pay to claim+restake. Smaller users would only have to pay once to enter / exit, which would be the cost of stake() + claim(). Over time, the TRU will compound so holding longer would eventually offset the cost of the restaking
Circling back to this, I agree with Bartek. Either we upgrade the existing contract (if possible) or create a brand new contract and require a migration. I will be honest (as someone who worked on the stkTRU contract) that that contract is outdated in terms of design and code, and might be better of completely deprecated.