Overview
The Writer Actions stream contains system-level write operations recorded with an associated EVM transaction hash, including automated spot token transfers and ledger delta operations such as vault creation, staking transfers, and account activation events.
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
| 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
Multiple action types appear in this stream. The two system transfer types (SystemSpotSendAction and SystemSendAssetAction) share these common fields:
| Field | Type | Description |
|---|---|---|
| type | string | Action type; see System Transfer Types and Ledger Delta Types below |
| destination | string | Destination address for the token transfer |
| token | integer | Token ID (numeric identifier for the specific token) |
| wei | integer | Transfer amount in wei (smallest unit) |
SystemSendAssetAction Additional Fields
SystemSendAssetAction events include three additional nullable fields not present on SystemSpotSendAction:
| Field | Type | Description |
|---|---|---|
| destinationDexOrSpot | integer|null | Target DEX/spot index for the asset transfer (0 = default spot, null when not applicable) |
| fromSubAccount | string|null | Source sub-account address (null when not applicable) |
| sourceDexOrSpot | integer|null | Source DEX/spot index for the asset transfer (0 = default spot, null when not applicable) |
Ledger Delta Action Types
The following action types also appear in the writer actions stream. They record state changes written atomically with an EVM transaction hash but carry a different field layout than the system transfer types above; destination, token, and wei do not apply. See the Events dataset for the full field definitions for each delta type.
| Action Type | Description | Key Fields |
|---|---|---|
| internalTransfer | System-initiated internal asset movement | usdc, user, destination, fee |
| vaultCreate | Creation of a new managed investment vault | vault, usdc |
| vaultLeaderCommission | Commission payment to the vault leader | user, usdc |
| cStakingTransfer | Cross-chain staking deposit or withdrawal (e.g., bridging HYPE for staking) | token, amount, isDeposit |
| accountActivationGas | Gas fee charged for activating a new account | amount, token |
| activateDexAbstraction | Activates DEX abstraction and seeds the user's DEX sub-account | dex, token, amount |
API Usage
gRPC Streaming
// Subscribe to writer actions
const request = {
subscribe: {
stream_type: 'WRITER_ACTIONS',
filters: {
user: { values: ['0x2000000000000000000000000000000000000001'] },
type: { values: ['SystemSpotSendAction', 'vaultCreate', 'cStakingTransfer'] }
}
}
};
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', 'vaultCreate', 'cStakingTransfer']
}
}
}));
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 operations, not user-initiated transfers
- Multiple Action Types: In addition to
SystemSpotSendActionandSystemSendAssetAction, ledger delta types such asinternalTransfer,vaultCreate,vaultLeaderCommission,cStakingTransfer,accountActivationGas, andactivateDexAbstractioncan appear in this stream - Token IDs: Tokens are referenced by numeric IDs rather than symbol names (e.g., 0, 221, 269, 299) for the system transfer types
- Wei Format: All amounts are in wei format (smallest denomination) as integers for the system transfer types
- User Addresses: Often system addresses starting with
0x200000000000000000000000000000000000, butSystemSendAssetActionand ledger delta events can also have regular user addresses - EVM Integration: Each action has an associated EVM transaction hash for cross-system tracking
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.