Docs

noop - No Operation

No-operation action used for heartbeats, padding, and maintaining connection state on Hyperliquid.

A no-operation action that performs no state changes. Used for heartbeats, connection maintenance, and block padding.

Sample Data

JSON
{
  "signature": {
    "r": "0x5157d93e3d66571991b0a7aa9cbfd108a7fff13749c606348acc14374bbbc9cd",
    "s": "0x42d4ed4d0863958c8bae8df8650b6844021168eb385f0ee0c085ae897f279c70",
    "v": 28
  },
  "action": {
    "type": "noop"
  },
  "nonce": 1768146879398,
  "vaultAddress": "0x3ac9b030594c1ef23a3e8fed9f62356b7bf98bf6"
}

View this transaction on Hypurrscan

Field Reference

Action Fields

FieldTypeDescription
typestringAlways "noop"

Optional Fields

FieldTypeDescription
vaultAddressstringVault executing the noop (if vault-originated)

Purpose

The noop action serves several purposes:

  1. Heartbeat: Maintains connection activity for vaults and agents
  2. Block Padding: Ensures blocks have minimum activity
  3. Nonce Advancement: Advances the nonce without executing trades
  4. Timing Signals: Can indicate scheduled activity patterns

Use Cases

Activity Detection

Filter out noops when analyzing real trading activity:

Python
def process_block_actions(actions):
    # Filter out noops to focus on real activity
    real_actions = [a for a in actions if a.get('type') != 'noop']
    return real_actions

Vault Health Monitoring

Track vault activity through noop patterns:

Python
def monitor_vault_activity(action):
    if action.get('type') == 'noop':
        vault = action.get('vaultAddress')
        if vault:
            print(f"Vault heartbeat: {vault[:10]}...")

Block Analysis

Understand block composition by tracking noop ratios.