Skip to main content

VoteEthFinalizedWithdrawalAction

Validators vote to confirm that a withdrawal transaction has been finalized on Arbitrum. This completes the bridge withdrawal process.

Sample Data#

{
"signature": {
"r": "0x8e85e979af4151570ff20d1c17d380cd244f7b373df4082de4a271f2df8c2e3b",
"s": "0x5855f07fcaf680d3213b3aea27c4b51cbfcd5681678a3b3264ad71a39d245c4c",
"v": 28
},
"action": {
"type": "VoteEthFinalizedWithdrawalAction",
"user": "0xe095f4cc38ae81839c368a83ad906544aed36564",
"destination": "0xe095f4cc38ae81839c368a83ad906544aed36564",
"nonce": 1768146676227000,
"usd": 15082681,
"ethTxHash": "0xac1d8a6cea30fcce8527c823941239c621075ddcaebd8347ef8aa2df03659ea8"
},
"nonce": 1768146734586
}

View this transaction on Hypurrscan →

Field Reference#

Action Fields#

FieldTypeDescription
typestringAlways "VoteEthFinalizedWithdrawalAction"
userstringAddress of the user who initiated the withdrawal
destinationstringDestination address on Arbitrum
noncenumberWithdrawal nonce
usdnumberWithdrawal amount in raw units (6 decimals)
ethTxHashstringTransaction hash of the withdrawal on Arbitrum

Withdrawal Finalization Process#

  1. User submits withdraw3 action
  2. Validators sign the withdrawal (ValidatorSignWithdrawalAction)
  3. Bridge transaction executes on Arbitrum
  4. Validators vote to confirm finalization (VoteEthFinalizedWithdrawalAction)
  5. Withdrawal is marked complete

Use Cases#

Withdrawal Completion Tracking#

Monitor withdrawal finalization:

def process_VoteEthFinalizedWithdrawalAction(action):
user = action.get('user')
destination = action.get('destination')
amount = action.get('usd') / 1_000_000

print(f"Withdrawal finalized: ${amount:,.2f} from {user[:10]}... to {destination[:10]}...")

Bridge Health Monitoring#

Track withdrawal finalization rates and latencies.

Validator Consensus Analysis#

Monitor validator participation in withdrawal confirmations.