Skip to main content

noop

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

Sample Data#

{
"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:

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:

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.