From 5568356c7389a242ca1cf4cd4f2aa7012e4e91f2 Mon Sep 17 00:00:00 2001 From: qiang Date: Fri, 31 Oct 2025 11:54:29 +0800 Subject: [PATCH 01/27] deployment --- L2/deplyment.md | 81 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 L2/deplyment.md diff --git a/L2/deplyment.md b/L2/deplyment.md new file mode 100644 index 0000000..b538ee1 --- /dev/null +++ b/L2/deplyment.md @@ -0,0 +1,81 @@ +# Deployment Guide — QuarkChain L2 (Testnet & Mainnet) + +## 1. Prepare L1 full nodes +Provision two L1 full nodes: + - Primary (production) + - Secondary (hot standby/backup) + + +## 2. Prepare admin wallets +These roles own proxy admins and contract owners. + - l1ProxyAdminOwner (Gnosis Safe): Upgrade L1 contract implementations and own L1 contract roles (e.g., systemConfigOwner).. + - l2ProxyAdminOwner (Hardware wallet): Upgrade L2 contract implementations; own L2 contracts (e.g., SoulGasToken), and vault recipients (baseFeeVaultRecipient, l1FeeVaultRecipient, sequencerFeeVaultRecipient). + +Testnet admint wallets + - l1ProxyAdminOwner (Gnosis Safe): 0x91eDD257B4184aC152cce1bbEC29FD93979Ae0db + - l2ProxyAdminOwner (Hardware Wallet): 0x187712a3e229498E9E42888761Ab9B92bceB46c7 + +Mainnet admint wallets + - l1ProxyAdminOwner (Gnosis Safe): [TBD] + - l2ProxyAdminOwner (Hardware Wallet): [TBD] + + ## 3. Prepare op-signer service for batcher, proposer and challenger + - Setup op-signer service for op-proposer/op-batcher/op-challenger (https://github.com/QuarkChain/pm/blob/main/op-signer.md) + - Fund each signer with ETH. (Setup wallet monitor to watch the balance later) + - Prepare the [remote_signer.json](https://github.com/QuarkChain/pm/blob/main/L2/assets/remote_signer.json) that will be used in opup + + ## 4. Prepare deployer and sequencer wallet + - Fund deployer with ETH + + ## 5. Deploy inbox contract with EthStorage enabled (https://github.com/ethstorage/es-op-batchinbox/pull/1) + + ## 6. Prepare parameters: +Testnet: + - Chain ID: 110011 + - soulGasTokenBlock: nil + - l2GenesisBlobTimeOffset: nil + - Scalar and Multiplier (more details [here](https://github.com/QuarkChain/optimism/issues/57#issuecomment-3471127676)): + - l1BaseFeeScalarMultiplier: 100000 (10^5) + - L1BlobBaseFeeScalarMultiplier: 10000000 (10^7) + - L1BaseFeeScalar: 58803 + - L1BlobBaseFeeScalar: 114098 + - SuperChainConfig [address](https://docs.optimism.io/reference/addresses): 0xC2Be75506d5724086DEB7245bd260Cc9753911Be + - Submission: + - MaxChannelDuration for batcher: + - OutputRootProposalInterval for proposer: 12h + +## 7. Run op-up +`REMOTE_SIGNER=1 just up --es` + +### 7.1 .envrc + +### 7.2 intent.toml + +### 7.3 Double check private RPC + +## 9. Set L1BaseFeeScalar/L1BlobBaseFeeScalar using proxyAdminOwner + +## 9 Submit the genesis / rollup config / L1 contract address to the pm repo + +## 10. Lauch Public RPC Node + +## 11. Explorer / Domain / Faucet + +## 12. Custom Bridge / Roll Bridge + +## 13. op-challenger / op-monitor / grafana + +## 14. Chain monitor + +## 15. Tests + - proposer / batcher / challenger can submit a tx successfully + - L1 cost shown on the explorer + - QKC cost verification + - ERC20 deposit and withdraw + - 7702 + - Full node sync + - Adhoc test + + + + From ec6681302af6eff8a57e921ab6922e2e83cf6381 Mon Sep 17 00:00:00 2001 From: qiang Date: Fri, 31 Oct 2025 16:40:38 +0800 Subject: [PATCH 02/27] fix --- L2/assets/remote_signer.json | 5 ++++- L2/{deplyment.md => deployment.md} | 0 2 files changed, 4 insertions(+), 1 deletion(-) rename L2/{deplyment.md => deployment.md} (100%) diff --git a/L2/assets/remote_signer.json b/L2/assets/remote_signer.json index 91a28f2..533b9bb 100644 --- a/L2/assets/remote_signer.json +++ b/L2/assets/remote_signer.json @@ -1,7 +1,10 @@ { - "admin": { + "l1admin": { "address": "0x91eDD257B4184aC152cce1bbEC29FD93979Ae0db" }, + "l2admin": { + "address": "0x187712a3e229498E9E42888761Ab9B92bceB46c7" + }, "proposer": { "endpoint": "https://op-signer.beta2.testnet.l2.quarkchain.io:8080", "address": "0x34dFb869A870Ff1DC0b1e495BFce871576EBb558", diff --git a/L2/deplyment.md b/L2/deployment.md similarity index 100% rename from L2/deplyment.md rename to L2/deployment.md From 57936057af321ea0303763ea9e0782eaaf2da829 Mon Sep 17 00:00:00 2001 From: qiang Date: Fri, 31 Oct 2025 18:04:04 +0800 Subject: [PATCH 03/27] add --- L2/deployment.md | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/L2/deployment.md b/L2/deployment.md index b538ee1..e688177 100644 --- a/L2/deployment.md +++ b/L2/deployment.md @@ -28,9 +28,18 @@ Mainnet admint wallets - Fund deployer with ETH ## 5. Deploy inbox contract with EthStorage enabled (https://github.com/ethstorage/es-op-batchinbox/pull/1) - +```bash +# deployment: +# 1. Filled the .env +# 2. Deploy +./deploy.s.sh deploy +# 3. Make sure all three contracts are verifed +# 4. Record addresses proxy and proxyAdmin +# 5. Set ethstorage contract +# 6. Deposit 0.1 ETH for storage fee +``` ## 6. Prepare parameters: -Testnet: + ### Testnet: - Chain ID: 110011 - soulGasTokenBlock: nil - l2GenesisBlobTimeOffset: nil @@ -41,7 +50,7 @@ Testnet: - L1BlobBaseFeeScalar: 114098 - SuperChainConfig [address](https://docs.optimism.io/reference/addresses): 0xC2Be75506d5724086DEB7245bd260Cc9753911Be - Submission: - - MaxChannelDuration for batcher: + - MaxChannelDuration for batcher: 6h - OutputRootProposalInterval for proposer: 12h ## 7. Run op-up @@ -66,7 +75,7 @@ Testnet: ## 13. op-challenger / op-monitor / grafana ## 14. Chain monitor - + balance of batacher / proposer / challenger / batchInbox for batcher ## 15. Tests - proposer / batcher / challenger can submit a tx successfully - L1 cost shown on the explorer From 10256a3495d89cfe8a2141b0ccfba16681f97396 Mon Sep 17 00:00:00 2001 From: qiang Date: Mon, 3 Nov 2025 18:36:42 +0800 Subject: [PATCH 04/27] add --- L2/deployment.md | 41 +++++++++++++++++++++++++++++++++++++---- 1 file changed, 37 insertions(+), 4 deletions(-) diff --git a/L2/deployment.md b/L2/deployment.md index e688177..bb535a9 100644 --- a/L2/deployment.md +++ b/L2/deployment.md @@ -38,6 +38,12 @@ Mainnet admint wallets # 5. Set ethstorage contract # 6. Deposit 0.1 ETH for storage fee ``` + ### Testnet: + - batchInbox proxy: 0xf62e8574B92dc8764c5Ad957b5B0311595f5A3f9 + - batchInbox impl: 0x900e510791F59705e86E9D6bc8be05f7679d8A3e + - batchInbox proxyAdmin: 0xc2bf5eF8F82eD93f166B49CcF29D45699236Af03 + + ## 6. Prepare parameters: ### Testnet: - Chain ID: 110011 @@ -57,10 +63,37 @@ Mainnet admint wallets `REMOTE_SIGNER=1 just up --es` ### 7.1 .envrc - -### 7.2 intent.toml - -### 7.3 Double check private RPC +#### Testnet: + - L1_RPC_URL: http://65.108.230.142:8545 + - L1_RPC_KIND: standard + - L1_BEACON_URL: http://65.108.230.142:3500 + - L1_BEACON_ARCHIVER_URL: https://archive.testnet.ethstorage.io:9635 + - L1_CHAIN_ID: 11155111 + - L2_CHAIN_ID: 110011 + +### 7.2 contract and op-deployer branch + - contract: merge_op_contracts_v4.1.0 + - op-deployer: merge_op-deployer_v0.4.5 + +### 7.3 intent.toml +#### Testnet: + - superchainConfigProxy: 0xC2Be75506d5724086DEB7245bd260Cc9753911Be + - l1BaseFeeScalarMultiplier: 100000 + - L1BlobBaseFeeScalarMultiplier: 10000000 + - Delete `soulGasTokenTimeOffset = "0x0"` + - Delete `l2GenesisBlobTimeOffset = "0x0"` + - batchInboxAddress: 0xf62e8574B92dc8764c5Ad957b5B0311595f5A3f9 + +### 7.4 MaxChannelDuration && OutputRootProposalInterval + - MaxChannelDuration: 1800 (1800 * 12 / 3600 = 6) + - OutputRootProposalInterval: 12h + +### 7.5 Verify + - Verify all the binary are launched successfully + - Verify that we use the right superchainConfigProxy + - Verify code for L1 + L2 contracts + +### 7.6 Double check private RPC ## 9. Set L1BaseFeeScalar/L1BlobBaseFeeScalar using proxyAdminOwner From 3e91d1bcc6190dfcfb9b62a4d480a6888a4da131 Mon Sep 17 00:00:00 2001 From: qiang Date: Tue, 4 Nov 2025 16:30:20 +0800 Subject: [PATCH 05/27] add --- L2/deployment.md | 46 ++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 38 insertions(+), 8 deletions(-) diff --git a/L2/deployment.md b/L2/deployment.md index bb535a9..7e05dd5 100644 --- a/L2/deployment.md +++ b/L2/deployment.md @@ -77,7 +77,6 @@ Mainnet admint wallets ### 7.3 intent.toml #### Testnet: - - superchainConfigProxy: 0xC2Be75506d5724086DEB7245bd260Cc9753911Be - l1BaseFeeScalarMultiplier: 100000 - L1BlobBaseFeeScalarMultiplier: 10000000 - Delete `soulGasTokenTimeOffset = "0x0"` @@ -92,24 +91,55 @@ Mainnet admint wallets - Verify all the binary are launched successfully - Verify that we use the right superchainConfigProxy - Verify code for L1 + L2 contracts + - Verify the batcher cost for 6hrs submission + - delta submission: https://sepolia.etherscan.io/tx/0x415809eea9f4cf5d38da5e4064b53c36137be6c7f6f3750cec836cc0eec77751 + - hashkey: https://etherscan.io/tx/0xec79b9ad6594e388829a3063fa8bce371a8b341928f55a939aa72e52be0401ca + - delta propose: https://sepolia.etherscan.io/tx/0x8e18a93466b7ca702cb09fb3b754318502f5c82d2a7471d900cdb8677ae20daf + - hashkey propose: https://etherscan.io/tx/0x4b3731f755d4a2a61f8db93755b83767f999931592cb6c33e4c294fd762532a6 + - hashkey resolve: https://etherscan.io/address/0x82bdac18f0fbaed34d6a644e9713530259885426 ### 7.6 Double check private RPC +## 8. Set new superchainConfigProxy +```bash +# 1. deploy StorageSetter +forge create src/universal/StorageSetter.sol:StorageSetter --broadcast --private-key $PRIVATE_KEY --rpc-url $RPC_URL + +# 2. prepare calldata for upgradeAndCall +cast calldata "setBytes32(bytes32, bytes32)" 0x0000000000000000000000000000000000000000000000000000000000000000 0x0000000000000000000000000000000000000000000000000000000000000000 + +0x4e91db0800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + +# 3. call upgradeAndCall +upgradeAndCall(opChainProxyAdmin, systemConfigProxy, storageSetter, calldata); + +# 4. prepare calldata for upgradeAndCall +cast calldata "upgrade(uint256, address)" $L2_CHAIN_ID $SuperchainConfigProxy + +# 5. call upgradeAndCall +upgradeAndCall(opChainProxyAdmin, systemConfigProxy, systemConfigImpl, calldata); + +# 6. check if the SuperchainConfigProxy was changed +``` + ## 9. Set L1BaseFeeScalar/L1BlobBaseFeeScalar using proxyAdminOwner -## 9 Submit the genesis / rollup config / L1 contract address to the pm repo +## 10. Initial Test +Refer to this [doc](https://github.com/QuarkChain/pm/blob/main/L2/opup_devnet_test.md) + +## 11 Submit the genesis / rollup config / L1 contract address to the pm repo -## 10. Lauch Public RPC Node +## 12. Lauch Public RPC Node -## 11. Explorer / Domain / Faucet +## 13. Explorer / Domain / Faucet -## 12. Custom Bridge / Roll Bridge +## 14. Custom Bridge / Roll Bridge -## 13. op-challenger / op-monitor / grafana +## 15. op-challenger / op-monitor / grafana -## 14. Chain monitor +## 16. Chain monitor balance of batacher / proposer / challenger / batchInbox for batcher -## 15. Tests +## 17. Tests - proposer / batcher / challenger can submit a tx successfully - L1 cost shown on the explorer - QKC cost verification From 5333cf3065f3addcc8310296b99f9c2e87f3009b Mon Sep 17 00:00:00 2001 From: qiang Date: Wed, 5 Nov 2025 19:51:14 +0800 Subject: [PATCH 06/27] add --- L2/deployment.md | 72 ++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 64 insertions(+), 8 deletions(-) diff --git a/L2/deployment.md b/L2/deployment.md index 7e05dd5..4436acc 100644 --- a/L2/deployment.md +++ b/L2/deployment.md @@ -56,8 +56,15 @@ Mainnet admint wallets - L1BlobBaseFeeScalar: 114098 - SuperChainConfig [address](https://docs.optimism.io/reference/addresses): 0xC2Be75506d5724086DEB7245bd260Cc9753911Be - Submission: - - MaxChannelDuration for batcher: 6h + - MaxChannelDuration for batcher: 900 / 3h - OutputRootProposalInterval for proposer: 12h + - Cost + - delta submission: https://sepolia.etherscan.io/tx/0x415809eea9f4cf5d38da5e4064b53c36137be6c7f6f3750cec836cc0eec77751 + - hashkey: https://etherscan.io/tx/0xec79b9ad6594e388829a3063fa8bce371a8b341928f55a939aa72e52be0401ca + - delta propose: https://sepolia.etherscan.io/tx/0x8e18a93466b7ca702cb09fb3b754318502f5c82d2a7471d900cdb8677ae20daf + - hashkey propose: https://etherscan.io/tx/0x4b3731f755d4a2a61f8db93755b83767f999931592cb6c33e4c294fd762532a6 + - hashkey resolve: https://etherscan.io/address/0x82bdac18f0fbaed34d6a644e9713530259885426 + ## 7. Run op-up `REMOTE_SIGNER=1 just up --es` @@ -89,14 +96,7 @@ Mainnet admint wallets ### 7.5 Verify - Verify all the binary are launched successfully - - Verify that we use the right superchainConfigProxy - Verify code for L1 + L2 contracts - - Verify the batcher cost for 6hrs submission - - delta submission: https://sepolia.etherscan.io/tx/0x415809eea9f4cf5d38da5e4064b53c36137be6c7f6f3750cec836cc0eec77751 - - hashkey: https://etherscan.io/tx/0xec79b9ad6594e388829a3063fa8bce371a8b341928f55a939aa72e52be0401ca - - delta propose: https://sepolia.etherscan.io/tx/0x8e18a93466b7ca702cb09fb3b754318502f5c82d2a7471d900cdb8677ae20daf - - hashkey propose: https://etherscan.io/tx/0x4b3731f755d4a2a61f8db93755b83767f999931592cb6c33e4c294fd762532a6 - - hashkey resolve: https://etherscan.io/address/0x82bdac18f0fbaed34d6a644e9713530259885426 ### 7.6 Double check private RPC @@ -124,6 +124,62 @@ upgradeAndCall(opChainProxyAdmin, systemConfigProxy, systemConfigImpl, calldata) ## 9. Set L1BaseFeeScalar/L1BlobBaseFeeScalar using proxyAdminOwner +## 10. Set eip1559Denominator/eip1559Elasticity + +## 10 Verify the deployment +### 10.1 Verify the admin owner for L1 and L2 +#### L1 admin +```bash +# pick one of the L1 contract, e.g. systemConfigProxyAddress +# query the proxy admin address, check if the address is the same as we deployed +cast call $SYSTEM_CONFIG_PROXY "admin()" -r $L1_RPC_URL +# query the admin owner of the proxy admin, check if the address is the same as the l1ProxyAdminOwner +cast call $OP_CHAIN_PROXY_ADMIN_IMPL "owner()" -r $L1_RPC_URL +``` +#### L2 admin +```bash +# pick one of the L2 contract, e.g. L2StandardBridge +# query the proxy admin address, check if the address is the same as we deployed +cast call 0x4200000000000000000000000000000000000010 "admin()" +# query the admin owner of the proxy admin, check if the address is the same as the l2ProxyAdminOwner +cast call 0x4200000000000000000000000000000000000018 "owner()" +``` + +### 10.2 Verify the parameters +#### 10.2.1 Check with $SYSTEM_CONFIG_PROXY + l2ChainID + superchainConfig + systemConfigOwner + unsafeBlockSigner + batcher +batchInboxAddress + l1BaseFeeScalarMultiplier + l1BlobBaseFeeScalarMultiplier + operatorFeeScalar + operatorFeeConstant +eip1559DenominatorCanyon +eip1559Denominator +eip1559Elasticity + gasLimit + +#### 10.2.2 Check rollup_config and genesis +##### rollup config + - sequencerWindowSize + - eip1559DenominatorCanyon + - eip1559Denominator + - eip1559Elasticity + + +### 10.2.3 Check with L2 Contract +Query baseFeeVaultRecipient / l1FeeVaultRecipient / sequencerFeeVaultRecipient +```bash +# baseFeeVaultRecipient +cast call 0x4200000000000000000000000000000000000019 "recipient()" +# l1FeeVaultRecipient +cast call 0x420000000000000000000000000000000000001A "recipient()" +# sequencerFeeVaultRecipient +cast call 0x4200000000000000000000000000000000000011 "recipient()" +``` ## 10. Initial Test Refer to this [doc](https://github.com/QuarkChain/pm/blob/main/L2/opup_devnet_test.md) From fe1d04b9131ebea0f629e00247292e32b16db346 Mon Sep 17 00:00:00 2001 From: qiang Date: Thu, 6 Nov 2025 10:40:57 +0800 Subject: [PATCH 07/27] add --- L2/deployment.md | 61 +++++++++++++++++++++++++++++++++++------------- 1 file changed, 45 insertions(+), 16 deletions(-) diff --git a/L2/deployment.md b/L2/deployment.md index 4436acc..4d29b27 100644 --- a/L2/deployment.md +++ b/L2/deployment.md @@ -146,29 +146,58 @@ cast call 0x4200000000000000000000000000000000000018 "owner()" ``` ### 10.2 Verify the parameters -#### 10.2.1 Check with $SYSTEM_CONFIG_PROXY - l2ChainID - superchainConfig - systemConfigOwner - unsafeBlockSigner - batcher -batchInboxAddress - l1BaseFeeScalarMultiplier - l1BlobBaseFeeScalarMultiplier - operatorFeeScalar - operatorFeeConstant -eip1559DenominatorCanyon -eip1559Denominator -eip1559Elasticity - gasLimit +#### 10.2.1 Check with L1 contract +##### SYSTEM_CONFIG_PROXY + - l2ChainID + - superchainConfig + - systemConfigOwner + - unsafeBlockSigner + - batcher + - batchInboxAddress + - l1BaseFeeScalar + - l1BlobBaseFeeScalar + - operatorFeeScalar + - operatorFeeConstant + - eip1559DenominatorCanyon + - eip1559Denominator + - gasLimit + +##### DISPUTE_GAME_FACTORY_PROXY +```bash +cast call $DISPUTE_GAME_FACTORY_PROXY "gameImpls(uint32)" 1 -r $L1_RPC_URL +# check proposer +cast call $PERMISSIONED_DISPUTE_GAME_IMPL "proposer()" -r $L1_RPC_URL +# check challenger +cast call $PERMISSIONED_DISPUTE_GAME_IMPL "challenger()" -r $L1_RPC_URL +``` #### 10.2.2 Check rollup_config and genesis ##### rollup config + - batcherAddr + - gasLimit - sequencerWindowSize + - l1_chain_id + - l2_chain_id + - batch_inbox_address + - deposit_contract_address (OptimismPortalProxy) + - l1_system_config_address + - protocol_versions_address - eip1559DenominatorCanyon - eip1559Denominator - eip1559Elasticity - + - l1BaseFeeScalarMultiplier + - l1BlobBaseFeeScalarMultiplier + - isSoulBackedByNative + - use_inbox_contract +##### genesis + - chainId + - eip1559Elasticity + - eip1559Denominator + - eip1559DenominatorCanyon + - isSoulBackedByNative + - l1BaseFeeScalarMultiplier + - l1BlobBaseFeeScalarMultiplier + ### 10.2.3 Check with L2 Contract Query baseFeeVaultRecipient / l1FeeVaultRecipient / sequencerFeeVaultRecipient From db12dd0077937b805349ec0a27121f1e11663c04 Mon Sep 17 00:00:00 2001 From: qiang Date: Fri, 7 Nov 2025 16:43:27 +0800 Subject: [PATCH 08/27] fix --- L2/deployment.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/L2/deployment.md b/L2/deployment.md index 4d29b27..63faae2 100644 --- a/L2/deployment.md +++ b/L2/deployment.md @@ -91,7 +91,7 @@ Mainnet admint wallets - batchInboxAddress: 0xf62e8574B92dc8764c5Ad957b5B0311595f5A3f9 ### 7.4 MaxChannelDuration && OutputRootProposalInterval - - MaxChannelDuration: 1800 (1800 * 12 / 3600 = 6) + - MaxChannelDuration: 900 (900 * 12 / 3600 = 3) - OutputRootProposalInterval: 12h ### 7.5 Verify From c6338d37ab3c3a2a9df14bfac659136ee7955400 Mon Sep 17 00:00:00 2001 From: qiang Date: Fri, 7 Nov 2025 19:02:09 +0800 Subject: [PATCH 09/27] add --- L2/deployment.md | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/L2/deployment.md b/L2/deployment.md index 63faae2..4cade0a 100644 --- a/L2/deployment.md +++ b/L2/deployment.md @@ -101,9 +101,23 @@ Mainnet admint wallets ### 7.6 Double check private RPC ## 8. Set new superchainConfigProxy +```bash +# prepare L1 contract address +just l1 > address.json +function json2_to_env() { + for key0 in $( jq -r 'to_entries|map("\(.key)")|.[]' $1 ); do + value=$(jq -r \.$key0 $1) + skey=$(echo $key0 | sed -r 's/([a-z0-9])([A-Z])/\1_\L\2/g' | sed -e 's/\(.*\)/\U\1/') + echo $skey=$value + export $skey=$value + done +} +json2_to_env address.json +``` + ```bash # 1. deploy StorageSetter -forge create src/universal/StorageSetter.sol:StorageSetter --broadcast --private-key $PRIVATE_KEY --rpc-url $RPC_URL +forge create src/universal/StorageSetter.sol:StorageSetter --broadcast --private-key $GS_ADMIN_PRIVATE_KEY --rpc-url $L1_RPC_URL # 2. prepare calldata for upgradeAndCall cast calldata "setBytes32(bytes32, bytes32)" 0x0000000000000000000000000000000000000000000000000000000000000000 0x0000000000000000000000000000000000000000000000000000000000000000 @@ -123,8 +137,13 @@ upgradeAndCall(opChainProxyAdmin, systemConfigProxy, systemConfigImpl, calldata) ``` ## 9. Set L1BaseFeeScalar/L1BlobBaseFeeScalar using proxyAdminOwner + - L1BaseFeeScalar: 58803 + - L1BlobBaseFeeScalar: 114098 ## 10. Set eip1559Denominator/eip1559Elasticity + - eip1559Denominator: 50 + - eip1559Elasticity: 6 + ## 10 Verify the deployment ### 10.1 Verify the admin owner for L1 and L2 From 17c26b1e4e78d562e078cbbf12bf534a17d29438 Mon Sep 17 00:00:00 2001 From: qiang Date: Fri, 7 Nov 2025 19:09:10 +0800 Subject: [PATCH 10/27] fix --- L2/deployment.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/L2/deployment.md b/L2/deployment.md index 4cade0a..755d639 100644 --- a/L2/deployment.md +++ b/L2/deployment.md @@ -177,8 +177,8 @@ cast call 0x4200000000000000000000000000000000000018 "owner()" - l1BlobBaseFeeScalar - operatorFeeScalar - operatorFeeConstant - - eip1559DenominatorCanyon - eip1559Denominator + - eip1559Elasticity - gasLimit ##### DISPUTE_GAME_FACTORY_PROXY From c3045f601e6ec53fa9a145cbda921fe0ef7974ae Mon Sep 17 00:00:00 2001 From: qiang Date: Mon, 10 Nov 2025 17:06:48 +0800 Subject: [PATCH 11/27] add --- L2/deployment.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/L2/deployment.md b/L2/deployment.md index 755d639..b0978ed 100644 --- a/L2/deployment.md +++ b/L2/deployment.md @@ -241,6 +241,10 @@ Refer to this [doc](https://github.com/QuarkChain/pm/blob/main/L2/opup_devnet_te ## 15. op-challenger / op-monitor / grafana +## 16. FDG watcher and test + +## 16. Firewall and 2fa + ## 16. Chain monitor balance of batacher / proposer / challenger / batchInbox for batcher ## 17. Tests From 367081ec956dfe922bcd22b119b2e5d19018768f Mon Sep 17 00:00:00 2001 From: qiang Date: Mon, 10 Nov 2025 18:25:50 +0800 Subject: [PATCH 12/27] add --- L2/deployment.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/L2/deployment.md b/L2/deployment.md index b0978ed..3f5b28c 100644 --- a/L2/deployment.md +++ b/L2/deployment.md @@ -243,10 +243,12 @@ Refer to this [doc](https://github.com/QuarkChain/pm/blob/main/L2/opup_devnet_te ## 16. FDG watcher and test -## 16. Firewall and 2fa +## 17. Firewall and 2fa -## 16. Chain monitor +## 18. Chain monitor balance of batacher / proposer / challenger / batchInbox for batcher +## 19. Update doc + ## 17. Tests - proposer / batcher / challenger can submit a tx successfully - L1 cost shown on the explorer From c65e546573056f53e72fdbd1a1798bb452e1febb Mon Sep 17 00:00:00 2001 From: qiang Date: Wed, 12 Nov 2025 17:42:14 +0800 Subject: [PATCH 13/27] add --- L2/deployment.md | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/L2/deployment.md b/L2/deployment.md index 3f5b28c..008720a 100644 --- a/L2/deployment.md +++ b/L2/deployment.md @@ -235,21 +235,24 @@ Refer to this [doc](https://github.com/QuarkChain/pm/blob/main/L2/opup_devnet_te ## 12. Lauch Public RPC Node -## 13. Explorer / Domain / Faucet +## 13. Domain(Explorer+RPC) / Faucet -## 14. Custom Bridge / Roll Bridge +## 14. Migration Bridge +Need to confirm the UI + allowance (https://github.com/QuarkChain/quarkchain-migrate-website/issues/1) -## 15. op-challenger / op-monitor / grafana +## 15. Roll Bridge +Need to determine the ERC20 token listed on the UI -## 16. FDG watcher and test +## 16. op-monitor + grafana / FDG watcher / FDF test -## 17. Firewall and 2fa - -## 18. Chain monitor +## 17. Chain monitor balance of batacher / proposer / challenger / batchInbox for batcher + +## 18. Firewall and 2fa + ## 19. Update doc -## 17. Tests +## 20. Tests - proposer / batcher / challenger can submit a tx successfully - L1 cost shown on the explorer - QKC cost verification From 4bb892005f3615b98481320de60019eda1be890b Mon Sep 17 00:00:00 2001 From: qiang Date: Fri, 14 Nov 2025 11:13:38 +0800 Subject: [PATCH 14/27] add --- L2/deployment.md | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/L2/deployment.md b/L2/deployment.md index 008720a..3656882 100644 --- a/L2/deployment.md +++ b/L2/deployment.md @@ -249,6 +249,33 @@ Need to determine the ERC20 token listed on the UI balance of batacher / proposer / challenger / batchInbox for batcher ## 18. Firewall and 2fa +port list +```bash +ssh + 222 +blockscout + 80 + 8080 + 8081 + 7432 + 7433 +op-node + 9003 + 8547 - monitor +op-geth + 8545 - public rpc + 30303 +da-server + 8888 +``` + +Edit the rules +```bash +sudo ufw status numbered +sudo ufw delete 2 +sudo ufw allow from 65.21.21.253 to any port 8547 proto tcp +sudo ufw allow from 65.109.110.98 to any port 8545 proto tcp +``` ## 19. Update doc From 68087b497cf53d8d0892799e5f1062aac809942d Mon Sep 17 00:00:00 2001 From: qiang Date: Mon, 17 Nov 2025 16:49:28 +0800 Subject: [PATCH 15/27] fix comment --- L2/deployment.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/L2/deployment.md b/L2/deployment.md index 3656882..f5bdb97 100644 --- a/L2/deployment.md +++ b/L2/deployment.md @@ -11,11 +11,11 @@ These roles own proxy admins and contract owners. - l1ProxyAdminOwner (Gnosis Safe): Upgrade L1 contract implementations and own L1 contract roles (e.g., systemConfigOwner).. - l2ProxyAdminOwner (Hardware wallet): Upgrade L2 contract implementations; own L2 contracts (e.g., SoulGasToken), and vault recipients (baseFeeVaultRecipient, l1FeeVaultRecipient, sequencerFeeVaultRecipient). -Testnet admint wallets +Testnet admin wallets - l1ProxyAdminOwner (Gnosis Safe): 0x91eDD257B4184aC152cce1bbEC29FD93979Ae0db - l2ProxyAdminOwner (Hardware Wallet): 0x187712a3e229498E9E42888761Ab9B92bceB46c7 -Mainnet admint wallets +Mainnet admin wallets - l1ProxyAdminOwner (Gnosis Safe): [TBD] - l2ProxyAdminOwner (Hardware Wallet): [TBD] @@ -243,7 +243,7 @@ Need to confirm the UI + allowance (https://github.com/QuarkChain/quarkchain-mig ## 15. Roll Bridge Need to determine the ERC20 token listed on the UI -## 16. op-monitor + grafana / FDG watcher / FDF test +## 16. op-monitor + grafana / FDG watcher / FDG test ## 17. Chain monitor balance of batacher / proposer / challenger / batchInbox for batcher From c65227b481efdc1f6dd6aadb61a3b2349c74c5c8 Mon Sep 17 00:00:00 2001 From: qiang Date: Mon, 17 Nov 2025 18:34:35 +0800 Subject: [PATCH 16/27] resolve comments --- L2/assets/{remote_signer.json => delta_remote_signer.json} | 0 L2/deployment.md | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename L2/assets/{remote_signer.json => delta_remote_signer.json} (100%) diff --git a/L2/assets/remote_signer.json b/L2/assets/delta_remote_signer.json similarity index 100% rename from L2/assets/remote_signer.json rename to L2/assets/delta_remote_signer.json diff --git a/L2/deployment.md b/L2/deployment.md index f5bdb97..d7ce669 100644 --- a/L2/deployment.md +++ b/L2/deployment.md @@ -141,7 +141,7 @@ upgradeAndCall(opChainProxyAdmin, systemConfigProxy, systemConfigImpl, calldata) - L1BlobBaseFeeScalar: 114098 ## 10. Set eip1559Denominator/eip1559Elasticity - - eip1559Denominator: 50 + - eip1559Denominator: 250 - eip1559Elasticity: 6 From fca3c0eceaaa3cc4688e49cbb5a1365923307063 Mon Sep 17 00:00:00 2001 From: qiang Date: Tue, 18 Nov 2025 11:35:17 +0800 Subject: [PATCH 17/27] add --- L2/deployment.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/L2/deployment.md b/L2/deployment.md index d7ce669..59c2266 100644 --- a/L2/deployment.md +++ b/L2/deployment.md @@ -67,7 +67,12 @@ Mainnet admin wallets ## 7. Run op-up +```bash +# Sepolia: `REMOTE_SIGNER=1 just up --es` +# Mainnet: +`REMOTE_SIGNER=1 MAINNET=1 just up --es` +``` ### 7.1 .envrc #### Testnet: @@ -287,6 +292,7 @@ sudo ufw allow from 65.109.110.98 to any port 8545 proto tcp - 7702 - Full node sync - Adhoc test + - Archiver test (Fusaka change) From 3478d03f7eda87e500c0f40c6bcd042c4b866d15 Mon Sep 17 00:00:00 2001 From: qiang Date: Wed, 19 Nov 2025 14:48:20 +0800 Subject: [PATCH 18/27] mainnet --- L2/deployment.md | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/L2/deployment.md b/L2/deployment.md index 59c2266..4512a14 100644 --- a/L2/deployment.md +++ b/L2/deployment.md @@ -42,6 +42,10 @@ Mainnet admin wallets - batchInbox proxy: 0xf62e8574B92dc8764c5Ad957b5B0311595f5A3f9 - batchInbox impl: 0x900e510791F59705e86E9D6bc8be05f7679d8A3e - batchInbox proxyAdmin: 0xc2bf5eF8F82eD93f166B49CcF29D45699236Af03 + ### Mainnet: + - batchInbox proxy: TBD + - batchInbox impl: TBD + - batchInbox proxyAdmin: TBD ## 6. Prepare parameters: @@ -64,6 +68,19 @@ Mainnet admin wallets - delta propose: https://sepolia.etherscan.io/tx/0x8e18a93466b7ca702cb09fb3b754318502f5c82d2a7471d900cdb8677ae20daf - hashkey propose: https://etherscan.io/tx/0x4b3731f755d4a2a61f8db93755b83767f999931592cb6c33e4c294fd762532a6 - hashkey resolve: https://etherscan.io/address/0x82bdac18f0fbaed34d6a644e9713530259885426 + ### Mainnet: + - Chain ID: 100011 + - soulGasTokenBlock: nil + - l2GenesisBlobTimeOffset: nil + - Scalar and Multiplier (more details [here](https://github.com/QuarkChain/optimism/issues/57#issuecomment-3471127676)): + - l1BaseFeeScalarMultiplier: 100000 (10^5) + - L1BlobBaseFeeScalarMultiplier: 10000000 (10^7) + - L1BaseFeeScalar: 58803 + - L1BlobBaseFeeScalar: 114098 + - SuperChainConfig [address](https://docs.optimism.io/reference/addresses): 0x95703e0982140D16f8ebA6d158FccEde42f04a4C + - Submission: + - MaxChannelDuration for batcher: 900 / 3h + - OutputRootProposalInterval for proposer: 12h ## 7. Run op-up @@ -82,6 +99,13 @@ Mainnet admin wallets - L1_BEACON_ARCHIVER_URL: https://archive.testnet.ethstorage.io:9635 - L1_CHAIN_ID: 11155111 - L2_CHAIN_ID: 110011 + #### Mainnet: + - L1_RPC_URL: http://65.21.133.53:8545 + - L1_RPC_KIND: standard + - L1_BEACON_URL: http://65.21.133.53:4200 + - L1_BEACON_ARCHIVER_URL: https://archive.mainnet.ethstorage.io:9645 + - L1_CHAIN_ID: 1 + - L2_CHAIN_ID: 100011 ### 7.2 contract and op-deployer branch - contract: merge_op_contracts_v4.1.0 @@ -94,6 +118,12 @@ Mainnet admin wallets - Delete `soulGasTokenTimeOffset = "0x0"` - Delete `l2GenesisBlobTimeOffset = "0x0"` - batchInboxAddress: 0xf62e8574B92dc8764c5Ad957b5B0311595f5A3f9 +#### Testnet: + - l1BaseFeeScalarMultiplier: 100000 + - L1BlobBaseFeeScalarMultiplier: 10000000 + - Delete `soulGasTokenTimeOffset = "0x0"` + - Delete `l2GenesisBlobTimeOffset = "0x0"` + - batchInboxAddress: TBD ### 7.4 MaxChannelDuration && OutputRootProposalInterval - MaxChannelDuration: 900 (900 * 12 / 3600 = 3) From d2e9aa916095433c3cac2cfc0c36e812e080a749 Mon Sep 17 00:00:00 2001 From: qiang Date: Wed, 19 Nov 2025 15:00:27 +0800 Subject: [PATCH 19/27] update --- L2/deployment.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/L2/deployment.md b/L2/deployment.md index 4512a14..749c883 100644 --- a/L2/deployment.md +++ b/L2/deployment.md @@ -314,7 +314,9 @@ sudo ufw allow from 65.109.110.98 to any port 8545 proto tcp ## 19. Update doc -## 20. Tests +## 20. Minotor migration/bridge website + +## 21. Tests - proposer / batcher / challenger can submit a tx successfully - L1 cost shown on the explorer - QKC cost verification From e378fc0ce51b34e56ed9da45381fd98566af8f39 Mon Sep 17 00:00:00 2001 From: qiang Date: Thu, 20 Nov 2025 11:35:49 +0800 Subject: [PATCH 20/27] add --- L2/deployment.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/L2/deployment.md b/L2/deployment.md index 749c883..9f88c2b 100644 --- a/L2/deployment.md +++ b/L2/deployment.md @@ -16,8 +16,8 @@ Testnet admin wallets - l2ProxyAdminOwner (Hardware Wallet): 0x187712a3e229498E9E42888761Ab9B92bceB46c7 Mainnet admin wallets - - l1ProxyAdminOwner (Gnosis Safe): [TBD] - - l2ProxyAdminOwner (Hardware Wallet): [TBD] + - l1ProxyAdminOwner (Gnosis Safe): 0xC427A79CFc2863fd6c7D22dE394efE8935190734 + - l2ProxyAdminOwner (Hardware Wallet): 0x9e370b5f0c91c0f00ffe863d16d5c1b8d5f1746b ## 3. Prepare op-signer service for batcher, proposer and challenger - Setup op-signer service for op-proposer/op-batcher/op-challenger (https://github.com/QuarkChain/pm/blob/main/op-signer.md) From 45bd1c6fa688b6f35cc984b0dd5b5a25004a2360 Mon Sep 17 00:00:00 2001 From: qiang Date: Thu, 20 Nov 2025 16:15:30 +0800 Subject: [PATCH 21/27] batch inbox --- L2/deployment.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/L2/deployment.md b/L2/deployment.md index 9f88c2b..888dd17 100644 --- a/L2/deployment.md +++ b/L2/deployment.md @@ -43,9 +43,9 @@ Mainnet admin wallets - batchInbox impl: 0x900e510791F59705e86E9D6bc8be05f7679d8A3e - batchInbox proxyAdmin: 0xc2bf5eF8F82eD93f166B49CcF29D45699236Af03 ### Mainnet: - - batchInbox proxy: TBD - - batchInbox impl: TBD - - batchInbox proxyAdmin: TBD + - batchInbox proxy: 0xA68295D77766d4e04854746e3C1873c891C1765E + - batchInbox impl: 0x5e84c44a636A07582CED20C4DA8c1A3f22944aC6 + - batchInbox proxyAdmin: 0x32b9d95A3eDA963e968DF4ABb18908b3caC9268b ## 6. Prepare parameters: From 0cc78e12ea014ea8c8ef156296cf061cbfd792bc Mon Sep 17 00:00:00 2001 From: qiang Date: Thu, 20 Nov 2025 16:54:54 +0800 Subject: [PATCH 22/27] add --- L2/deployment.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/L2/deployment.md b/L2/deployment.md index 888dd17..c016771 100644 --- a/L2/deployment.md +++ b/L2/deployment.md @@ -123,7 +123,7 @@ Mainnet admin wallets - L1BlobBaseFeeScalarMultiplier: 10000000 - Delete `soulGasTokenTimeOffset = "0x0"` - Delete `l2GenesisBlobTimeOffset = "0x0"` - - batchInboxAddress: TBD + - batchInboxAddress: 0xA68295D77766d4e04854746e3C1873c891C1765E ### 7.4 MaxChannelDuration && OutputRootProposalInterval - MaxChannelDuration: 900 (900 * 12 / 3600 = 3) From 2f78d75244d85e858c9b929c75a969f984bdac80 Mon Sep 17 00:00:00 2001 From: qiang Date: Fri, 21 Nov 2025 14:36:04 +0800 Subject: [PATCH 23/27] fix --- L2/deployment.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/L2/deployment.md b/L2/deployment.md index c016771..eae5379 100644 --- a/L2/deployment.md +++ b/L2/deployment.md @@ -118,7 +118,7 @@ Mainnet admin wallets - Delete `soulGasTokenTimeOffset = "0x0"` - Delete `l2GenesisBlobTimeOffset = "0x0"` - batchInboxAddress: 0xf62e8574B92dc8764c5Ad957b5B0311595f5A3f9 -#### Testnet: +#### Mainnet: - l1BaseFeeScalarMultiplier: 100000 - L1BlobBaseFeeScalarMultiplier: 10000000 - Delete `soulGasTokenTimeOffset = "0x0"` From 44a1abed26f2ff4553ad0a5e9810af197ec1cc6c Mon Sep 17 00:00:00 2001 From: qiang Date: Mon, 24 Nov 2025 19:45:41 +0800 Subject: [PATCH 24/27] add --- L2/deployment.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/L2/deployment.md b/L2/deployment.md index eae5379..e67c108 100644 --- a/L2/deployment.md +++ b/L2/deployment.md @@ -100,9 +100,9 @@ Mainnet admin wallets - L1_CHAIN_ID: 11155111 - L2_CHAIN_ID: 110011 #### Mainnet: - - L1_RPC_URL: http://65.21.133.53:8545 + - L1_RPC_URL: - L1_RPC_KIND: standard - - L1_BEACON_URL: http://65.21.133.53:4200 + - L1_BEACON_URL: - L1_BEACON_ARCHIVER_URL: https://archive.mainnet.ethstorage.io:9645 - L1_CHAIN_ID: 1 - L2_CHAIN_ID: 100011 From 4b044a2cb0ec62e3764a77a1afe29df3b3ca5d7b Mon Sep 17 00:00:00 2001 From: qiang Date: Tue, 25 Nov 2025 16:55:37 +0800 Subject: [PATCH 25/27] add --- L2/deployment.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/L2/deployment.md b/L2/deployment.md index e67c108..4303054 100644 --- a/L2/deployment.md +++ b/L2/deployment.md @@ -319,7 +319,7 @@ sudo ufw allow from 65.109.110.98 to any port 8545 proto tcp ## 21. Tests - proposer / batcher / challenger can submit a tx successfully - L1 cost shown on the explorer - - QKC cost verification + - QKC cost [verification](https://explorer.mainnet.l2.quarkchain.io/tx/0xfb2f61f252e409f590d2c3f1f3dc68fb48d76bbbf731391b8efade1d1aaaf411) - ERC20 deposit and withdraw - 7702 - Full node sync From f0810ed7c33d02c6cfe9483744aa191c7d24eef0 Mon Sep 17 00:00:00 2001 From: qiang Date: Wed, 26 Nov 2025 14:15:00 +0800 Subject: [PATCH 26/27] fix --- L2/deployment.md | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/L2/deployment.md b/L2/deployment.md index 4303054..4edea3a 100644 --- a/L2/deployment.md +++ b/L2/deployment.md @@ -100,9 +100,9 @@ Mainnet admin wallets - L1_CHAIN_ID: 11155111 - L2_CHAIN_ID: 110011 #### Mainnet: - - L1_RPC_URL: + - L1_RPC_URL: mainnet-rpc-url - L1_RPC_KIND: standard - - L1_BEACON_URL: + - L1_BEACON_URL: mainnet-beacon-url - L1_BEACON_ARCHIVER_URL: https://archive.mainnet.ethstorage.io:9645 - L1_CHAIN_ID: 1 - L2_CHAIN_ID: 100011 @@ -263,27 +263,27 @@ cast call 0x420000000000000000000000000000000000001A "recipient()" # sequencerFeeVaultRecipient cast call 0x4200000000000000000000000000000000000011 "recipient()" ``` -## 10. Initial Test +## 11. Initial Test Refer to this [doc](https://github.com/QuarkChain/pm/blob/main/L2/opup_devnet_test.md) -## 11 Submit the genesis / rollup config / L1 contract address to the pm repo +## 12 Submit the genesis / rollup config / L1 contract address to the pm repo -## 12. Lauch Public RPC Node +## 13. Lauch Public RPC Node -## 13. Domain(Explorer+RPC) / Faucet +## 14. Domain(Explorer+RPC) / Faucet -## 14. Migration Bridge +## 15. Migration Bridge Need to confirm the UI + allowance (https://github.com/QuarkChain/quarkchain-migrate-website/issues/1) -## 15. Roll Bridge +## 16. Roll Bridge Need to determine the ERC20 token listed on the UI -## 16. op-monitor + grafana / FDG watcher / FDG test +## 17. op-monitor + grafana / FDG watcher / FDG test -## 17. Chain monitor +## 18. Chain monitor balance of batacher / proposer / challenger / batchInbox for batcher -## 18. Firewall and 2fa +## 19. Firewall and 2fa port list ```bash ssh @@ -312,11 +312,11 @@ sudo ufw allow from 65.21.21.253 to any port 8547 proto tcp sudo ufw allow from 65.109.110.98 to any port 8545 proto tcp ``` -## 19. Update doc +## 20. Update doc -## 20. Minotor migration/bridge website +## 21. Minotor migration/bridge website -## 21. Tests +## 22. Tests - proposer / batcher / challenger can submit a tx successfully - L1 cost shown on the explorer - QKC cost [verification](https://explorer.mainnet.l2.quarkchain.io/tx/0xfb2f61f252e409f590d2c3f1f3dc68fb48d76bbbf731391b8efade1d1aaaf411) From c1c98cdbb5d6ec48a88df56158addb99c20812d9 Mon Sep 17 00:00:00 2001 From: qiang Date: Fri, 26 Dec 2025 18:35:31 +0800 Subject: [PATCH 27/27] fix comment --- L2/deployment.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/L2/deployment.md b/L2/deployment.md index 4edea3a..4512bd2 100644 --- a/L2/deployment.md +++ b/L2/deployment.md @@ -22,7 +22,7 @@ Mainnet admin wallets ## 3. Prepare op-signer service for batcher, proposer and challenger - Setup op-signer service for op-proposer/op-batcher/op-challenger (https://github.com/QuarkChain/pm/blob/main/op-signer.md) - Fund each signer with ETH. (Setup wallet monitor to watch the balance later) - - Prepare the [remote_signer.json](https://github.com/QuarkChain/pm/blob/main/L2/assets/remote_signer.json) that will be used in opup + - Prepare the remote_signer.json file to be used in opup. You can use this [template](https://github.com/QuarkChain/pm/blob/main/L2/assets/delta_remote_signer.json) as a reference and adjust it according to your environment. ## 4. Prepare deployer and sequencer wallet - Fund deployer with ETH