ValidatorSignWithdrawalAction
Validators sign withdrawal transactions to authorize bridge transfers to external addresses.
Sample Data#
{
"signature": {
"r": "0x62a3295228b569f9a08d3776a12bbb2bd56e75153c3dadefda97e84c1be87097",
"s": "0x5b7d385d6e32cbb89ed5fad01877ca78bf562e1333ae16fb1bcb7eca946ed7c6",
"v": 28
},
"action": {
"type": "ValidatorSignWithdrawalAction",
"user": "0x6275c773fa0d1fd29e39322afee475827171c26b",
"destination": "0xc2c9981b9061e533affaaf03105c561154f1ec84",
"usd": 15494002,
"nonce": 1768146916924000,
"signature": {
"r": "0x1e63066eff19a658f69813bf33d081f856846c684e1488b1d021ec5419ba2f0c",
"s": "0x8a56ce8e4ff9f0115fdef290e6ea2cc4364d9d0faa406a255a8f13df936a16d",
"v": 28
}
},
"nonce": 1768146734592
}
View this transaction on Hypurrscan →
Field Reference#
Action Fields#
| Field | Type | Description |
|---|---|---|
type | string | Always "ValidatorSignWithdrawalAction" |
user | string | User requesting withdrawal |
destination | string | External destination address |
nonce | number | Withdrawal nonce |
usd | number | Amount in raw units |
Use Cases#
Withdrawal Authorization Tracking#
Monitor validator withdrawal signatures:
def process_ValidatorSignWithdrawalAction(action):
user = action.get('user')
amount = action.get('usd') / 1_000_000
print(f"Withdrawal signed: ${amount:,.2f} for {user[:10]}...")
Related Action Types#
- withdraw3 - Initiate withdrawals
- VoteEthFinalizedWithdrawalAction - Finalization votes