Skip to main content

Writer Actions Dataset

Updated on
Apr 30, 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": "2026-04-30T19:10:43.217059852",
"block_time": "2026-04-30T19:10:43.060250073",
"block_number": 978911025,
"events": [
{
"user": "0x200000000000000000000000000000000000012b",
"nonce": 1184153,
"evm_tx_hash": "0x172a41083c44c9568494fbec81d11292e192938674b861e410e4a7e965235c67",
"action": {
"type": "SystemSpotSendAction",
"destination": "0x46bbfef00cde256f834340c50286dd7b495ca418",
"token": 299,
"wei": 56697105031
}
}
]
}

Field Definitions

Event Structure

FieldTypeDescription
userstringSystem user address (usually starts with 0x200000...)
nonceintegerUnique nonce for the system operation
evm_tx_hashstringAssociated EVM transaction hash
actionobjectAction details (see Action Structure below)

Action Structure

Two action types appear in this stream. The following fields are common to both:

FieldTypeDescription
typestringAction type: "SystemSpotSendAction" or "SystemSendAssetAction"
destinationstringDestination address for the token transfer
tokenintegerToken ID (numeric identifier for the specific token)
weiintegerTransfer amount in wei (smallest unit)

SystemSendAssetAction Additional Fields

SystemSendAssetAction events include three additional nullable fields not present on SystemSpotSendAction:

FieldTypeDescription
destinationDexOrSpotinteger|nullTarget DEX/spot index for the asset transfer (0 = default spot, null when not applicable)
fromSubAccountstring|nullSource sub-account address (null when not applicable)
sourceDexOrSpotinteger|nullSource DEX/spot index for the asset transfer (0 = default spot, null when not applicable)

API Usage

gRPC Streaming
// Subscribe to writer actions
const request = {
subscribe: {
stream_type: 'WRITER_ACTIONS',
filters: {
user: { values: ['0x2000000000000000000000000000000000000001'] },
type: { values: ['SystemSpotSendAction'] }
}
}
};
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: ['0x2000000000000000000000000000000000000001'],
type: ['SystemSpotSendAction']
}
}
}));

Example System Transfer Records

SystemSendAssetAction
{
"user": "0x6af3bccd77314d35d47317e1d1bc17df248c991f",
"nonce": 1184125,
"evm_tx_hash": "0x299c90b15e410587841ab057f84faafa4d076a26db53c34a35231fe7dc4361bf",
"action": {
"type": "SystemSendAssetAction",
"destination": "0x6043daf4fbd6bd60601d277312a0664551302e70",
"fromSubAccount": null,
"sourceDexOrSpot": 0,
"destinationDexOrSpot": 0,
"token": 0,
"wei": 1882600
}
}
SystemSpotSendAction - Token ID 299
{
"user": "0x200000000000000000000000000000000000012b",
"nonce": 1184153,
"evm_tx_hash": "0x172a41083c44c9568494fbec81d11292e192938674b861e410e4a7e965235c67",
"action": {
"type": "SystemSpotSendAction",
"destination": "0x46bbfef00cde256f834340c50286dd7b495ca418",
"token": 299,
"wei": 56697105031
}
}
SystemSpotSendAction - Token ID 268
{
"user": "0x200000000000000000000000000000000000010c",
"nonce": 1184131,
"evm_tx_hash": "0x350349ac511ce5c8b02964999538653a508b1ad770bc10e1921b563f0f67177c",
"action": {
"type": "SystemSpotSendAction",
"destination": "0x796bc4eb6cc934d3432d5d08c74f2d957f60e7bc",
"token": 268,
"wei": 427229100
}
}
SystemSpotSendAction - Token ID 0
{
"user": "0x2000000000000000000000000000000000000000",
"nonce": 1184132,
"evm_tx_hash": "0xba6756dc9cbd35cfe2deb90686271df9981c6442c7f85226ce0738d5494a4649",
"action": {
"type": "SystemSpotSendAction",
"destination": "0x6b9e773128f453f5c2c60935ee2de2cbc5390a24",
"token": 0,
"wei": 1738000000
}
}

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., 0, 221, 269, 299)
  • Wei Format: All amounts are in wei format (smallest denomination) as integers
  • User Addresses: Often system addresses starting with 0x200000000000000000000000000000000000, but SystemSendAssetAction events can also have regular user addresses
  • 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 221 - System token (specific identity varies)
  • Token ID 269 - System token (specific identity varies)
  • Token ID 299 - System token (specific identity varies)

Note: Many token IDs appear in practice — the full mapping is available via the Hyperliquid spotMeta Info API endpoint.


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