Multisigs

Storage Map v123 → current

The set of open multisig operations.

Explore chain
Queried by: developerswalletsvalidatorsstakers

The Big Picture

Every pending multisig operation is stored here. Query this to see which operations are awaiting approvals, who has approved so far, and who deposited. Essential for building multisig wallet interfaces.

Why This Matters

Before approving or cancelling a multisig operation, you need to know its current state. This storage tells you everything about pending operations.

Example Scenario

Query Multisigs(multisig_account, call_hash) returns the Multisig struct with: when (timepoint of first approval), deposit (RAO reserved), depositor (who pays), and approvals (list of accounts that have approved so far).

Common Questions

How do I find all pending operations for a multisig?
Iterate Multisigs with the multisig account as the first key. Each entry is a different pending operation identified by its call hash.
How do I calculate the multisig account address?
It's derived deterministically from the signatory list. Use the Substrate multisig address derivation: blake2(b'modlpy/teleact' ++ signatories.len() ++ signatories)

Use Cases

  • Check status of pending multisig operations
  • List all pending operations for a multisig account
  • Determine who has approved and who is still needed
  • Build multisig management dashboards

From Chain Metadata

The set of open multisig operations.

Purpose & Usage

Purpose

Track pending multisig operations awaiting approvals.

Common Query Patterns

  • Query by (multisig_account, call_hash) to check specific operation status
  • Iterate all pending operations for a multisig account
  • Check approvals and depositor for an operation

Query Keys

#NameTypeDescription
1
key1
→ multisig_account
AccountId Derived multisig account address (hex -> SS58)
2
key2
→ call_hash
[u8; 32] [32]Blake2-256 hash of the call to be executed

Stored Value

Multisig operation state (when created, deposit, depositor, approvals list)

Relationships

Code Examples

import { ApiPromise, WsProvider } from "@polkadot/api";
import { stringCamelCase } from "@polkadot/util";

const provider = new WsProvider("wss://entrypoint-finney.opentensor.ai:443");
const api = await ApiPromise.create({ provider });

// Query Multisigs storage
const key1 = "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY";
const key2 = 0;

const result = await api.query
  [stringCamelCase("Multisig")]
  [stringCamelCase("Multisigs")](
  key1,
  key2
);

console.log("Multisigs:", result.toHuman());

On-Chain Activity

Write Frequency
●●○○○○ Minimal <10K est. writes

<10K estimated writes

#52 most written storage item

Write Source User Extrinsics

Modified via user-submitted extrinsics

As of block 7,429,232

Runtime Info

Pallet
Multisig
Storage Kind
Map
First Version
v123
Current Version
v393