FIP-5: Instant Recovery #100
varunsrin
announced in
FIP Stage 4: Finalized
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Title: Instant Recovery
Type: Implementation FIP
Authors: @v
Abstract
Fids should be recoverable without a delay to enable a better user experience for the recovery flow.
Problem
Fids have a time-delayed recovery system which protects against the loss of the custody address. The recovery system works like this:
The delayed recovery allows users to choose semi-trusted partners for recovery such as a third-party service or a distant friend. If the service initiated a request without the user's approval, they could always cancel it.
In practice, users don't seem to care about the semi-trusted use case as much and tend to be more "barbell" in their strategies. They either want to use their own primary wallet because they trust no one else, or they want to delegate the entire problem of recovery to a third party without worrying about "semi-trusted" situations. In both cases, the delay adds unnecessary friction.
Specification
The recovery system should be simplified to allow the recovery address to transfer the fid without a waiting period. All other rules governing transfers should continue to apply.
Implementation
The following changes should be made to the IdRegistry contract:
transfer
is updated to allow being called by the recovery address.recoveryStateOf
can be deprecatedRequestRecovery
andCancelRecovery
can be deprecatedrequestRecovery
,completeRecovery
andcancelRecovery
can be deprecatedAn implementation PR can be found here: farcasterxyz/contracts#226
Rationale
Why not have configurable delays?
Delays could be configurable allowing instant or delayed recoveries enabling both use cases. But this adds a lot of complexity and costs to the contract for marginal benefits. If users really want a very customized recovery setup, they would be better off using a smart contract wallet as their custody address instead.
Release
The changes will be released with the next major release of the contracts in preparation for the mainnet release.
Beta Was this translation helpful? Give feedback.
All reactions