Gnosis Chain underwent Shanghai/Capella Hardfork successfully on August 1 2023, 11:34:20 UTC (slot 10 379 264, epoch 648 704).
What is Validator Withdrawal?
Validator withdrawal moves a validator’s balance from the Beacon Chain to the Execution Layer, paid out in GNO to the validator’s withdrawal address (set with --eth1_withdrawal_address
when generating validator keys).
There are two kinds of withdrawals:
Type | Trigger | What happens? |
---|---|---|
Partial | Automatic | Any balance above 1 GNO is swept to the withdrawal address. |
Full | Validator signs and broadcasts a voluntary_exit (irreversible) | The entire balance is withdrawn to the withdrawal address. |
What is the difference between validator withdrawal on Gnosis Chain and Ethereum?
- For users: the experience is identical – funds simply arrive at the withdrawal address.
- Under the hood: Gnosis Chain uses a smart‑contract (the same address as the deposit contract) to pay out GNO. If the contract temporarily lacks GNO, queued withdrawals are retried once topped up and drained at a fixed rate (4‑16 per slot, TBD).
References
What action should a validator take?
1 · Check your withdrawal credential prefix
Gnosis Chain supports two execution‑address credential prefixes:
Prefix | Behaviour on Gnosis Chain | Best for |
---|---|---|
0x02 | Recommended. Supports active partial withdrawals exactly like Ethereum. | All new validators and anyone who wants frequent partial withdrawals. |
0x01 | Legacy auto‑sweep. Fully automatic partial withdrawals: every couple of days the contract sweeps any balance above 1 GNO to the withdrawal address. Does not support validator‑initiated partial withdrawals. | Validators that don’t mind waiting for automatic sweeps or plan to exit soon. |
0x00 | BLS‑only prefix (no execution address). No withdrawals possible until upgraded. | Must be converted to 0x02 (or at least 0x01 ). |
If you created keys with
--eth1_withdrawal_address
, you already have0x02
and are good to go.
How to check
- Look up your validator on gnosischa.in → Withdrawal tab, or
- Open the
deposit‑m*.json
file you saved when staking and examinewithdrawal_credentials
.
2 · Change your credential (BLS‑to‑Execution)
If you are on 0x00
or want to switch from 0x01
to 0x02
, perform a BLS‑to‑Execution change.
- Generate the change file with
ethdo
. Example (online machine):
ethdo validator credentials set \
--connection=http://localhost:<BEACON_PORT> \
--prepare-offline
- Sign it on an offline machine:
ethdo validator credentials set \
--offline \
--mnemonic="abandon abandon … art" \
--withdrawal-address=0xYourExecAddress \
--eip4844-prefix=0x02 # ensures 0x02
- Broadcast the resulting
change-operations.json
either via the broadcast tool or withcurl
:
curl -d @change-operations.json \
-H "Content-Type: application/json" \
-X POST http://127.0.0.1:<BEACON_PORT>/eth/v1/beacon/pool/bls_to_execution_changes
Full step‑by‑step (online/offline) guide
Online and Offline process
The process contains three steps.
- Generate data on the online computer.
- Create
change-operations.json
on an offline computer. - Broadcast the change to the Gnosis network.
Prerequisites
- Download
ethdo
on the online computer:
wget https://github.com/wealdtech/ethdo/releases/download/<version>/ethdo-<version>-linux-amd64.tar.gz
- Extract and verify installation:
tar -xvf ethdo-<version>-linux-amd64.tar.gz
./ethdo --help
… (rest of original tutorial unchanged for brevity) …
Further references
- Changing withdrawal credential by ethdo
- BLS-to‑Execution with ethdo
- Teku
postBlsToExecutionChange
API
3 · Claiming your GNO (partial and full withdrawals)
Because Gnosis Chain pays out GNO rather than the gas token (xDai), withdrawals are not sent automatically to your address. After the Beacon‑chain message has executed you must claim the GNO from the withdrawal contract: 0x0B98057eA310F4d31F2a452B414647007d1645d9
.
-
Connect any wallet on Gnosis Chain (it does not have to be the validator address).
-
Use:
claimWithdrawal(address validatorRecipient)
– single validator, orclaimWithdrawals(address[] validatorRecipients)
– batch.
-
Enter the withdrawal (recipient) address exactly as displayed on gnosischa.in.
-
Sign & send – on confirmation the GNO appears at the recipient address.
The
withdrawal address
and therecipient address
are identical. Do not paste the long internal address you may see elsewhere.