Skip to content

Commit d84ca63

Browse files
committed
docs(validators): require operator gas funding
1 parent bce252b commit d84ca63

1 file changed

Lines changed: 26 additions & 3 deletions

File tree

‎pages/validators/setup-guide.mdx‎

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ GenLayer validators use three distinct addresses:
103103
| Address | Description | Where Used |
104104
|---------|-------------|------------|
105105
| **Owner** | The only address that can withdraw staked funds. Keep this secure (cold wallet). | CLI wizard - signs staking transaction |
106-
| **Operator** | Hot wallet on your server that signs blocks. Can be same as owner, but separate is recommended. | Node config: `operatorAddress` |
106+
| **Operator** | Hot wallet on your server that signs blocks and submits validator transactions. It must hold liquid GEN to pay gas. Can be the same as the owner, but a separate account is recommended. | Node config: `operatorAddress` |
107107
| **Validator Wallet** | Smart contract created when you join. This is your validator's on-chain identity. | Node config: `validatorWalletAddress` |
108108

109109
The wizard outputs all three addresses at the end. Save them - you'll need the Validator Wallet and Operator addresses for your node configuration.
@@ -118,7 +118,7 @@ The wizard outputs all three addresses at the end. Save them - you'll need the V
118118
```bash copy
119119
npm install -g genlayer
120120
```
121-
- **GEN tokens** - You need at least **42,000 GEN** for the minimum self-stake requirement
121+
- **GEN tokens** - You need at least **42,000 GEN** for the minimum self-stake requirement, plus a separate liquid balance for operator gas if you use a different operator account
122122

123123
### Using the Validator Wizard
124124

@@ -146,6 +146,28 @@ The wizard guides you through:
146146

147147
The wizard creates and exports an operator keystore file for you to transfer to your validator server. If your server is compromised, your staked funds (controlled by owner) remain safe.
148148

149+
#### Fund the Operator Wallet
150+
151+
The operator signs and submits on-chain validator duties, including epoch priming, proposals, votes, and finalization. A separate operator therefore needs a liquid GEN balance for gas. GEN staked through the Validator Wallet, including vesting-backed stake, cannot pay the operator's gas.
152+
153+
Send a gas buffer to the operator address from a funded account before starting the node. You can use your wallet UI or, when the funding account is stored in the CLI, run:
154+
155+
```bash copy
156+
genlayer account send 0xYourOperatorAddress... 10gen
157+
```
158+
159+
The required buffer depends on network activity and gas prices. Monitor and top it up before it runs out. Verify the operator balance on the node's target network:
160+
161+
```bash copy
162+
genlayer balances --beneficiary 0xYourOperatorAddress...
163+
```
164+
165+
<Callout type="warning" emoji="⛽">
166+
A zero operator balance prevents priming and other consensus transactions even
167+
when the Validator Wallet has enough stake. The node can remain synced while
168+
missing validator duties, so verify this balance independently of sync health.
169+
</Callout>
170+
149171
### Verify Your Validator
150172

151173
After completing the wizard, verify your status:
@@ -599,8 +621,9 @@ Once you have configured everything, you are ready to start the node.
599621
**Important:** Before starting the node, ensure you have:
600622
1. **Operator key** imported into the node (see "Import the Operator Key" above)
601623
2. **Validator wallet address** - obtained after joining as validator via `genlayer staking wizard` or `validator-join`
624+
3. **Funded operator address** - the configured operator must hold liquid GEN for priming and other validator transaction gas (see "Fund the Operator Wallet" above)
602625

603-
Without both configured, your node will run as a full node instead of a validator.
626+
Without the operator key and Validator Wallet configured, your node will run as a full node instead of a validator. Without operator gas, it cannot submit validator duties.
604627
</Callout>
605628

606629
#### Running the Node using the binary

0 commit comments

Comments
 (0)