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#
| Field | Type | Description |
|---|---|---|
type | string | Always "noop" |
Optional Fields#
| Field | Type | Description |
|---|---|---|
vaultAddress | string | Vault executing the noop (if vault-originated) |
Purpose#
The noop action serves several purposes:
- Heartbeat: Maintains connection activity for vaults and agents
- Block Padding: Ensures blocks have minimum activity
- Nonce Advancement: Advances the nonce without executing trades
- 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.
Related Action Types#
- order - Real trading activity
- SetGlobalAction - System configuration