tokenDelegate
Delegate (stake) tokens to a validator or undelegate them. This enables token holders to participate in network security and earn staking rewards.
Sample Data#
{
"signature": {
"r": "0xd3d8ea7bf5d7699274f77d6527be0a78f137cb7f41e8b90b87de639b1f4d5704",
"s": "0x7041f94160b4b38e516507a201e5f65872fb7e9ce2522b901b31621048fbb653",
"v": 27
},
"action": {
"type": "tokenDelegate",
"signatureChainId": "0xa4b1",
"hyperliquidChain": "Mainnet",
"validator": "0xa23b4556090260828ff3f939d2dbdd4f318b5f1f",
"wei": 10000000000,
"isUndelegate": false,
"nonce": 1768148103446
},
"nonce": 1768148103446
}
View this transaction on Hypurrscan →
Field Reference#
Action Fields#
| Field | Type | Description |
|---|---|---|
type | string | Always "tokenDelegate" |
signatureChainId | string | Chain ID for EIP-712 signing |
hyperliquidChain | string | Target chain: "Mainnet" or "Testnet" |
validator | string | Validator address to delegate to |
wei | number | Amount in wei (smallest unit) |
isUndelegate | boolean | true to undelegate, false to delegate |
nonce | number | Transaction nonce |
Amount Conversion#
The wei field is in the smallest token unit:
14494791496000wei = 14.49 tokens (assuming 12 decimals)
Use Cases#
Staking Analytics#
Track delegation and undelegation patterns:
def process_tokenDelegate_action(action):
validator = action.get('validator')
amount_wei = action.get('wei')
is_undelegate = action.get('isUndelegate')
direction = 'undelegated from' if is_undelegate else 'delegated to'
print(f"Tokens {direction} validator {validator[:10]}...")
Validator Monitoring#
Track which validators are gaining or losing stake.
Network Security Analysis#
Monitor total stake and distribution across validators.
Related Action Types#
- claimRewards - Claim staking rewards
- voteAppHash - Validator voting