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',
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": {
"streamType": "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
0x200000000000000000000000000000000000followed 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.