feat(chain): canonical Zoo L2 chain.yaml
Zoo is an L2 on the Lux primary network — rides Lux's validator
set via primary-network staking and does not own a sovereign
networkID. Zoo's identity surfaces through its EVM chainID + the
brand fields.
Model:
- network.parent = lux → inherits Lux's networkID per env
- chains[*].evmChainIds.{mainnet,testnet,devnet} = {200200, 200201, 200202}
- Each chain gets its own chainID via CreateChainTx on Lux's P-chain
Per-env chainIDs sourced from
~/work/lux/genesis/configs/zoo-{env}/genesis.json — single source
of truth, no duplication in this manifest.
Lux primary L1 declares Zoo as an L2 child in its own chain.yaml.
This commit is contained in:
+84
@@ -0,0 +1,84 @@
|
||||
version: "1"
|
||||
|
||||
# Zoo L2 — child of the Lux primary network.
|
||||
#
|
||||
# Model:
|
||||
# Zoo is an L2, not a sovereign L1. It rides Lux's validator set
|
||||
# via primary-network staking. Zoo does NOT have its own
|
||||
# `networkID` per env — it inherits the Lux networkID (1 / 2 / 3)
|
||||
# and adds its own chain(s) via CreateChainTx on Lux's P-chain.
|
||||
#
|
||||
# The Zoo brand identity surfaces through the chain's evmChainID
|
||||
# (and chain name + Zoo logo/domain).
|
||||
#
|
||||
# Per-env Zoo EVM chainIDs are sourced from
|
||||
# ~/work/lux/genesis/configs/zoo-{mainnet,testnet,devnet}/genesis.json
|
||||
# (config.chainId field — single source of truth).
|
||||
#
|
||||
# To bootstrap a Zoo chain in an env:
|
||||
# CreateChainTx(networkID=<lux env>, vmID=evm, genesis=<zoo-{env}/genesis.json>)
|
||||
# Returns Zoo's chainID (ids.ID); evmChainID is baked into the
|
||||
# genesis blob.
|
||||
|
||||
network:
|
||||
name: "Zoo"
|
||||
slug: zoo
|
||||
type: l2
|
||||
# Parent IS the Lux primary L1. Zoo uses Lux's validator set;
|
||||
# consensus and P-chain wire live on Lux.
|
||||
parent: lux
|
||||
dbType: zapdb
|
||||
compression: zstd
|
||||
|
||||
# L2 has no per-env primary networkID — it inherits its parent's
|
||||
# networkID (1/2/3 = lux mainnet/testnet/devnet). The per-env block
|
||||
# below only carries L2-side knobs (image tag, RPC URL).
|
||||
networks:
|
||||
mainnet:
|
||||
imageTag: "latest"
|
||||
rpcUrl: "https://api.zoo.network"
|
||||
wsUrl: "wss://api.zoo.network/ws"
|
||||
snapshotInterval: 3600
|
||||
testnet:
|
||||
imageTag: "latest"
|
||||
rpcUrl: "https://api.zoo-test.network"
|
||||
snapshotInterval: 1800
|
||||
devnet:
|
||||
imageTag: "latest"
|
||||
rpcUrl: "https://api.zoo-dev.network"
|
||||
|
||||
# Zoo chains. Each gets its own chainID via CreateChainTx on Lux's
|
||||
# P-chain. evmChainIDs are baked into the chain's genesis blob and
|
||||
# match what the lqd/luxd binary advertises for `eth_chainId`.
|
||||
chains:
|
||||
- name: zooEVM
|
||||
vmType: evm
|
||||
description: "Zoo EVM — DeAI / DeSci contract chain"
|
||||
evmChainIds:
|
||||
mainnet: 200200
|
||||
testnet: 200201
|
||||
devnet: 200202
|
||||
rpcPath: "/ext/bc/zooEVM/rpc"
|
||||
wsPath: "/ext/bc/zooEVM/ws"
|
||||
genesisFile: "~/work/lux/genesis/configs/zoo-{env}/genesis.json"
|
||||
|
||||
token:
|
||||
name: "Zoo"
|
||||
symbol: "ZOO"
|
||||
decimals: 18
|
||||
|
||||
brand:
|
||||
displayName: "Zoo"
|
||||
legalEntity: "Zoo Labs Foundation"
|
||||
primaryColor: "#16A34A"
|
||||
logo: "./brand/zoo.svg"
|
||||
domains:
|
||||
explorer: "explorer.zoo.network"
|
||||
docs: "docs.zoo.ngo"
|
||||
rpc: "api.zoo.network"
|
||||
main: "zoo.ngo"
|
||||
|
||||
# Zoo inherits every Lux primary-network precompile via its parent.
|
||||
# Zoo-specific precompiles (if any) go here, addressed in Zoo's own
|
||||
# EVM at activation timestamps tracked per env.
|
||||
precompiles: []
|
||||
Reference in New Issue
Block a user