Skip to main content

Recovery Mechanism

This section explains how the complete process works with the example of Alice and Bob. In this context, we assume Alice is the current owner and wants to set up the recovery for Bob.

Setup A (current owner)

Each recovery setup between 2 parties starts by creating a new recovery contract (TimeLockRecovery). By deploying this contract, Alice defines Bob as the next owner and specifies the duration of the waiting period between Bobs recovery request and fulfillment (A1). After the deployment she gives the contract permission to add another controller on her behalf (A2) if and when the actual recovery is being fulfilled. This is a common approach in third-party recovery services. As a result of this initial setup on the side of Alice, she copies the link to this recovery setup and shares it with Bob.

A1

A1: Alice deploys the recovery contract and defines current+next owner and time lock duration

A2

A2: Alice gives permissions to add controllers to the recovery contract

Setup B (next owner)

Using the link provided by Alice, Bob accesses the nextofus app to do his part of the one-time setup which starts by importing the profile of Alice into his UP browser extension (B1). This generates a new controller address which the recovery contract is informed about via a transaction (B2). This is the controller that will be inserted into her profile. Until the recovery is authenticated and completed via the time lock mechanism, the profile will be in read-only mode in Bobs browser extension.

B2

B2: Bob calls TimeLockRecovery to register the new controller address he got when importing the profile.

Recovery

Initiate recovery request

After the setup is complete, Bob can initiate a recovery request at any time. This simply starts the timer on time lock.

C1

C1: Bob initiates a recovery request.

Optional: Block recovery request

At any time during the time window between recovery request and fulfillment, Alice can block the ongoing request.

C1.5

C1.5: Alice can block the recovery request at any time

Complete recovery request

If not blocked by Alice, Bob can complete the recovery after the waiting period has passed. The recovery contract adds the necessary permissions to the previously registered controller. The profile of Alice can now be used from Bobs UP browser extension as if it was his own.

C2

C2: Bob completes the recovery request. If the waiting period has passed, the recovery contract sets permissions for Bobs registered controller.