v4.0.0 (from v3.0.0)
Overview
Migration difficulty: TODO
Breaking changes
Node.js upgraded to v24
Node.js minimum version changed from v22 to v24.12.0.
Bot fee padding configuration renamed
The bot configuration for fee padding has been renamed from "base fee" to "min fee".
v3.x:
--bot.baseFeePadding <value> ($BOT_BASE_FEE_PADDING)
v4.0.0:
--bot.minFeePadding <value> ($BOT_MIN_FEE_PADDING)
Migration: Update your configuration to use the new flag name and environment variable.
L2Tips API restructured with checkpoint information
The getL2Tips() RPC endpoint now returns a restructured response with additional checkpoint tracking.
v3.x response:
{
"latest": { "number": 100, "hash": "0x..." },
"proven": { "number": 98, "hash": "0x..." },
"finalized": { "number": 95, "hash": "0x..." }
}
v4.0.0 response:
{
"proposed": { "number": 100, "hash": "0x..." },
"checkpointed": {
"block": { "number": 99, "hash": "0x..." },
"checkpoint": { "number": 10, "hash": "0x..." }
},
"proven": {
"block": { "number": 98, "hash": "0x..." },
"checkpoint": { "number": 9, "hash": "0x..." }
},
"finalized": {
"block": { "number": 95, "hash": "0x..." },
"checkpoint": { "number": 8, "hash": "0x..." }
}
}
Migration:
- Replace
tips.latestwithtips.proposed - For
checkpointed,proven, andfinalizedtips, access block info via.block(e.g.,tips.proven.block.number)
Removed features
New features
Initial ETH per fee asset configuration
A new environment variable AZTEC_INITIAL_ETH_PER_FEE_ASSET has been added to configure the initial exchange rate between ETH and the fee asset (AZTEC) at contract deployment. This value uses 1e12 precision.
Default: 10000000 (0.00001 ETH per AZTEC)
Configuration:
--initialEthPerFeeAsset <value> ($AZTEC_INITIAL_ETH_PER_FEE_ASSET)
This replaces the previous hardcoded default and allows network operators to set the starting price point for the fee asset.
reloadKeystore admin RPC endpoint
Node operators can now update validator attester keys, coinbase, and fee recipient without restarting the node by calling the new reloadKeystore admin RPC endpoint.
What is updated on reload:
- Validator attester keys (add, remove, or replace)
- Coinbase and fee recipient per validator
- Publisher-to-validator mapping
What is NOT updated (requires restart):
- L1 publisher signers
- Prover keys
- HA signer connections
New validators must use a publisher key already initialized at startup. Reload is rejected with a clear error if validation fails.
Admin API key authentication
The admin JSON-RPC endpoint now supports auto-generated API key authentication.
Behavior:
- A cryptographically secure API key is auto-generated at first startup and displayed once via stdout
- Only the SHA-256 hash is persisted to
<dataDirectory>/admin/api_key_hash - The key is reused across restarts when
--data-directoryis set - Supports both
x-api-keyandAuthorization: Bearer <key>headers - Health check endpoint (
GET /status) is excluded from auth (for k8s probes)
Configuration:
--admin-api-key-hash <hex> ($AZTEC_ADMIN_API_KEY_HASH) # Use a pre-generated SHA-256 key hash
--no-admin-api-key ($AZTEC_NO_ADMIN_API_KEY) # Disable auth entirely
--reset-admin-api-key ($AZTEC_RESET_ADMIN_API_KEY) # Force key regeneration
Helm charts: Admin API key auth is disabled by default (noAdminApiKey: true). Set to false in production values to enable.
Migration: No action required — auth is opt-out. To enable, ensure --no-admin-api-key is not set and note the key printed at startup.
Transaction pool error codes for RPC callers
Transaction submission via RPC now returns structured rejection codes when a transaction is rejected by the mempool:
LOW_PRIORITY_FEE— tx priority fee is too lowINSUFFICIENT_FEE_PAYER_BALANCE— fee payer doesn't have enough balanceNULLIFIER_CONFLICT— conflicting nullifier already in pool
Impact: Improved developer experience — callers can now programmatically handle specific rejection reasons.
Changed defaults
Troubleshooting
Next steps
- How to Run a Sequencer Node - Updated setup instructions
- Advanced Keystore Usage - Keystore configuration
- Ethereum RPC Calls Reference - Infrastructure requirements
- Aztec Discord - Upgrade support