GLOBAL GOLD · ENGINEERING RECORD · OPERATIONS

Cross-Chain Wiring Ceremony — Deployment Record

Scope: LayerZero V2 peer / hub wiring across 4 chains, one process  ·  Mode: key-signed, DRY_RUN rehearsed first
Keys: this repository never holds a private key — the key-holder supplies signing at the command line; scripts are parameterized.
TESTNET
SEPOLIA MESH · WAVE-2 WIRED
CHAIN REGISTER (IMMUTABLE SUBSTRATE)
CHAINCHAIN IDLZ V2 EIDROLEENDPOINT / OFT
Base Sepolia8453240245HUBendpoint · child OFT
Ethereum Sepolia1115511140161satelliteendpoint · OFT HOME (adapter)
OP Sepolia1115542040232satelliteendpoint · child OFT
Arbitrum Sepolia42161440231satelliteendpoint · child OFT
CEREMONY RUN ORDER
0.Prerequisites — funded deployer EOA, archive-capable RPC per chain, Foundry on PATH. Deploy env pins B1_REQUIRE_REAL_DEPS=true so the script reverts loudly instead of silently wiring mocks. "The one mistake to never repeat": unset v4 addresses once caused a silent mock deploy.
1.Redeploy the B1 fee stack bound to real gGOLD + real Uniswap v4 on each chain. The stack hard-binds gGOLD at construction (no setter). Verify binding on-chain before continuing: systemGGoldPool.ggGoldToken() ==
2.Mesh A — gGOLD OFT any-to-any peers. For every ordered chain pair, oft.setPeer(peerEid, ). Home↔child locks/unlocks; child↔child burns + mints. 12 routes total.
3.Mesh B — vote ingress (M-A). On the Hub: setChainReporter(satEid, ) ×3. On each satellite: reporter.setHub(hubEid, ) — the Guardian-gated setHub IS the peer-set; generic setPeer is intentionally blocked.
4.Mesh C — tier egress (M-C). On the Hub: setChainPassport(satEid, ) ×3. On each satellite: passport.setHub(...) + passport.setPeer(hubEid, ).
5.Re-key the registry from broadcast output, remove the fork-seed marker, and re-snapshot for the dashboard. Registry is the single source of truth; the seeder and dApp read addresses from it — no code edits.
6.Read-only acceptance sweep (no keys, no txs) — run verify-wave2 against every chain. Re-running is safe: registration, pool init and LP mints check on-chain state first and skip work already done.
OFT PEER MATRIX — 12 ROUTES SET
from \ toBASEETHOPARB
Base Sepolia
Eth Sepolia
OP Sepolia
Arb Sepolia
Plus 6 hub registrations (3 reporters + 3 passports) and 6 satellite→hub bindings. Peer addresses recorded as bytes32 in the registry — redacted here.
ACCEPTANCE SWEEP — PER CHAIN, READ-ONLY
[✓]Hook fee table == locked production curves, all 12 cells (values redacted)
[✓]Hook MAX_FEE_PIPS sanity bound
[✓]systemGGoldPool.ggGoldToken() == real gGOLD for the chain
[✓]v4 PositionManager.poolManager() == registry PoolManager
[✓]Volatility scalars (Hub + Membrane) at 1.0× identity
[✓]OFT mesh peers — all 12 routes resolve
[✓]Satellite reporter / passport peers(hubEid) == hub
[✓]Hub reporter / passport bytes32 maps per satellite
92 / 92 ON-CHAIN CHECKS PASSED
ceremony/wire.js · verify-wave2.js · LIVE_SEED_RUNBOOK.mdtestnet record · addresses & parameter values redacted