Move Saddle tBTC Liquidity incentives to v2 metapool

TLDR:
Update the KEEP rewards allocation to the Saddle tBTCv2 metapool from the Saddle v1 metapool to the Saddle v2 metapool.

Background:
Due to the discovery of a vulnerability in the Saddle (v1) metapool contracts, the affected pools were paused for new deposits. Meanwhile Saddle has launched v2 metapool contracts for the affected pools where this vulnerability is no longer present.

Read more here: Fix for Metaswap exploit is live

It’s the intention that all users in the v1 metapool will migrate to the v2 metapool. Since the metapool v1 is normally incentivized with KEEP rewards, this needs to be a coordinated effort.

The v1 metapool incentives were paused on Dec 31st.

Initial assessment of required actions:
Keep Network:

  • Create new KEEP rewards LP token staking contract, to stake Saddle v2 metapool LP tokens
  • Update Keep dashboard with section for Saddle v2 metapool. Note: Users must also remain to be able to withdraw v1 metapool LP tokens and rewards. Depositing v1 metapool LP tokens through the dashboard must be disabled.
  • Update KEEP rewards address to v2 rewards contract. For the 1st week, allocate the paused rewards that were supposed to go out on Dec 31st on top of the normal rewards. So effectively double the liquidity rewards for 1 week, starting around Friday Jan 7th (reward top ups are usually scheduled for Fridays)

Question to be discussed with Keep team: what happens if someone by accident sends v1 LP tokens to the v2 contract or vice versa? Can these be recovered?

Saddle:

  • Seed Saddle v2 metapool?

Keep Network + Saddle:

  • Align & communicate timeline. Rewards go out on a weekly basis. Communicate reward change 2 days in advance of rewards allocation to new pool, to allow people to migrate to the new pool and stake the LP tokens.

LPs

  • Unstake v1 metapool LP tokens through Keep Dashboard
  • Migrate from Saddle v1 metapool to Saddle v2 metapool → receive v2 metapool LP tokens
  • Stake v2 metapool tokens through Keep Dashboard

Sending tokens with plain ERC20 transfer is not the way to stake into LP rewards contract and no tokens sent to the contract can be recovered.

One should approve the LP token transfer and stake into LP rewards contract by calling one of the contract functions. From this perspective, the LP reward contract will only stake the correct LP reward token.

Of course, if someone is using KEEP Token Dashboard they do not have to worry about it.

Smart contract code is here: keep-ecdsa/LPRewards.sol at main · keep-network/keep-ecdsa · GitHub

1 Like

Yep clear on the 1st part. As long as using the contract functions secures that the correct LP tokens are staked it should be fine.

Just wanted to check in this particular case since I imagine it can be confusing with tBTC v1, tBTC v2 and then the v1 Metapool and v2 Metapool.

Thanks for the response!