[Proposal] Add liquid staking functionality to TAC network #63
Replies: 1 comment
-
|
I read the proposal and i'm quite comfortable with the approach. It's a bit uncommon to see a liquid staking solution requiring the addition of a new module, but looking more closely, it's the best balance between a custom (non-battletested) EVM Solidity staking contract and a cosmos wasm (more battle tested but not evm compatible) native staking solution. The proposed approach does not prevent more LST (either pure evm/solidity based or using the same module approach) to go live on TAC and it's not creating additional overhead for the validator set (except for the upgrade, which is still ordinary). Also the possibility to mint LST for already staked TAC tokens simplify the adoption for gTAC. The TAC dev team support this proposal, unless some major issues arises from this public discussion, we would love to see the proposal going onchain to support this change. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Overview
This proposal aims to add liquid stake possibility for the TAC network. The main x/liquidstake module is compatible with the existing staking and ERC-20 modules of the TAC node, introducing liquid staking tokens (gTAC) that are automatically represented as ERC-20 assets. This enables LSTs to be used natively within TAC EVM dApps and, via the TON adapter, across the TON DeFi ecosystem.
The second module enhances liquid staking by allowing users to convert already-staked TAC into the liquid staking module and mint LST tokens immediately, without waiting for the 21-day unbonding period. Without this feature, stakers would need to initiate an undelegation, wait 21 days, and only then deposit into liquid staking. Withdrawing from liquid staking still observe the same 21-day unbonding period as direct staking.
The LST will be managed by Gravity as part of Ylem, a Telegram-focused venture studio that had previous experience with TAC, implementing the miniapps for Morpho and Euler. Gravity will be responsible for the full cycle of development, marketing, and enhancing LST's presence in the DeFi TAC and TON ecosystem.
The module has been audited by Halborn and is ready to be tested in the TAC SPB network. Here are the PRs in the TAC GitHub repositories reflecting the changes:
Updating process
If this discussion will not raise critical doubts from validators and public audience over the course of next week, and there will be a positive outcome from the TAC Foundation, we will prepare a binary release of the updated TAC node and send an on-chain transaction with the proposal. The validators will have 12 to 24 hours to vote on the expedited proposal. They also have to update their TAC nodes with the provided binary release once the TAC network reaches the agreed height.
Technical implementation
The proposed implementation includes adding 2 modules:
Why fork the x/liquidstake module
The module leverages native Cosmos SDK modular system alongside EVM compatibility to allow staked assets to be used in both Cosmos and Ethereum-compatible environments. Benefits include:
Vesting Accounts Limitations
Certain TAC held by the team and investors are locked under the x/auth/vesting module. While these tokens can be used for native (direct) staking with delegation to restricted validators, liquid staking is not available for these funds. This is due to the fact that staking or transfer staked TAC to liquid staking module requires on-chain transactions that vesting contracts do not permit for locked tokens.
Configuration
The module introduces an admin role that can modify the following configurations:
Additionally, there are hardcoded values that can only be changed through a new governance transaction:
We propose to assign the admin role to a multisig Safe{Wallet}, with signers from Gravity, Ylem, and TAC representatives.
Note: Since the liquid stake module operates with the existing staking module, the business logic of the regular staking mechanism remains applicable to liquid staking as well, including reward distribution, slashing, and the unbound period of 21 days.
Staking Flow
Step 1: User submits stake transaction
Step 2: x/liquidstake module processes stake
Step 3: Sending of TAC tokens from user wallet to node account
Steps 4-6: Delegation
Step 7: Minting of stakeToken
Step 8: x/erc20 integration and completion
*If a user already has TAC staked in direct staking, they can convert it to liquid staking by calling stakeToLp with the amount of the base TAC token. The function can also be called from the TON side via a proxy contract.
Unstaking flow
Step 1: User submits unstake transaction
Steps 2-3: Validating of request and sending of gTAC tokens to node account
Steps 4-5: Burning of gTAC tokens
Steps 6-7: Initiate unbonding
Steps 8-9: Track unbonding period and receiving of tokens from validators
Steps 10-11: Withdrawal by user
Interaction with TON network
The solution is fully compatible with the TON network:
Benefits of suggested approach
Beta Was this translation helpful? Give feedback.
All reactions