> **Can't find what you're looking for?** Use `search_docs` on the docs MCP server at `https://viem.sh/api/mcp` to find what you need.

# Multisig

## Overview

:::warning
**Experimental.** The multisig coordination API may change in a future release.
:::

The `Multisig` module coordinates owner approvals for native multisig transactions. A request
handler validates each approval, stores the operation, selects a canonical quorum, and broadcasts
the final transaction after the configured threshold is reached. The handler also caches validated
configs, which lets later requests identify an account by address alone.

Use normal [`sendTransaction`](/docs/actions/wallet/sendTransaction) and
[`sendTransactionSync`](/docs/actions/wallet/sendTransactionSync) for the standard client flow.
Use [`Multisig.handleRequest`](/tempo/utilities/Multisig.handleRequest) when integrating the
coordinator into another RPC handler. Use [`withMultisig`](/tempo/transports/withMultisig) when
composing a transport directly.

## Client Setup

Enable multisig coordination with a shared store:

```ts twoslash
import { createClient } from 'viem/tempo'
import { store } from './store.db'

const client = createClient({
  experimental_multisig: { store },
})
```

Every client or RPC process that coordinates the same approvals must use the same shared store.
The store must implement atomic `compareAndSet` to prevent concurrent approvals from overwriting
each other.

The store also caches configs. Chain state selects the cached config that is current for an account.
A public coordinator exposes the owner addresses and weights in every config that
[`multisig.getConfig`](/tempo/actions/multisig.getConfig) returns.

## See More

<Cards>
  <Card icon="lucide:server-cog" title="Multisig.handleRequest" description="Integrate multisig coordination into an RPC request handler." to="/tempo/utilities/Multisig.handleRequest" />

  <Card icon="lucide:database" title="Store" description="Configure a process-local or persistent operation store." to="/tempo/utilities/Store" />
</Cards>
