Guardians are used with Etherspot to add an extra layer of security to your smart contract wallet.

Adding a new guardian as an owner

To add a new guardian to a wallet, the wallet owner can call this function from the Etherspot smart contract wallet address:

addGuardian(address _newGuardian)

Guardians can then add new owners to a wallet. The minimum number of guardians required to do this is 3 and it requires a 60% minimum quorum of guardians to pass the proposal to add a new owner (2/3, 3/4. 3/5 etc).

An owner itself can just add a new owner by calling:

addOwner(address _newOwner)

Adding a new owner as a guardian

  1. A guardian calls guardianPropose(address _newOwner). This creates a proposal to add a new owner to the wallet.
  2. Other guardians then have to call guardianCosign(). The guardian that created the proposal cannot call this as their vote is already recorded in the proposal. This function then checks whether the minimum quorum threshold for the proposal has been met or not.
  • If yes, then the proposal is passed and the new owner is added to the wallet.
  • If no, then nothing happens.

Only one proposal is active at any time. If there is an issue with the proposal or its simply just not going to pass, then after a timelock period (which is set as default to 24 hours but can be changed by the owner) the proposal can be discarded and then a new proposal can be submitted.