Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions zeronet/2026-06-24-system-deploy/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
include ../../Makefile
include ../../Multisig.mk
include ../.env

CONTRACTS_REPO := $(abspath ../../../contracts)
TASK_DIR := $(abspath .)
DEPLOY_SCRIPT := scripts/deploy/SystemDeploy.s.sol:SystemDeploy
SALT_MIXER ?= salt mixer

##
# Simulation (no broadcast)
##
.PHONY: simulate
simulate:
cd $(CONTRACTS_REPO) && \
DEPLOY_CONFIG_PATH=$(TASK_DIR)/deploy-config/zeronet.json \
SALT_MIXER="$(SALT_MIXER)" \
$(MISE_EXEC) forge script -vvvv $(DEPLOY_SCRIPT) \
--rpc-url $(L1_RPC_URL)

##
# Deployment (broadcast via Ledger)
##
.PHONY: deploy
deploy:
cd $(CONTRACTS_REPO) && \
DEPLOY_CONFIG_PATH=$(TASK_DIR)/deploy-config/zeronet.json \
SALT_MIXER="$(SALT_MIXER)" \
$(MISE_EXEC) forge script -vvvv $(DEPLOY_SCRIPT) \
--rpc-url $(L1_RPC_URL) \
--broadcast \
--ledger --hd-paths $(LEDGER_HD_PATH)
31 changes: 31 additions & 0 deletions zeronet/2026-06-24-system-deploy/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# zeronet system deploy

Full L1 system deployment on zeronet using `SystemDeploy.s.sol` from the sibling `contracts/` repo.


## Steps

### 0. Refresh genesis anchor values before executing

`multiproofGenesisBlockNumber` and `multiproofGenesisOutputRoot` must point to a block that is still available in the proof node at the time of deployment. Refresh them immediately before running `make simulate` or `make deploy`:

```sh
BLOCK=$(cast rpc optimism_syncStatus --rpc-url https://base-zeronet-reth-proofs-donotuse.cbhq.net:7545 | jq -r '.finalized_l2.number')
OUTPUT_ROOT=$(cast rpc optimism_outputAtBlock "$(printf '0x%x' "$BLOCK")" --rpc-url https://base-zeronet-reth-rpc-donotuse.cbhq.net:7545 | jq -r '.outputRoot')
echo "multiproofGenesisBlockNumber: $BLOCK"
echo "multiproofGenesisOutputRoot: $OUTPUT_ROOT"
```

Update `deploy-config/zeronet.json` with the printed values before proceeding.

### 1. Simulate (no broadcast)

```sh
make simulate
```

### 2. Deploy (broadcast via Ledger)

```sh
make deploy
```
44 changes: 44 additions & 0 deletions zeronet/2026-06-24-system-deploy/deploy-config/zeronet.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
{
"baseFeeVaultMinimumWithdrawalAmount": "0x8ac7230489e80000",
"baseFeeVaultRecipient": "0x856611ed7e07d83243b15e93f6321f2df6865852",
"baseFeeVaultWithdrawalNetwork": 0,
"batchSenderAddress": "0x4C810feC547F6C143dB51953af51A1De79BEAD21",
"disputeGameFinalityDelaySeconds": 302400,
"delayedWETHWithdrawalDelay": 604800,
"finalSystemOwner": "0x3d59999977e0896ee1f8783bb8251df16fb483e9",
"gasPriceOracleBaseFeeScalar": 1368,
"gasPriceOracleBlobBaseFeeScalar": 810949,
"l1ChainId": 560048,
"l1FeeVaultMinimumWithdrawalAmount": "0x8ac7230489e80000",
"l1FeeVaultRecipient": "0x856611ed7e07d83243b15e93f6321f2df6865852",
"l1FeeVaultWithdrawalNetwork": 0,
"l2ChainId": 763360,
"l2GenesisBlockGasLimit": "0x1c9c380",
"l2OutputOracleStartingBlockNumber": 0,
"l2OutputOracleStartingTimestamp": 0,
"multiproofBlockInterval": 600,
"multiproofConfigHash": "0xab64b3118d2d030a3fd3fe3005239a2f332e48848bbedddca9e10df77ac7303e",
"multiproofGameType": 621,
"multiproofGenesisBlockNumber": 4179448,
"multiproofGenesisOutputRoot": "0x56d192e8832cac413dcbbe5156c5476771e90ac7d76d42ef048c168ebe12b63c",
"multiproofIntermediateBlockInterval": 30,
"nitroEnclaveVerifier": "0x4e3E30E148E803667913bE97A8ce9EBA39b65563",
"operatorFeeVaultMinimumWithdrawalAmount": "0x8ac7230489e80000",
"operatorFeeVaultRecipient": "0x856611ed7e07d83243b15e93f6321f2df6865852",
"operatorFeeVaultWithdrawalNetwork": 0,
"p2pSequencerAddress": "0xcf17274338d3128f6C96d9af54511a17e8b38a08",
"proofMaturityDelaySeconds": 604800,
"proxyAdminOwner": "0x3d59999977e0896ee1f8783bb8251df16fb483e9",
"respectedGameType": 621,
"sequencerFeeVaultMinimumWithdrawalAmount": "0x8ac7230489e80000",
"sequencerFeeVaultRecipient": "0x856611ed7e07d83243b15e93f6321f2df6865852",
"sequencerFeeVaultWithdrawalNetwork": 0,
"sp1Verifier": "0x5492E1ecd7867AeAd78464EbD5def30F96d462ba",
"superchainConfigGuardian": "0x856611ed7e07d83243b15e93f6321f2df6865852",
"superchainConfigIncidentResponder": "0x856611ed7e07d83243b15e93f6321f2df6865852",
"teeChallenger": "0xad3b1402b3ec6a23c3913258d3811f132e7e35e0",
"teeImageHash": "0x0f4c9f7b78162181ab5091680885fd8b657d67dd5aa4a466c78dbf3763ffcfab",
"teeProposer": "0x5679a6b3817a014d6f3dcd64569d6858f4e92f5e",
"zkAggregationHash": "0x0079eb47fae3287155f38d8733a2f809fcbb28da00063330d3db126a0fb0f274",
"zkRangeHash": "0x0d561a5146c64c983616b7433ad3a4244298c85f27b724d239167ffb1720c160"
}
Loading