Control center for ChainSafe's work on the Canton CIP "Extending Mainnet: Tokenomics Alignment Across the Entire Canton Network" (Shaul Kfir, Digital Asset).
This repo has almost no product code. It orchestrates, documents, and navigates the
initiative: the plans, the architecture, the LocalNet harness, the analysis, the deployment specs,
and the coordination with Digital Asset. The actual code lives in the splice/ submodule —
Digital Asset's canton-network/splice-multi-sync feature fork, where the PoC is up as draft
PRs so it runs DA's CI.
Start here: AGENTS.md — the sibling-project map and navigation guide.
Generalize Canton's Global-Synchronizer traffic purchase to dedicated (non-global) synchronizers: burn Canton Coin on the global sync keyed by a dedicated sync id, and that sync's operator grants the purchased traffic on its own sequencer. MVP is no-discount; later come per-synchronizer pricing, transaction-class discounts, staking, and operator rewards.
Details: docs/architecture.md (the map) · docs/design/
(implementation design) · docs/cip/ (CIP writeups) ·
docs/planning/ (the work breakdown).
The repo follows a deliberate control-center pattern — a small, uniform structure so any agent or teammate can orient fast:
| # | Element | Here |
|---|---|---|
| 0 | Sibling-project map | AGENTS.md — what the sibling repos are + how to navigate |
| 1 | Architecture / docs | docs/ — architecture.md, design/, cip/, planning/, localnet.md |
| 2 | Deployment | deploy/ — consume Splice compose/Helm + operator-node overlay (RFC-001) |
| 3 | Agent-navigation APIs/services | tools/ — navigator.sh (skeleton; RFC-002) |
| 4 | Centralized telemetry | telemetry/ — analytics/logging/telemetry (skeleton; RFC-003) |
| 5 | Historical records | history/ — rfcs/, meetings/, experiments/, incidents/, CHANGELOG.md |
Plus the working pieces: splice/ (submodule → the code), scripts/ (LocalNet harness),
sync-pricing/ (parked off-ledger pricing analysis).
| Repo | Role |
|---|---|
| canton-extending-mainnet (this) | The control center: docs, plans, harness, analysis, coordination. The issue tracker for all epics: T0 (harness/dev-env), T1 (analysis/DA), E0–E10 (the fork's feature work). |
canton-network/splice-multi-sync (DA's fork; the splice/ submodule) |
The code — DA's multi-sync feature fork of canton-network/splice (monorepo: Daml daml/ + token-standard/, Scala apps/, TS frontends, vendored Canton canton/, Helm cluster/). The PoC ladder lands on the long-running feat/dedicated-sync via stacked PRs that run DA's CI; see the fork's open PRs for what's in flight. (Originally developed on the ChainSafe/splice fork — now superseded by this one.) |
| ChainSafe/canton-cip-docs | Archived — CIP design docs merged here under docs/cip/. |
See AGENTS.md for the full sibling list (x402 facilitator, MCP server, burn
snapshotter, platform docs, …).
- Orient (people): read
AGENTS.md. Agents: runtools/navigator.sh, the navigation tooling (a read-only CLI seed today; RFC-002 graduates it into MCP tools overcanton-mcp-server). Agent orientation is a tooling concern, not README prose. - Set up + build/test:
docs/development.md— Nix/direnv env + thesbt damlBuild/damlTestcommands (start here to run the tests). - Run LocalNet (Docker; ~10 GB RAM for multi-sync) — drives the
splice/submodule:Full guide:scripts/localnet-up.sh # then scripts/localnet-e2e.sh ; tear down: scripts/localnet-down.shdocs/localnet.md. - Work on the code:
cd splice, work on a branch, push tocanton-network/splice-multi-sync(the submodule'sorigin), thengit add splicehere to bump the pointer. Push the submodule before the superproject. - Pricing analysis (parked; pure Daml, SDK 3.4.8):
cd sync-pricing && daml test.
- Done: the first two PoC rungs are approved and squash-merged into the fork's
feat/dedicated-sync: governance registration (RegisteredSynchronizer+DsoRules_RegisterSynchronizer) and CC-funded buy, which extends the existingAmuletRules_BuyMemberTrafficwith a registered-synchronizer gate and adds an operator observer onMemberTraffic. The ladder continues with extension reward reporting (per-round activity commitment + budget-bounded expansion throughProcessRewardsV2) and registration lifecycle (offboard vote), both green on DA's CI and in review. Plus: the multi-sync LocalNet harness (verified) and the shadow pricing engine (green). - Next + roadmap:
docs/planning/. This README is intentionally a thin front door; the sequenced roadmap and per-workstream detail live there, not here.
Conventions: never reference Claude/Anthropic in commits or PRs; direct-language docs (no em/long
dashes). The pricing engine is a parked reference (the MVP reuses Splice's computeSynchronizerFees
splitAndBurnunchanged); it also surfaced a CIP Section 6.2 formula bug tracked to raise with DA (seedocs//sync-pricing/).