Skip to content

Commit a2a6e5d

Browse files
authored
fix(docs): sequencer fee recipient removal (#17809)
2 parents 921976a + 98e3d51 commit a2a6e5d

File tree

2 files changed

+44
-70
lines changed

2 files changed

+44
-70
lines changed

docs/docs/the_aztec_network/setup/sequencer_management.md

Lines changed: 22 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,9 @@ Sequencer nodes are critical infrastructure responsible for ordering transaction
1515
2. Attest to correct execution of transactions in proposed blocks (when part of the sequencer committee)
1616
3. Submit successfully attested blocks to L1
1717

18-
Before publication, blocks must be validated by a committee of sequencer nodes who re-execute public transactions and verify private function proofs. Committee members attest to validity by signing the block header. Once sufficient attestations are collected (two-thirds of the committee plus one), the block can be submitted to L1.
18+
Before publication, blocks must be validated by a committee of sequencer nodes who re-execute public transactions and verify private function proofs. Committee members attest to validity by signing the block header.
19+
20+
Once sufficient attestations are collected (two-thirds of the committee plus one), the block can be submitted to L1.
1921

2022
### Minimum Hardware Requirements
2123

@@ -43,8 +45,7 @@ The keystore file (`keystore.json`) uses the following structure:
4345
{
4446
"attester": ["ETH_PRIVATE_KEY_0"],
4547
"publisher": ["ETH_PRIVATE_KEY_1"],
46-
"coinbase": "ETH_ADDRESS_2",
47-
"feeRecipient": "AZTEC_ADDRESS_0"
48+
"coinbase": "ETH_ADDRESS_2"
4849
}
4950
]
5051
}
@@ -66,26 +67,19 @@ Private key for sending block proposals to L1. This account needs ETH funding to
6667

6768
- **Format**: Array of Ethereum private keys
6869
- **Default**: Uses attester key if not specified
69-
- **Requirement**: Must be funded with at least 0.1 ETH to avoid slashing
70+
**Rule of thumb**: Ensure every publisher account maintains at least 0.1 ETH per attester account it serves. This balance allows the selected publisher to successfully post transactions when chosen.
7071

7172
:::tip
7273
If you're using the same key for both attester and publisher, you can omit the `publisher` field entirely from your keystore.
7374
:::
7475

7576
#### coinbase (optional)
7677

77-
Ethereum address receiving L1 rewards and fees.
78+
Ethereum address that receives all L1 block rewards and tx fees.
7879

7980
- **Format**: Ethereum address
8081
- **Default**: Uses attester address if not specified
8182

82-
#### feeRecipient (required)
83-
84-
Aztec address receiving unburnt transaction fees from blocks you produce.
85-
86-
- **Format**: Aztec address
87-
- **Requirement**: Must be a deployed Aztec account
88-
8983
### Generating Keys
9084

9185
Before creating your keystore file, you'll need to generate the required keys.
@@ -102,19 +96,7 @@ cast wallet new-mnemonic --words 24
10296
# Save these securely - you'll need the private key for the keystore
10397
```
10498

105-
At minimum, you need one Ethereum private key for the `attester` field. Optionally, you can generate a separate key for the `publisher` field.
106-
107-
#### Aztec Fee Recipient Address
108-
109-
Follow the [Getting Started on Testnet](../../developers/getting_started_on_testnet.md#getting-started-on-testnet) guide to create and deploy an Aztec account, then use that account's address as your `feeRecipient`.
110-
111-
:::warning Save Account Recovery Information
112-
When you create your Aztec account for the `feeRecipient`, make sure to save:
113-
- The contract artifact version you used for deployment
114-
- The deployment information (address, secret key, etc.)
115-
116-
This information is required to recover your account in the future and access your sequencer fees.
117-
:::
99+
At a minimum, you need one Ethereum private key for the `attester` field. Optionally, you can generate a separate key for the `publisher` field and a separate address for the `coinbase` field.
118100

119101
## Setup with Docker Compose
120102

@@ -139,8 +121,7 @@ Create a `keystore.json` file in your `aztec-sequencer/keys` folder with your ge
139121
{
140122
"attester": ["ETH_PRIVATE_KEY_0"],
141123
"publisher": ["ETH_PRIVATE_KEY_1"],
142-
"coinbase": "ETH_ADDRESS_2",
143-
"feeRecipient": "AZTEC_ADDRESS_0"
124+
"coinbase": "ETH_ADDRESS_2"
144125
}
145126
]
146127
}
@@ -149,7 +130,13 @@ Create a `keystore.json` file in your `aztec-sequencer/keys` folder with your ge
149130
Replace the placeholder values with your actual keys and addresses generated in the previous section.
150131

151132
:::warning
152-
Because the publisher posts block proposals to L1, the account needs to be funded with ETH. Ensure the account holds at least 0.1 ETH during operation of the sequencer to avoid being slashed.
133+
Publisher accounts submit block proposals to L1. Each publisher operates independently, and the system does not retry with another publisher if a transaction fails due to insufficient funds.
134+
135+
**Examples**:
136+
- 3 attesters with 1 publisher → Maintain ≥ 0.3 ETH in that publisher account
137+
- 3 attesters with 2 publishers → Maintain ≥ 0.15 ETH in each publisher account (0.3 ETH total)
138+
139+
Maintaining these minimum balances prevents failed block publications caused by low gas funds.
153140
:::
154141

155142
### Step 3: Configure Environment Variables
@@ -322,12 +309,12 @@ This returns an `AttesterView` struct containing:
322309
323310
### Performance Monitoring
324311
325-
Monitor your sequencer's performance by tracking:
326-
- Effective balance (should remain above the ejection threshold)
327-
- Status (should be VALIDATING for active participation)
328-
- Attestation rate (how many attestations you've successfully submitted)
329-
- Proposal success rate (how many of your proposed blocks were accepted)
330-
- Network participation metrics
312+
Track your sequencer's performance by monitoring:
313+
- **Effective balance** - Should remain above the ejection threshold
314+
- **Status** - Should be VALIDATING for active participation
315+
- **Attestation rate** - How many attestations you've successfully submitted
316+
- **Proposal success rate** - How many of your proposed blocks were accepted
317+
- **Network participation metrics** - Overall participation in network consensus
331318
332319
## Exiting a Sequencer
333320
@@ -361,7 +348,7 @@ Information about the exit process will be added when the mechanism is finalized
361348
**Issue**: Keystore not loading or errors about invalid keys.
362349
363350
**Solutions**:
364-
- Ensure keystore.json is properly formatted
351+
- Ensure `keystore.json` is properly formatted
365352
- Verify private keys are valid Ethereum private keys
366353
- Check file permissions on the keys directory
367354

docs/versioned_docs/version-v2.0.2/the_aztec_network/setup/sequencer_management.md

Lines changed: 22 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,9 @@ Sequencer nodes are critical infrastructure responsible for ordering transaction
1515
2. Attest to correct execution of transactions in proposed blocks (when part of the sequencer committee)
1616
3. Submit successfully attested blocks to L1
1717

18-
Before publication, blocks must be validated by a committee of sequencer nodes who re-execute public transactions and verify private function proofs. Committee members attest to validity by signing the block header. Once sufficient attestations are collected (two-thirds of the committee plus one), the block can be submitted to L1.
18+
Before publication, blocks must be validated by a committee of sequencer nodes who re-execute public transactions and verify private function proofs. Committee members attest to validity by signing the block header.
19+
20+
Once sufficient attestations are collected (two-thirds of the committee plus one), the block can be submitted to L1.
1921

2022
### Minimum Hardware Requirements
2123

@@ -43,8 +45,7 @@ The keystore file (`keystore.json`) uses the following structure:
4345
{
4446
"attester": ["ETH_PRIVATE_KEY_0"],
4547
"publisher": ["ETH_PRIVATE_KEY_1"],
46-
"coinbase": "ETH_ADDRESS_2",
47-
"feeRecipient": "AZTEC_ADDRESS_0"
48+
"coinbase": "ETH_ADDRESS_2"
4849
}
4950
]
5051
}
@@ -66,26 +67,19 @@ Private key for sending block proposals to L1. This account needs ETH funding to
6667

6768
- **Format**: Array of Ethereum private keys
6869
- **Default**: Uses attester key if not specified
69-
- **Requirement**: Must be funded with at least 0.1 ETH to avoid slashing
70+
**Rule of thumb**: Ensure every publisher account maintains at least 0.1 ETH per attester account it serves. This balance allows the selected publisher to successfully post transactions when chosen.
7071

7172
:::tip
7273
If you're using the same key for both attester and publisher, you can omit the `publisher` field entirely from your keystore.
7374
:::
7475

7576
#### coinbase (optional)
7677

77-
Ethereum address receiving L1 rewards and fees.
78+
Ethereum address that receives all L1 block rewards and tx fees.
7879

7980
- **Format**: Ethereum address
8081
- **Default**: Uses attester address if not specified
8182

82-
#### feeRecipient (required)
83-
84-
Aztec address receiving unburnt transaction fees from blocks you produce.
85-
86-
- **Format**: Aztec address
87-
- **Requirement**: Must be a deployed Aztec account
88-
8983
### Generating Keys
9084

9185
Before creating your keystore file, you'll need to generate the required keys.
@@ -102,19 +96,7 @@ cast wallet new-mnemonic --words 24
10296
# Save these securely - you'll need the private key for the keystore
10397
```
10498

105-
At minimum, you need one Ethereum private key for the `attester` field. Optionally, you can generate a separate key for the `publisher` field.
106-
107-
#### Aztec Fee Recipient Address
108-
109-
Follow the [Getting Started on Testnet](../../developers/getting_started_on_testnet.md#getting-started-on-testnet) guide to create and deploy an Aztec account, then use that account's address as your `feeRecipient`.
110-
111-
:::warning Save Account Recovery Information
112-
When you create your Aztec account for the `feeRecipient`, make sure to save:
113-
- The contract artifact version you used for deployment
114-
- The deployment information (address, secret key, etc.)
115-
116-
This information is required to recover your account in the future and access your sequencer fees.
117-
:::
99+
At a minimum, you need one Ethereum private key for the `attester` field. Optionally, you can generate a separate key for the `publisher` field and a separate address for the `coinbase` field.
118100

119101
## Setup with Docker Compose
120102

@@ -139,8 +121,7 @@ Create a `keystore.json` file in your `aztec-sequencer/keys` folder with your ge
139121
{
140122
"attester": ["ETH_PRIVATE_KEY_0"],
141123
"publisher": ["ETH_PRIVATE_KEY_1"],
142-
"coinbase": "ETH_ADDRESS_2",
143-
"feeRecipient": "AZTEC_ADDRESS_0"
124+
"coinbase": "ETH_ADDRESS_2"
144125
}
145126
]
146127
}
@@ -149,7 +130,13 @@ Create a `keystore.json` file in your `aztec-sequencer/keys` folder with your ge
149130
Replace the placeholder values with your actual keys and addresses generated in the previous section.
150131

151132
:::warning
152-
Because the publisher posts block proposals to L1, the account needs to be funded with ETH. Ensure the account holds at least 0.1 ETH during operation of the sequencer to avoid being slashed.
133+
Publisher accounts submit block proposals to L1. Each publisher operates independently, and the system does not retry with another publisher if a transaction fails due to insufficient funds.
134+
135+
**Examples**:
136+
- 3 attesters with 1 publisher → Maintain ≥ 0.3 ETH in that publisher account
137+
- 3 attesters with 2 publishers → Maintain ≥ 0.15 ETH in each publisher account (0.3 ETH total)
138+
139+
Maintaining these minimum balances prevents failed block publications caused by low gas funds.
153140
:::
154141

155142
### Step 3: Configure Environment Variables
@@ -322,12 +309,12 @@ This returns an `AttesterView` struct containing:
322309
323310
### Performance Monitoring
324311
325-
Monitor your sequencer's performance by tracking:
326-
- Effective balance (should remain above the ejection threshold)
327-
- Status (should be VALIDATING for active participation)
328-
- Attestation rate (how many attestations you've successfully submitted)
329-
- Proposal success rate (how many of your proposed blocks were accepted)
330-
- Network participation metrics
312+
Track your sequencer's performance by monitoring:
313+
- **Effective balance** - Should remain above the ejection threshold
314+
- **Status** - Should be VALIDATING for active participation
315+
- **Attestation rate** - How many attestations you've successfully submitted
316+
- **Proposal success rate** - How many of your proposed blocks were accepted
317+
- **Network participation metrics** - Overall participation in network consensus
331318
332319
## Exiting a Sequencer
333320
@@ -361,7 +348,7 @@ Information about the exit process will be added when the mechanism is finalized
361348
**Issue**: Keystore not loading or errors about invalid keys.
362349
363350
**Solutions**:
364-
- Ensure keystore.json is properly formatted
351+
- Ensure `keystore.json` is properly formatted
365352
- Verify private keys are valid Ethereum private keys
366353
- Check file permissions on the keys directory
367354

0 commit comments

Comments
 (0)