Table · StrataPlanned

Safe Multisig Checker: Owners, Threshold and Modules

Who signs for this Safe, how many signatures does it need and which modules can move funds without them?

Inspect a Safe before trusting it: its signers, how many must sign, the modules and guards that can act on it and its recent changes.

ShareEmail itvoltfincrypto.com/apps/safe-multisig-checker
Blueprint

What the table will hold.

The table as it will open in Strata. Each figure is named here and arrives with its receipt; until its data is published, its place stays empty.

One row One row per owner, module, guard or fallback handler of the looked-up Safe, per chain, at the latest blockSorted by Added, highest first

SafeChainRoleAddressLabelThresholdActs without signaturesAddedAdded inLast activitySafe versionReceipt
Safe safe Address
The Safe's address, linked to its receipt on the row's chain.
Chain chain Chain
The chain whose contract this row describes; each chain's Safe is configured on its own.
Role role Text
Owner, module, transaction guard, module guard or fallback handler.
Address address Address
The owner's address or the contract's address.
Label label Text
Who the address belongs to where a public source supports it, with that source.
Threshold threshold Text
Signatures required out of the number of owners, such as three of five, repeated on each row of the Safe.
Acts without signatures acts_alone Text
Yes for modules, which can execute through the Safe on their own; for owners, yes only when the threshold is one.
Added added Date
The day the owner, module or contract was set, from the Safe's events.
Added in added_tx Link
The transaction that added or last changed this setting.
Last activity last_activity Date
For an owner, the last executed transaction it signed; for a module, its last execution through the Safe.
Safe version version Text
The Safe contract version, since features such as module guards differ between versions.
Receipt receipt Link
The block, hash and calls behind the row.

Filter by Chain, Role.

About

What it answers, and for whom.

A Safe is a smart account that moves funds only when enough of its owners sign. This table reads a Safe's configuration straight from its contract on each chain: every owner, the number of signatures required, the modules that can execute transactions without those signatures, the guards that check transactions and the fallback handler.

Most of the risk in a multisig sits in that configuration. A low threshold, a recently added owner, an unfamiliar module or a changed guard can each give someone control without the signers a user expects. Each row shows when its setting was added and the transaction that added it, so recent changes stand out.

Enter a Safe address and filter by chain or role; sort by date added to see the latest changes first. The table describes the configuration; it does not certify a Safe as secure.

Method

How it will be measured.

Every figure will be read at a block, kept with its source and its exact read, and open a receipt anyone can re-check.

How receipts work →
  1. Owners, threshold and nonce are read with getOwners(), getThreshold() and nonce() at the latest block on each chain where the Safe is deployed.
  2. Modules come from getModulesPaginated(); the transaction guard, the module guard and the fallback handler are read from the storage slots the Safe contracts define for them.
  3. The date and transaction that set each owner, module or guard come from the Safe's SafeSetup, AddedOwner, ChangedThreshold, EnabledModule and ChangedGuard events.
  4. Last activity comes from ExecutionSuccess and ExecutionFromModuleSuccess events, with owners' signatures recovered from the execTransaction calls they signed.
  5. The Safe's version is read with VERSION(); owner and module labels come from public sources recorded with each label.

The data it needs

Read from chain state and history

  • treasury_balances_dailyTo buildDAO and protocol treasuriesBalances of DAO, protocol and multisig treasuries per asset at day end, and their inflows and outflows.
  • address_labelsTo buildAddress labelsLabels for known addresses: exchanges, bridges, protocols, funds, treasuries, sanctioned addresses and known attackers.
  • getOwners(), getThreshold(), nonce() and VERSION() via eth_call at the latest block on each covered chain
  • getModulesPaginated() and the guard, module guard and fallback handler storage slots
  • SafeSetup, AddedOwner, RemovedOwner, ChangedThreshold, EnabledModule, DisabledModule and ChangedGuard events
  • ExecutionSuccess and ExecutionFromModuleSuccess events, and the signatures in execTransaction calldata
Questions

Questions people ask.

How do I see who owns a Safe multisig?

Enter its address. The table reads getOwners() from the Safe's contract on each chain and lists every owner, with a label where a public source supports one and the transaction that added each owner.

What is a Safe threshold?

The number of owner signatures needed to execute a transaction. A Safe with five owners and a threshold of three needs any three of them to sign; a threshold of one lets every owner act alone.

What are Safe modules and why do they matter?

Modules are contracts a Safe has enabled to execute transactions through it without collecting owner signatures, for example for recurring payments or recovery. A module can act with the full power of the Safe, so an unknown or recently added module deserves close attention.

What is a Safe guard?

A guard is a contract that checks every transaction before and after it runs and can block the ones that break its rules. A guard can protect a Safe, but a faulty or malicious guard can also lock its owners out.

Is a Safe the same as a Gnosis Safe?

Yes. Safe was called Gnosis Safe until it became a project of its own; existing Safes kept their addresses and contracts. The checker reads Safes of every version on the covered chains.

Can a Safe have different owners on different chains?

Yes. A Safe deployed at the same address on two chains is two separate contracts, each with its own owners, threshold and modules; the two can drift apart. The table shows each chain's configuration on its own rows.

Threshold
The number of owner signatures a Safe needs before it will execute a transaction.
Module
A contract enabled on a Safe that can execute transactions through it without owner signatures.
Guard
A contract that checks a Safe's transactions before and after execution and can reject them.
Fallback handler
A contract that answers calls the Safe itself does not implement, such as signature checks requested by other contracts.
Related

Build Safe Multisig Checker: Owners, Threshold and Modules on verified data.

Start free in Voltfin Studio: boards, tables and reports where every number opens its receipt. Tell us which data you need first and we will build it next.