# MultisigOperation

Offchain multisig transaction and key authorization operation utilities.

Derives operation hashes, selects owner approvals, serializes transactions,
validates operation state, and converts JSON-RPC representations.

## Functions

| Name                | Description                         |
| ------------------- | ----------------------------------- |
| [`MultisigOperation.from`](/tempo/reference/MultisigOperation/from) | Validates and normalizes a multisig operation. |
| [`MultisigOperation.fromRpc`](/tempo/reference/MultisigOperation/fromRpc) | Converts a JSON-RPC multisig operation to its domain representation. |
| [`MultisigOperation.getHash`](/tempo/reference/MultisigOperation/getHash) | Derives the deterministic hash for a multisig operation. |
| [`MultisigOperation.selectApprovals`](/tempo/reference/MultisigOperation/selectApprovals) | Validates, deduplicates, and selects owner approvals for an operation. |
| [`MultisigOperation.serializeTransaction`](/tempo/reference/MultisigOperation/serializeTransaction) | Serializes a multisig transaction operation with selected owner approvals. |
| [`MultisigOperation.toRpc`](/tempo/reference/MultisigOperation/toRpc) | Converts a multisig operation to its JSON-RPC representation. |

## Errors

| Name                | Description                         |
| ------------------- | ----------------------------------- |
| [`MultisigOperation.InvalidApprovalError`](/tempo/reference/MultisigOperation/errors#multisigoperationinvalidapprovalerror) | Thrown when a multisig owner approval is invalid. |
| [`MultisigOperation.InvalidOperationError`](/tempo/reference/MultisigOperation/errors#multisigoperationinvalidoperationerror) | Thrown when a multisig operation is malformed or internally inconsistent. |

## Types

| Name                | Description                         |
| ------------------- | ----------------------------------- |
| [`MultisigOperation.Base`](/tempo/reference/MultisigOperation/types#multisigoperationbase) | Fields shared by every multisig operation. |
| [`MultisigOperation.KeyAuthorizationOperation`](/tempo/reference/MultisigOperation/types#multisigoperationkeyauthorizationoperation) | Multisig key authorization approval operation. |
| [`MultisigOperation.KeyAuthorizationRpc`](/tempo/reference/MultisigOperation/types#multisigoperationkeyauthorizationrpc) | JSON-RPC multisig key authorization operation. |
| [`MultisigOperation.Operation`](/tempo/reference/MultisigOperation/types#multisigoperationoperation) | Transaction or key authorization multisig operation. |
| [`MultisigOperation.Rpc`](/tempo/reference/MultisigOperation/types#multisigoperationrpc) | JSON-RPC multisig operation. |
| [`MultisigOperation.TransactionOperation`](/tempo/reference/MultisigOperation/types#multisigoperationtransactionoperation) | Multisig transaction approval operation. |
| [`MultisigOperation.TransactionRpc`](/tempo/reference/MultisigOperation/types#multisigoperationtransactionrpc) | JSON-RPC multisig transaction operation. |
