WDK logoWDK documentation

Manage Safe owners

Propose Safe owner and threshold changes and complete their approval lifecycle.

Review a governance change and complete its proposal. See Need Help for support.

Prerequisites: a deployed Safe, a configured owner and a shared coordinator. Changing owners or the threshold can remove access to funds. Verify the full resulting owner set and threshold before anyone signs.

Review a Governance Change

Use getMultisigInfo() to inspect the current configuration before creating a change:

Inspect current owners
import { account, requiredEnv } from './safe-account.mjs'
console.log(await account.getMultisigInfo())

Use addOwner() to create an addition proposal:

Propose an owner addition
const change = await account.addOwner(requiredEnv('NEW_OWNER_ADDRESS'), {
  threshold: Number(requiredEnv('NEW_THRESHOLD'))
})
console.log(change.proposalId)

removeOwner(), swapOwner(), changeThreshold() and updateOwners() create proposals too. Omitting a removal threshold can lower it to fit the remaining owner count; explicitly review the resulting threshold.

Complete Its Proposal

  1. Share the proposal identifier and full proposed configuration through the coordinator.
  2. Obtain owner approvals with approveProposal().
  3. Submit with executeProposal() and check a successful receipt.
  4. Refresh the account and verify the resulting owners and threshold with getMultisigInfo().

Follow Manage proposals for the submission and receipt steps. Read-only owners and threshold values are cached; recreate an account after externally executed changes to avoid relying on stale state.

Next Steps


Need Help?

On this page