Docs

voteAppHash payload - Validator State Votes

Decode Hyperliquid `voteAppHash` payloads for validator state votes, returned through Dwellir's read-only L1 gRPC API.

Read-only action reference

Dwellir's Hyperliquid gRPC API returns this decoded action payload through StreamBlocks and GetBlock. It does not submit or execute this action. Submit supported user write actions through Hyperliquid's native POST /exchange endpoint.

The decoded voteAppHash payload records a validator vote on an application-state hash.

Sample Data

JSON
{
  "signature": {
    "r": "0xccd84bb5e2f144ec741af1a81d2fc318d8ccb75eaf500371c1515c1e695b2213",
    "s": "0x25a8b7da621dccbd161fb61487c6bd8e369d1ba28567b26b3ac6ab647b84e270",
    "v": 28
  },
  "action": {
    "type": "voteAppHash",
    "height": 858146000,
    "appHash": "0x9133a75f5e126769845b4bd35e7b6b02456c1f3df72f146eb89e0e86c61415d7",
    "signature": {
      "r": "0x381dcf885e27e08f1547ded9a97f3d51eef2857d86164993d8416c2deeeb8de1",
      "s": "0x4ad114432fef3b53b791a568a118f99ec881922ce57fa2e2df1f4fb9272c609f",
      "v": 27
    }
  },
  "nonce": 1768146734574
}

View this transaction on Hypurrscan

Field Reference

Action Fields

FieldTypeDescription
typestringAlways "voteAppHash"
heightnumberBlock height being voted on
appHashstringApplication state hash
signatureobjectValidator's signature on the vote

Use Cases

Consensus Monitoring

Track validator voting activity:

Python
def process_voteAppHash_action(action):
    height = action.get('height')
    app_hash = action.get('appHash')
    print(f"State vote: height {height}, hash {app_hash[:20]}...")