> **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.

# Sponsor Multisig Fees

## Overview

A fee payer can cover the fees for a multisig sender. Prepare the request with both accounts,
then collect owner approvals for that prepared request.

## Recipes

These recipes assume you have [set up a Tempo client](/tempo).

### Sponsor a Multisig Transaction

:::code-group
```ts twoslash [example.ts]
import { Account } from 'viem/tempo'
import {
  prepareTransactionRequest,
  sendTransaction,
  signTransaction,
} from 'viem/actions'
import { client } from './viem.config'

const owner_1 = Account.fromSecp256k1(
  '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80'
)
const owner_2 = Account.fromSecp256k1(
  '0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d'
)
const sponsor = Account.fromSecp256k1(
  '0x5de4111afa1a4b94908f83103eb1f1706367c2e68ca870fc3fb9a804cdab365a'
)
const account = Account.fromMultisig({
  owners: [owner_1.address, owner_2.address],
  threshold: 2,
})

const request = await prepareTransactionRequest(client, {
  account,
  feePayer: sponsor,
  to: '0xcafebabecafebabecafebabecafebabecafebabe',
  value: 1n,
})
const signatures = await Promise.all(
  [owner_1, owner_2].map((owner) =>
    signTransaction(client, { ...request, account: owner })
  )
)
const hash = await sendTransaction(client, { ...request, signatures })
```

```ts twoslash [viem.config.ts] filename="viem.config.ts"
// [!include ~/snippets/tempo/viem.config.ts:setup]
```
:::

## Best Practices

### Keep the Prepared Request Immutable

The owner and fee payer signatures cover the prepared transaction fields. Do not change the gas,
fees, nonce, validity window, calls, or fee payer after either party signs.

### Separate Remote Fee Payers

For a remote fee payer service, pass `feePayer: true` and use the service's signing flow. Keep the
fee payer key in the service instead of sharing it with multisig owners.

## See More

<Cards>
  <Card icon="lucide:hand-coins" title="Sponsor User Fees" description="Integrate a remote fee payer service." to="/tempo/guides/sponsor-fees" />

  <Card icon="lucide:send" title="Send Transactions" description="Prepare one request and collect independent multisig approvals." to="/tempo/guides/multisig/send" />

  <Card icon="lucide:receipt" title="Tempo Transactions" description="Learn how Tempo transaction fees and fee payers work." to="/tempo/transactions" />
</Cards>
