VoteEthDepositAction
Validators vote to confirm ETH deposit transactions from the bridge contract. This is part of the cross-chain consensus mechanism that secures deposits from Arbitrum to Hyperliquid.
Sample Data#
{
"signature": {
"r": "0x74e0218199716f8217518bcb72240de1c17ff6e6682fbacdd820e60c13ac0454",
"s": "0x4a5a442f5dad771b48f3852b4d96cc561de2804b6c1853e8d1548015a732b89f",
"v": 28
},
"action": {
"type": "VoteEthDepositAction",
"user": "0x09a8c041c8d966ddb20b2ea5b556ef0318365182",
"usd": 90391034,
"ethId": {
"block_number": 420281244,
"tx_index": 25,
"event_type": "Deposit",
"event_index": 0,
"tx_hash": "0x107c5fc0f824b2993b28ade0560cb732b0f25df4a47a777c47be108c432ce933"
}
},
"nonce": 1768146734681
}
View this transaction on Hypurrscan →
Field Reference#
Action Fields#
| Field | Type | Description |
|---|---|---|
type | string | Always "VoteEthDepositAction" |
user | string | Address of the user who made the deposit |
usd | number | Deposit amount in raw units (6 decimals) |
ethTxHash | string | Transaction hash of the deposit on Arbitrum |
Bridge Consensus Process#
- User deposits funds to bridge contract on Arbitrum
- Validators observe the deposit transaction
- Validators submit
VoteEthDepositActionvotes - Once threshold is reached, funds are credited on Hyperliquid
Use Cases#
Bridge Monitoring#
Track deposit confirmations across the bridge:
def process_VoteEthDepositAction(action):
user = action.get('user')
amount = action.get('usd') / 1_000_000
eth_tx = action.get('ethTxHash')
print(f"Deposit vote: ${amount:,.2f} for {user[:10]}... (tx: {eth_tx[:10]}...)")
Validator Activity Tracking#
Monitor which validators are actively participating in bridge consensus.
Deposit Latency Analysis#
Track time from Arbitrum transaction to Hyperliquid credit.
Related Action Types#
- VoteEthFinalizedWithdrawalAction - Withdrawal votes
- ValidatorSignWithdrawalAction - Withdrawal signatures
- voteAppHash - Application state votes