L2 development
Evidence level: Normative design. CoNET-DLE is a controlled specification set. This page tells a developer how to work against those documents. It is not a production SDK, a production tip RPC, or evidence that asset ingress is enabled.
Public site: https://gitbook.conet.network/developers/l2.html
CoNET L1 (chainId 224422) is live. DLE is not documented here as a launched production system. Digest pages under L2 — CoNET-DLE explain the design; they do not create requirements. Byte-level behavior is controlled by the public whitepaper and the three DLE-*Spec.md files.
Reviewed whitepaper revision: 2026-09-23. Laboratory honesty-track review: Lab honesty track. Latest runtime scrape: 2026-09-23T15:16:45.701Z, about 6.22 days after the nominal 30-day endpoint. The formal seven were 7/7 HTTP-reachable, clock-aligned, sticky operator-inventory-frozen, leafCount=9750, and seating QUALIFIED; nevertheless pilotQualified=false remained 7/7, heartbeat quorum was only 3/7, and the actual qualification counters were not proven complete. Roster views had expanded to 9–10 entries and the reported “official” standby-ready count had drifted to four because extra Seoul standby roles were not excluded. Final assessment: partial success, not qualified. No P26 is defined.
A public lab explorer is live at https://dle.conet.network/. Use it to inspect isolated Archive health, CoNET-DLE Testnet 0x44c45, the first-group Group ID hash, lab M6 Clusters = 2, and the participant wallets on /archives. Do not treat POST /rpc as a tip Ethereum node. Digest: DLE explorer.
The L1 Global Archive Routing Registry proxy 0x8B261eAECdFfeE9e7aC9fFe73386B0d6C9E76AfB is deployed and verified. Read liveGroupIds() and archivesOf(groupId) on CoNET L1 RPC. That is routing identity, not Archive Certificate and not 30-day qualification.
What you can develop today
| Work | Status |
|---|---|
| Read and implement against the public specs | Allowed — cite filename + section |
| Run published archive vectors / JSON Schema / TLA configurations | Allowed inside their declared domain |
| Write a class-fixed tip state machine from the whitepaper | Design / prototype — not a production deployment |
| Inspect the isolated Archive lab explorer | Allowed — https://dle.conet.network/; heartbeat, Clusters = 2, plus /archives wallets |
| Read the L1 Global Archive Routing Registry | Allowed — archivesOf(1) on rpc1 / publicrpc; registry page |
Call a production DLE tip API or AssetBurnMintGateway |
Not available in this book |
| Treat a Treasury mint as L2 activation | Incorrect — two separate machines |
| Sign production archive certificates | Forbidden until the Archive spec’s production blockers close |
Public repository: CoNET-project/CoNET-DLE.
Controlling sources (read these first)
| Boundary | File | Declared status |
|---|---|---|
| Architecture and frozen product decisions | Decentralization Cluster multi-chain.md | Whitepaper; paired zh-CN |
| Archive bytes, voting, WAL, membership | DLE-Archive-Tendermint-Conformance-Spec.md | Normative draft; production closure incomplete |
| Asset burn, backing, refund, exit | DLE-AssetBurnMintGateway-Invariant-Spec.md | Normative v1 safety specification |
| Operator identity / correlated failure | DLE-OperatorDomainRegistryV1-Spec.md | Normative v1 identity specification |
Precedence when texts disagree: named spec for its boundary → whitepaper → executable vectors for their test domain → GitBook digest. Do not cite Canvas notes as a MUST. Full map: Normative sources.
Protocol shape (for implementers)
The target design has six parts:
- Parallel tips — each ledger advances independently; no event means no block.
- L1 birth certificate — a tip binds to a unique CoNET L1 NFT and exactly one class: asset, storage, or trade.
- EIP-155 Chain ID vs Group ID — plane id is CoNET-DLE Testnet
0x44c45; each live group’s user-visible Group ID is its L1 register tx hash; L1 uintgroupIdis a storage key only. G2’s user-visible id is0xf781f2c2…876d5153(see Lab gather). None of these is CoNET L1224422or the tip NFT id (whitepaper §5.2.0d). Route history from the deployed L1 Global Archive Routing Registry. - Validator production — a per-tip committee proposes event blocks (current design: seven selected validators, five-signature threshold). This is not the CoNET L1 validator set. Archives do not produce blocks.
- Archive finality — the hosting archive group replays the candidate and finalizes with Tendermint-style prevote / precommit certificates.
- Separated economics — protocol value fees, execution reserves, and availability budgets are different ledgers.
Class is immutable. A tip cannot host arbitrary bytecode or become a general-purpose VM. Digest: ledger classes, archive plane, economics.
ERC-20 path into DLE (not live)
A foreign ERC-20 must already be a Treasury-canonical CoNET L1 token. See Bring an ERC-20 into CoNET. DLE never burns a foreign-chain contract directly.
Treasury-canonical ERC-20 on CoNET L1
│ exact proxy + version
│ AssetAdmissionRegistry = ACTIVE
│ approved pool + frozen TWAP adapter
▼
BURNED_PENDING → ACTIVATED (or REFUNDED if genesis misses the deadline)
│
▼
asset-class tip (claim against burned units, not a wrapped L1 transfer)
Even conet-USDC must pass those gates in the design. Production asset ingress and new-chain admission remain disabled pending measured economic evidence. Digest: Cross-chain assets in DLE.
Suggested implementation order
- Clone CoNET-DLE and pin the whitepaper revision you implement.
- Pick one boundary: Archive conformance, Asset gateway invariants, or Operator-domain identity. Do not mix requirements across files without citing both.
- Implement against the spec’s frozen vectors / schemas. Record the revision in your artifact.
- Keep L0 coordination (wallet-addressed envelopes) and L1 settlement (Treasury, CNET gas) as external dependencies. DLE does not replace Layer Minus or CoNET L1.
- Stop at the documented production blockers: second independent Archive implementation, wrapper / networking / custody gates, and formal-verification release items in the Asset spec.
What not to claim
- Do not describe GitBook pages as the wire encoding.
- Do not treat Explorer-verified Treasury bytecode as an
AssetBurnMintGateway. - Do not use L1 validator counts as a DLE committee census.
- Do not invent additional
dle.*hostnames. The authorized lab explorer is https://dle.conet.network/. Do not write that hostname into Solidity. - Do not treat
0x44c45as CoNET L1 or as Group ID. Do not display L1 uint1or2as Group ID. The first group’s user-visible Group ID is the L1 register transaction hash. The lab M6 second Group ID is the G2 L1registerLiveGrouptx; laboratory keccak is an alias only. - Do not present a successful L1 bridge as “the asset is on L2.”
- Do not treat lab M6 fission, M7 typed roots, laboratory Archive Certificates, HTTP
:27101gather, or repository EIP-712 unit tests as production DePIN or as the start of 30-day qualification. - Do not treat
npm run runtime:test159/159 as evidence that all seven live G1 hosts stay healthy. P23 keep-deploy evidence is landed as 6/7LIVE_OKplus fd-01 new-chain 409→accept; official standby fd-06 HTTP is unstable (later remapped). P24 wires isolatednode.tsonly. Do not write 7/7 healthy. - Do not treat a started 30-day clock, a non-green Explorer clock chip, or public SPA
index-C8IdTq4H.jsas 30-day qualification.pilotQualifiedstays false. Do not invent P26. - Do not treat an elapsed 30-day wall clock as
PilotQualificationGatesuccess. The operator clock facade intentionally returnspilotQualified: false; rotations, re-homes, and takeovers require independent terminal evidence. - Do not treat
inventoryFrozenas a frozen roster. It blocks new hash-catalogue writes, not replay/catch-up locator writes or roster expansion. - Do not consume
officialStandbyReadyCount=4as proof of four official standbys. The frozen formal boundary is two; the observed four is a classification drift caused by extra standby roles entering the count.
Lab gather (2026-08-16, reviewed 2026-08-18)
This is the current laboratory gather against whitepaper §5.2.0e M6–M7 plus the 2026-08-18 honesty-track review. It is not a production SDK and not 30-day qualification.
| Item | Result |
|---|---|
| Whitepaper revision | 2026-09-23 |
| Public explorer | https://dle.conet.network/ — Home Clusters = 2; clock overlay SPA index-C8IdTq4H.js |
| Public health | https://dle.conet.network/health — liveGroupCount: 2; pilotStartedAt=2026-08-18T09:53:58.092Z; pilotQualified=false |
| Developer digest | this page; explorer facts: DLE explorer; honesty review: Lab honesty track |
| Runtime / CLI | CoNET-project/CoNET-DLE — M6/M7 live gather plus repository P12–P22 engines |
Identifiers (do not mix)
| Identifier | Value | Meaning |
|---|---|---|
| EIP-155 Chain ID | 0x44c45 / 281669 |
CoNET-DLE Testnet. Wallets / eth_chainId. |
| First Group ID | 0x3076a806de71ab75b2d48063cc3f1e7d8f8e3d54cb1d45a7469c75c9276f2ad0 |
L1 bootstrap registerLiveGroup tx. Home capsule under Chain ID. Opens Blockscout /tx/…. |
| Lab M6 second Group ID | 0xf781f2c23fe3b3dac09dc3e1929016b0af200ee93978e916df64d750876d5153 |
L1 registerLiveGroup tx. Home Group ID under Clusters. Opens Blockscout /tx/…. Laboratory keccak 0x7b3b8eb9…7f9b1a07 aliases it. |
L1 uint groupId |
1 / 2 |
Storage keys for the first and second groups. Not shown as Group ID. |
| Marker NFT | 6000000006 |
Lab fission marker on the second group. Not NFT 42. |
| Marker hash | 0x7ca21e5aa612caa12bbd137aa374d30a113d42c1f60ea411fdb6998a63e2345c |
labFissionMarkerHash seeds from the laboratory keccak so this hash stays valid after the register-tx cutover. Do not recompute it from the register tx. |
What landed
- Second archive group. Seven greenfield hosts run
/home/peter/dle-m6-g2on TCP 27101 withenableBft: falseandenableOndemand: false. They must not compete for NFT 42 Archive Certificates. - Plane-wide hash evidence. JSON-RPC
null/planeWideNull: trueonly after every live group returns a trusted this-groupnotFound. One group timeout isunavailable, not plane-wide null. A this-group miss staysnotFound+planeWideNull: false. - Hop-1 stays on the hosting group. After
locatereturnschainNftId, hop-1 queries only that group’shistoryProviders. A foreign-group hop failure must not fall back to a local replica as RPC truth. - First group kept. NFT 42 BFT AC, on-demand 30, and the Mode A newchain user remain on the first group. Lab chains opened on the first group copy NFT 42’s Group ID and must not increment Clusters.
- Explorer / GitBook. Public Home shows Clusters = 2 and a second Group ID capsule that opens the G2 L1 register tx on Blockscout. After the 2026-08-16 keep-deploy, hosts emit that tx as
hop1.ownGroupId/liveGroupIds. This page and DLE explorer state the same facts.
Lab M7 typed roots (2026-08-16)
tipStateRoot and membershipRoot are first-class hash kinds. dle_locateHash / dle_getByHash return kind=tipStateRoot or kind=membershipRoot plus a typed object (DleLabTipStateRootV1 / DleLabMembershipRootV1), not the Archive Certificate.
| Rule | Meaning |
|---|---|
| First-write-wins | The same membership / tip root at a later height keeps the first locator. |
ZERO32 |
All-zero roots are not catalogued. |
| Side-index | Indexing these roots must not fail the parent AC. |
| Explorer | /hash/<root> shows Tip state root / Membership root pills. |
| Still not | Production DePIN or 30-day qualification. G2 L1 registerLiveGroup already landed. |
G2 has BFT off, so live M7 objects appear on the first group’s NFT 42 Archive Certificates (and first-group newchain tipStateRoot).
Lab honesty track (2026-08-18)
The repository engine now uses laboratory EIP-712 for seating, challenge, BFT, on-demand attests, (Q_V), freeze-then-bind beacons, wait-hook honesty, lab hashIndexRoot bind, and official standby readiness. Full npm run runtime:test is 159/159. Extra fd-08 does not count toward official standby readiness. Isolated node.ts (P24) uses the same officialStandbysReady callback as lab-cli and does not start the seating tick.
That is engine + tests. P23 then keep-deployed the P12–P22 binary to official G1: 6/7 LIVE_OK, fd-01 new-chain 409 → accept, fd-06 HTTP later remapped. Do not write that the public lab “already cut over to EIP-712 on all seven hosts and stays healthy.”
P25 Explorer overlays landed historically: Certificates + Home show non-green chips for officialStandbysReady / hashIndexCommittedInAc. Green pills stay seatingQualified === true only. Home / archive-detail seating copy is lab EIP-712, never HMAC.
Clock + Explorer clock overlay (not P26): Clock started 2026-08-18T09:53:58.092Z (pilotQualified=false). Home + Certificates show a non-green clock chip. The wall-clock endpoint elapsed on 2026-09-17T09:53:58.092Z. The post-window scrape on 2026-09-23T15:16:45.701Z still reported pilotQualified=false on all formal seats. It also exposed a split between clock, inventory freeze, seating, heartbeat, and the real qualification gate: seating was 7/7, heartbeat quorum 3/7, while the required rotation / re-home / takeover counters had no terminal completion evidence. Roster views had expanded to 9–10 and officialStandbyReadyCount=4 was classification drift, not a new official boundary. Final assessment: partial success, not qualified. Digest: Lab honesty track.
What this does not close
- A durable 7/7 healthy official G1 mesh (fd-06 HTTP was unstable after P23; later remapped)
- Production DePIN transport (lab HTTP
:27101is not production gossip) - 30-day qualification (the wall clock elapsed, but
pilotQualified=falseremained 7/7 and no terminal evidence proved100rotations /30re-homes /100takeovers) - An intact frozen 5+2 roster boundary (
syncRosterexpanded to 9–10 and the standby-ready count drifted to four) - Production Archive Certificate / EIP-712 L1 wrapper / corpus SSZ object / OperatorDomain
Related
- L2 overview
- Global Archive Routing Registry
- DLE explorer
- Lab honesty track
- Design thesis
- Normative sources
- Developers home