• © Goverland Inc. 2026
  • v1.0.3
  • Privacy Policy
  • Terms of Use
BeetsBeetsby0x42cbc0F4eE7ad0AD8fdF2Bff9956bF7e6AA2B713decentralix

BIP-71: Recover FTM from Validator 167

Voting ended over 1 year agoSucceeded

Background

On August 1st, the keys to the wallet for validator 167, which is not the Beethoven X validator, got compromised and his wallet was drained. In addition, the attacker also unstaked all the staked FTM from validator 167. Beethoven X has delegated 1M FTM to the affected validator through sFTMx. These funds are not at risk, but are also not earning any rewards at the moment. Over the past week, we’ve investigated ways to unlock the 1M FTM that we have delegated. After developing and testing options, we have deployed a contract to Fantom which allows our treasury to unstake the 1M FTM without any impact to sFTMx holders.

Technical details

When a delegator or staker wants to unlock the FTM pre-maturely, a penalty needs to be paid. In the normal use case when a user is withdrawing FTM, if we need to unlock early, the user who initiates the request will pay this penalty when he burns the sFTMx. In this scenario we don't have a user that pays it and if we just unlock, it would result in a drop in the rate of sFTMx per FTM. We want to avoid this scenario under all circumstances. We’ve developed a contract that will unlock the vault and in the same transaction refund the sFTMx staking contract with the same amount of FTM so that no decrease in the rate will occur.

The contract source code can be found here: https://github.com/beethovenxfi/sftmx/blob/main/contracts/VaultUnlocker.sol The tests here: https://github.com/beethovenxfi/sftmx/blob/main/scripts/VaultUnlocker.ts The tenderly simulation here: https://dashboard.tenderly.co/shared/simulation/d493f3fa-776a-433c-86b4-f39b6b2f5082

The penalty that is due for the withdrawal is increasing over time at roughly 170 FTM per day. In light of this, we would like to move this proposal forward as fast as possible.

Motivation To make sure that sFTMx holders earn yield on all the staked FTM, we’ll need to withdraw and re-stake to a different validator.

Specification

The treasury will use this unlocker contract https://ftmscan.com/address/0xd0f62fbe32a72cd18ab8943b52220a7af6c743f4 to retrieve the funds. The course of action will be:

  • Transfer 6k FTM to the unlocker contract to fund the recovery of the penalty
  • Transfer ownership of the three affected staking vaults to above contract
  • Call unlockVault for each of the three affected staking vaults
  • Call harvestVault on the staking contract to initialize the 7 day withdrawal
  • Retrieve left-over FTM from the unlocker contract

After 7 days, we will withdraw the FTM from these vaults into the free pool.

We are in close contact with validator 167 and he has confirmed that he will reimburse the treasury for any penalty that it needed to pay in order to unlock the funds.

Risk/Impact

The current cost for the penalty of delegating sits at 3.3k FTM. While the validator has given their word that they'll reimburse any associated costs, then there is a chance that the treasury would need to cover the amount otherwise.

Off-Chain Vote

Yes
15.68M maBEETS100%
No
0 maBEETS0%
Abstain
4.94K maBEETS0%
Download mobile app to vote

Discussion

BeetsBIP-71: Recover FTM from Validator 167

Timeline

Aug 15, 2024Proposal created
Aug 15, 2024Proposal vote started
Aug 19, 2024Proposal vote ended
Oct 10, 2025Proposal updated