ModuleSDK
Modules
Multi Factor

Multi Factor

The Multi Factor module is a module that allows you to add multi-factor validation to an account. The Multi Factor module is used to validate transactions and other executions on the account.

You can find the source code for the module in the Core Modules repo (opens in a new tab) and the deployment address in the address book.

getMultiFactorValidator

The getMultiFactorValidator function is used to create an instance of the Multi Factor module. This function returns a module object.

import { getMultiFactorValidator } from "@rhinestone/module-sdk";
 
const validators = [{
    packedValidatorAndId: '0x...' // packed validator address and validator id
    data: '0x..'; // encoded init data for validator
}];
 
const threshold = 1;
 
const mfaValidator = getMultiFactorValidator({
  validators,
  threshold,
});

getMFAValidatorMockSignature

The getMFAValidatorMockSignature function is used to get a mock signature for the validator. This is used to calculate the gas of an ERC-4337 UserOperation. This function returns a hex-encoded signature.

import { getMFAValidatorMockSignature } from "@rhinestone/module-sdk";
 
const mockSignature = getMFAValidatorMockSignature();

getSetMFAThresholdAction

The getSetMFAThresholdAction function is used to set the threshold for the validator. This function returns an execution object

import { getSetMFAThresholdAction } from "@rhinestone/module-sdk";
 
const threshold = 2;
 
const setMFAThresholdAction = getSetMFAThresholdAction({
  threshold,
});

getSetMFAValidatorAction

The getSetMFAValidatorAction function is used to add a validator to MFA module. This function returns an execution object

import { getSetMFAValidatorAction } from "@rhinestone/module-sdk";
 
const validatorAddress = "0x...";
const validatorId = "0x...";
const newValidatorData = "0x..";
 
const setMFAValidatorAction = getSetMFAValidatorAction({
  validatorAddress,
  validatorId,
  newValidatorData,
});

getRemoveMFAValidatorAction

The getRemoveMFAValidatorAction function is used to remove a validator from the MFA. This function returns an execution object

import { getRemoveMFAValidatorAction } from "@rhinestone/module-sdk";
 
const validatorAddress = "0x...";
const validatorId = "0x...";
 
const removeMFAValidatorAction = getRemoveMFAValidatorAction({
  validatorAddress,
  validatorId,
});

isMFASubValidator

The isMFASubValidator function is used to check if a validator is a sub validator in MFA module. This function returns boolean

import { isMFASubValidator } from "@rhinestone/module-sdk";
 
const validatorAddress = "0x...";
const validatorId = "0x...";
 
const isSubValidator = await isMFASubValidator({
  account,
  client,
  subValidator,
  validatorId,
});

MULTI_FACTOR_VALIDATOR_ADDRESS

The MULTI_FACTOR_VALIDATOR_ADDRESS is a constant that represents the module address.