Docs

multiSig - Multi-Signature Operations

Execute multi-signature operations on Hyperliquid. Enables shared control of accounts and enhanced security.

Execute an action that requires multiple signatures for authorization. Multi-sig accounts require a threshold of signers to approve transactions, enhancing security for institutional or shared accounts.

Sample Data

JSON
{
  "signature": {
    "r": "0xa9b99251bf412a7cf584710c1ed25328dbe8523ae65f01911211a51cd63b3072",
    "s": "0x27883f0ff43062e012fabc1a192d12212c9cbe7f6939a0429fffe44f1779eb52",
    "v": 27
  },
  "action": {
    "type": "multiSig",
    "signatureChainId": "0x3e7",
    "signatures": [
      {
        "r": "0xae84dedfe9ad13036d95dfa84c8e47cfd8f28fd191ac582f7ebba02cdadecb6a",
        "s": "0x5ba85eea603c524c50b722b7b3342ed3e1eec4c6dc491b3fc9dc5769a76d1deb",
        "v": 28
      }
    ],
    "payload": {
      "multiSigUser": "0x1234567890545d1df9ee64b35fdd16966e08acec",
      "outerSigner": "0xd2d8bc14967d340c1eebde6eec6358200278da91",
      "action": {
        "type": "perpDeploy",
        "setOracle": {
          "dex": "xyz",
          "oraclePxs": [["xyz:AAPL", "260.02"], ["xyz:AMD", "203.72"]]
        }
      }
    }
  },
  "nonce": 1768146913280
}

View this transaction on Hypurrscan

Field Reference

Action Fields

FieldTypeDescription
typestringAlways "multiSig"
signatureChainIdstringChain ID for EIP-712 signing
signaturesarrayArray of co-signer signatures
payloadobjectThe wrapped action to execute

Payload Fields

FieldTypeDescription
multiSigUserstringAddress of the multi-sig account
outerSignerstringAddress of the signature submitter
actionobjectThe underlying action to execute

Multi-Sig Benefits

  • Enhanced Security: Requires multiple parties to authorize actions
  • Institutional Control: Enables proper governance for fund operations
  • Recovery Options: Prevents single point of failure

Use Cases

Institutional Activity Tracking

Monitor multi-sig operations for institutional-grade accounts:

Python
def process_multiSig_action(action):
    payload = action.get('payload', {})
    multisig_user = payload.get('multiSigUser')
    inner_action = payload.get('action', {})
    inner_type = inner_action.get('type')

    print(f"MultiSig: {inner_type} from {multisig_user[:10]}...")

Oracle Price Updates

Many multi-sig actions are used for oracle price feeds (as shown in the sample).

Governance Analysis

Track how multi-sig accounts manage critical protocol operations.