> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mirador.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Safe Multisig Integration

> Track Safe multisig message confirmations and transaction executions

## Overview

For applications that interact with [Safe](https://safe.global/) (formerly Gnosis Safe) multisig wallets, Mirador provides dedicated methods to track message confirmations and transaction executions. This gives you full visibility into the approval-to-execution flow.

<Note>
  Safe methods require the `Web3Plugin`. See [Plugins](/concepts/plugins) for setup.
</Note>

## Message Hints

Use `web3.safe.addMsgHint()` to track off-chain message confirmations — when signers approve a message in the Safe.

```typescript theme={null}
trace.web3.safe.addMsgHint('0xabc123...', 'ethereum');
```

### With Details

Add context about the multisig operation:

```typescript theme={null}
trace.web3.safe.addMsgHint('0xabc123...', 'ethereum', 'Token transfer approval');
```

### Method Signature

```typescript theme={null}
trace.web3.safe.addMsgHint(
  msgHint: string,
  chain: ChainName,
  details?: string
): Trace
```

| Parameter | Type        | Required | Description                                |
| --------- | ----------- | -------- | ------------------------------------------ |
| `msgHint` | `string`    | Yes      | Safe message hash                          |
| `chain`   | `ChainName` | Yes      | Blockchain network the Safe is deployed on |
| `details` | `string`    | No       | Optional description                       |

## Transaction Hints

Use `web3.safe.addTxHint()` to track on-chain Safe transaction executions — when a queued Safe transaction is executed on-chain.

```typescript theme={null}
trace.web3.safe.addTxHint('0xsafeTxHash...', 'ethereum');
```

### With Details

```typescript theme={null}
trace.web3.safe.addTxHint('0xsafeTxHash...', 'ethereum', 'Token transfer execution');
```

### Method Signature

```typescript theme={null}
trace.web3.safe.addTxHint(
  safeTxHash: string,
  chain: ChainName,
  details?: string
): Trace
```

| Parameter    | Type        | Required | Description                                |
| ------------ | ----------- | -------- | ------------------------------------------ |
| `safeTxHash` | `string`    | Yes      | Safe transaction hash                      |
| `chain`      | `ChainName` | Yes      | Blockchain network the Safe is deployed on |
| `details`    | `string`    | No       | Optional description                       |

<Tip>
  **When to use which?**

  * `web3.safe.addMsgHint()` — Track off-chain message confirmations (signers approving a message)
  * `web3.safe.addTxHint()` — Track on-chain transaction executions (the actual Safe transaction)
  * Use both together for full visibility into the approval-to-execution flow
</Tip>

## Combining All Hint Types

A trace can include EVM transaction hints, Safe message hints, and Safe transaction hints for complete visibility into multisig workflows:

```typescript theme={null}
const trace = client.trace({ name: 'SafeTransfer' })
  .addAttributes({
    safeAddress: '0xSafe...',
    action: 'token_transfer'
  })
  .addTags(['safe', 'multisig', 'ethereum']);

// Track the Safe message that signers need to confirm
trace.web3.safe.addMsgHint(messageHash, 'ethereum', 'Transfer approval message');

// Track the Safe transaction hash (from Safe API)
trace.web3.safe.addTxHint(safeTxHash, 'ethereum', 'Queued Safe transaction');

// After enough confirmations, the transaction is executed on-chain
trace.web3.evm.addTxHint(executionTxHash, 'ethereum', 'On-chain execution');
```

## Next Steps

<CardGroup cols={2}>
  <Card title="Transaction Hints" icon="cube" href="/concepts/transaction-hints">
    EVM transaction hints and correlation
  </Card>

  <Card title="Plugins" icon="puzzle-piece" href="/concepts/plugins">
    Web3Plugin setup and configuration
  </Card>
</CardGroup>
