Skip to main content

Manage and Security

One of the best features that an INTU account offers is the ability to 'rotate' or add and remove users from the MPC account.

Reasons for this might be:

  • A user has lost access to an account that controls one of the keys to the INTU Account, and needs to provide access to another account they own.
  • A group of INTU users wants to add or remove a person to their collective INTU MPC Account (perhaps a new hire, new family member, etc.)
  • Proactive security - if someone thinks their key may be compromised, the users can perform a rotation and receive all new keys.

Propose User Rotation

import { proposeRotateUserInVault } from "@intuweb3/web-exp";
let myVaults = getVaults("0x12345_user_address", provider)
let vaultAddress = myVaults[i].vaultAddress
let userToAdd = "address you want to add to the MPC";
let userToRemove = "address you want to remove from the MPC";
await proposeRotateUserInVault(vaultAddress, userToAdd, userToRemove, signer)

IMPORTANT

THE NEW USER NEEDS TO PRE-REGISTER BEFORE EVERYONE CAN AUTOMATE ROTATION

Pre Registration 💻

Automatic Registration

All users in the vault need to perform this step, this both 'votes' for the new user and ensures they will have updated cryptographic data so they can sign once the rotation is complete.

import { automateRotateRegistration } from "@intuweb3/web-exp";
await automateRotateRegistration(vaultAddress, signer)

Store Encrypted Data

import { registerAllReshareSteps } from "@intuweb3/web-exp";
await automateRotateRegistration(vaultAddress, signer);

That's it! The old user will be removed from the vault, the new users will all have new shares, and the master public key, the EOA for the MPC account, will remain the same!