Bring Your Own Topology
The single-sandbox demo and a multi-participant Canton network share the same DAR, the same UI, and the same YAML schema. What changes is who hosts which party and which JSON API the frontend talks to.
YAML
topology: network
orgs:
- id: goldman
party: "GoldmanParty::1220abc..."
displayName: Goldman Sachs
hint: GoldmanParty
ledgerUrl: https://canton.goldman.example
subdomain: goldman
role: trader
- id: jpm
party: "JPMParty::1220def..."
displayName: JPMorgan
hint: JPMParty
ledgerUrl: https://canton.jpm.example
subdomain: jpm
role: trader
- id: ops
party: "OperatorParty::1220ghi..."
displayName: Platform Operator
hint: OperatorParty
ledgerUrl: https://canton.operator.example
role: operator
- id: reg
party: "RegulatorParty::1220jkl..."
displayName: Regulator
hint: RegulatorParty
ledgerUrl: https://canton.regulator.example
role: regulator
routing: subdomain # or `path` if you don't want per-org DNS
Schema constraints (enforced by shared-config/src/schema.ts):
- ≥ 1
operatororg. - ≥ 1
regulatororg (multi-jurisdiction allowed since Apr 2026). - ≥ 2
traderorgs. - Every
partymust be the fullParty::fingerprintform when running against a real participant — bare hints triggerDAML_AUTHORIZATION_ERROR.
What changes in the stack
| Layer | Change |
|---|---|
| Daml | Nothing — same DAR, same templates. Multi-regulator hardening shipped in v2 of the regulator role; CSA / SettlementAudit projections work across multiple regulators. |
| Oracle / Scheduler | Run as their own participant(s). They hold Scheduler (and optionally Operator) parties. Set ledgerUrl accordingly. |
| Frontend | The /api/ledger proxy resolves the active org from the URL (/org/<orgId> or <subdomain>.<host>) and targets that org's ledgerUrl. |
| Auth | auth.provider: oidc typically, with auth.builtin minting per-participant ledger JWTs. Each Canton participant validates against the IRSForge auth service JWKS. |
What you don't change
- DAR upload: same DAR uploaded to each participant.
- Pricing engine, lifecycle scheduler, regulator UI: untouched.
- YAML keys other than
topology,orgs[],routing,auth.
See also
- Topology — the full conceptual reference
- Deploying Production — operational walkthrough
reference/config-yaml— every key documented