Skip to main content

Writer Actions Dataset

Updated on
Jan 07, 2026

Overview

The Writer Actions stream contains system operations for spot token transfers, tracking automated asset movements and system-level transfers within Hyperliquid's ecosystem.

Stream Type: WRITER_ACTIONS
API Availability: gRPC Streaming API + JSON-RPC/WebSocket APIs
Volume: Low - Updates when system performs automated spot token transfers

Data Structure

Writer actions capture system operations for spot token transfers, indexed by user address, nonce, and EVM transaction hash:

{
"local_time": "2024-12-30T18:35:51.000000000",
"block_time": "2024-12-30T18:35:50.825613062",
"block_number": 805892411,
"events": [
[
"0x200000000000000000000000000000000000012b",
{
"user": "0x200000000000000000000000000000000000012b",
"nonce": 33554479,
"evm_tx_hash": "0x80b1b5b2f1fd3e7c68d7b2e6e0f5c0a7d4c3b2a1",
"action": {
"type": "SystemSpotSendAction",
"destination": "0x200000000000000000000000000000000000012b",
"token": 299,
"wei": "200000000000"
}
}
]
]
}

Field Definitions

Event Structure

Field
Type
Description
user
string
System user address (usually starts with 0x200000...)
nonce
integer
Unique nonce for the system operation
evm_tx_hash
string
Associated EVM transaction hash
action
object
Action details (see Action Structure below)

Action Structure

Field
Type
Description
type
string
Action type (e.g., "SystemSpotSendAction")
destination
string
Destination address for the token transfer
token
integer
Token ID (numeric identifier for the specific token)
wei
string
Transfer amount in wei (smallest unit)

API Usage

gRPC Streaming
// Subscribe to writer actions
const request = {
subscribe: {
stream_type: 'WRITER_ACTIONS',
start_block: 0,
filters: {
"user": ["0x200000000000000000000000000000000000012b"],
"action.type": ["SystemSpotSendAction"],
"action.token": [299, 269, 0]
}
}
};
JSON-RPC
# Get latest writer action blocks
curl -X POST https://your-endpoint.hype-mainnet.quiknode.pro/your-token/hypercore \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "hl_getLatestBlocks",
"params": {
"stream": "writer_actions",
"count": 10
},
"id": 1
}'
WebSocket
// Subscribe to writer actions with filters
ws.send(JSON.stringify({
"method": "hl_subscribe",
"params": {
"streams": ["writer_actions"],
"filters": {
"user": ["0x200000000000000000000000000000000000012b"],
"action.type": ["SystemSpotSendAction"],
"action.token": [299, 0]
}
}
}));

Example System Transfer Records

SystemSpotSendAction - Token ID 299
{
"user": "0x200000000000000000000000000000000000012b",
"nonce": 33554479,
"evm_tx_hash": "0x80b1b5b2f1fd3e7c68d7b2e6e0f5c0a7d4c3b2a1",
"action": {
"type": "SystemSpotSendAction",
"destination": "0x200000000000000000000000000000000000012b",
"token": 299,
"wei": "200000000000"
}
}
SystemSpotSendAction - Token ID 269
{
"user": "0x200000000000000000000000000000000000012c",
"nonce": 33554480,
"evm_tx_hash": "0x7a92c4d3e2f4b5c6d8e9f0a1b2c3d4e5f6a7b8c9",
"action": {
"type": "SystemSpotSendAction",
"destination": "0x200000000000000000000000000000000000012c",
"token": 269,
"wei": "55435839543"
}
}
SystemSpotSendAction - Token ID 0
{
"user": "0x200000000000000000000000000000000000012d",
"nonce": 33554481,
"evm_tx_hash": "0x6b83d5e4f1c2a3b4c5d6e7f8a9b0c1d2e3f4a5b6",
"action": {
"type": "SystemSpotSendAction",
"destination": "0x200000000000000000000000000000000000012d",
"token": 0,
"wei": "750000000000000000000"
}
}

Important Notes


  • System Operations: These are automated system-level transfers, not user-initiated transfers
  • Token IDs: Tokens are referenced by numeric IDs rather than symbol names (e.g., 299, 269, 0, 221)
  • Wei Format: All amounts are in wei format (smallest denomination) as strings
  • System Users: User addresses typically start with 0x200000000000000000000000000000000000 followed by incremental hex values
  • EVM Integration: Each action has an associated EVM transaction hash for cross-system tracking
  • SystemSpotSendAction: The primary action type for spot token transfers within the system

Token ID Reference

Common token IDs seen in system transfers:

  • Token ID 0 - Base token or ETH equivalent
  • Token ID 269 - System token (specific identity varies)
  • Token ID 299 - System token (specific identity varies)
  • Token ID 221 - System token (specific identity varies)

Note: Token ID mappings may vary.


  • Events - View balance changes and transfers that may trigger cross-environment moves
  • Blocks - See the raw L1 transactions that initiate these transfers
  • Trades - Monitor trading activity that may lead to asset movements
Share this doc