with one click
canton-network-repos
// Canton Network open-source ecosystem guide covering DAML SDK, Canton runtime, and Splice applications. Use when working with Canton Network, DAML smart contracts, or building decentralized applications.
// Canton Network open-source ecosystem guide covering DAML SDK, Canton runtime, and Splice applications. Use when working with Canton Network, DAML smart contracts, or building decentralized applications.
Discover and extract sitemaps from any website using SitemapKit. Use this skill whenever the user wants to find pages on a website, get a list of URLs from a domain, audit a site's structure, crawl a sitemap, check what pages exist on a site, or do anything involving sitemaps or site URL discovery โ even if they don't explicitly say "sitemap". Requires the sitemapkit MCP server configured with a valid SITEMAPKIT_API_KEY.
GitHubใฎใใซใชใฏใจในใ๏ผPR๏ผใไฝๆใใ้ใซไฝฟ็จใใพใใๅคๆดใฎใณใใใใใใใทใฅใPRไฝๆใๅซใๅฎๅ จใชใฏใผใฏใใญใผใๆฅๆฌ่ชใงๅฎ่กใใพใใใPRใไฝใฃใฆใใใใซใชใฏใจในใใไฝๆใใpull requestใไฝๆใใชใฉใฎใชใฏใจในใใง่ชๅ็ใซ่ตทๅใใพใใ
Extract readable transcripts from Claude Code and Codex CLI session JSONL files
Creates, updates, or reviews a project's gen-env command for running multiple isolated instances on localhost. Handles instance identity, port allocation, data isolation, browser state separation, and cleanup.
Manages Linear issues, teams, and projects via CLI. Lists issues, creates tasks, views details, links issues, and runs GraphQL queries. Must use for "my Linear issues", "create Linear task", "link issues in Linear", "Linear API query", or any Linear project management request.
Manages Tilt development environments via CLI and Tiltfile authoring. Must use when working with Tilt or Tiltfiles.
| name | canton-network-repos |
| description | Canton Network open-source ecosystem guide covering DAML SDK, Canton runtime, and Splice applications. Use when working with Canton Network, DAML smart contracts, or building decentralized applications. |
This skill provides comprehensive knowledge about the Canton Network open-source ecosystem, repository relationships, and build processes.
Use this skill when:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Splice Version (e.g., 0.5.4) โ
โ github.com/digital-asset/decentralized-canton-sync โ
โ Applications: Validator, SV, Wallet, Scan, Amulet (CC) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ depends on
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Canton Version (e.g., 3.4.9) โ
โ github.com/digital-asset/canton โ
โ Runtime: Participant, Sequencer, Mediator, Admin API โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ depends on
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ DAML SDK (e.g., 3.4.9) โ
โ github.com/digital-asset/daml โ
โ Compiler: damlc, LF Engine, Ledger API, stdlib, protobuf โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
github.com/digital-asset/daml)Purpose: Smart contract language, compiler, and runtime libraries.
Key Directories:
daml/
โโโ sdk/
โ โโโ compiler/damlc/ # Haskell compiler source
โ โ โโโ lib/DA/Cli/Options.hs # --target version validation
โ โโโ daml-lf/
โ โ โโโ language/ # LF version definitions (Scala)
โ โ โโโ engine/ # LF execution engine
โ โ โโโ archive/ # DALF protobuf format
โ โโโ canton/ # Canton runtime (submodule)
โโโ ledger-api/ # gRPC API definitions
โโโ VERSION # SDK version string
LF Version Definitions (LanguageVersion.scala at v3.4.9):
// V2 versions defined
val List(v2_1, v2_2, v2_dev) = AllV2 // Line 51 - v2_2 IS defined
// Version ranges
case Major.V2 => VersionRange(v2_1, v2_2) // Line 171 - StableVersions includes v2_2
def AllVersions = VersionRange(v2_1, v2_dev)
// Features at v2_2:
val flatArchive = v2_2
val kindInterning = flatArchive
val exprInterning = flatArchive
val explicitPkgImports = v2_2
val unsafeFromInterfaceRemoved = v2_2
Note: v2_2 IS in SDK v3.4.9 source. Older snapshots may not include it.
damlc Target Validation (Options.hs):
lfVersionOpt :: Parser LF.Version
-- Validates against LF.supportedOutputVersions
-- Error: "Unknown Daml-LF version: X" if not in list
github.com/digital-asset/canton)Purpose: Distributed ledger runtime implementing the Canton Protocol.
Key Directories:
canton/
โโโ community/ # Open-source Canton
โ โโโ app/ # CantonCommunityApp entry point
โ โโโ participant/ # Participant node implementation
โ โโโ domain/ # Embedded domain (sequencer/mediator)
โ โโโ common/src/main/daml/ # Built-in DAML packages
โ โโโ AdminWorkflows/ # Ping, party replication DARs
โโโ daml/ # DAML SDK submodule
โโโ daml_dependencies.json # LF library versions
โโโ VERSION # Canton version
โโโ version.sbt # SBT version config
Built-in DARs (embedded in JAR):
canton-builtin-admin-workflow-ping.darcanton-builtin-admin-workflow-party-replication-alpha.darCantonExamples.darEnterprise vs Community:
| Feature | Enterprise | Community |
|---|---|---|
| Main class | CantonEnterpriseApp | CantonCommunityApp |
| Transaction processing | Parallel | Sequential |
| Pruning | Available | Limited |
| Database | PostgreSQL, Oracle | PostgreSQL only |
| HA Domain | Supported | Embedded only |
github.com/digital-asset/decentralized-canton-sync)Purpose: Decentralized synchronizer governance, Amulet (Canton Coin), and network applications.
Key Directories:
decentralized-canton-sync/
โโโ project/
โ โโโ CantonDependencies.scala # Version config, LF versions
โ โโโ DamlPlugin.scala # DAR build logic
โโโ daml/
โ โโโ splice-amulet/ # Canton Coin token contracts
โ โโโ splice-wallet/ # Wallet contracts
โ โโโ splice-dso-governance/ # DSO governance
โ โโโ */daml.yaml # Package configs with --target
โโโ apps/
โ โโโ sv/ # Super Validator app
โ โโโ validator/ # Validator app
โ โโโ wallet/ # Wallet backend
โ โโโ scan/ # Payment scan service
โโโ cluster/images/ # Docker image builds
โ โโโ canton-community/ # Community participant image
โโโ daml-compiler-sources.json # Compiler version reference
Critical Configuration (CantonDependencies.scala):
object CantonDependencies {
val version: String = "3.4.9"
val daml_language_versions = Seq("2.1") // โ LF target version
val daml_libraries_version = version
val daml_compiler_version = sys.env("DAML_COMPILER_VERSION")
}
Package Target (daml/splice-amulet/daml.yaml):
sdk-version: 3.3.0-snapshot.20250502.13767.0.v2fc6c7e2
build-options:
- --target=2.1 # Explicit LF 2.1 target
| Splice | Canton | DAML SDK | Protocol | LF (Default) | LF (With SDK 3.4.9) |
|---|---|---|---|---|---|
| 0.5.4 | 3.4.9 | 3.4.9 | PV34 | 2.1* | 2.2 (verified) |
| 0.5.3 | 3.4.8 | 3.4.8 | PV34 | 2.1* | 2.2 |
| 0.4.x | 3.3.x | 3.3.x | PV33 | 2.1 | 2.1 |
*Open-source Splice 0.5.4 ships with SDK snapshot 3.3.0-snapshot.20250502 which predates LF 2.2.
Root Cause (Verified): The public Splice release uses an SDK snapshot from May 2, 2025, but LF 2.2 was added to the SDK on October 3, 2025. Updating to SDK 3.4.9 enables LF 2.2 builds.
Key insight: LF 2.2 is fully available in open-source SDK v3.4.9. The Splice project simply needs to be updated to use the newer SDK.
Package IDs are cryptographic hashes derived from:
--target)Changing LF version = Different package IDs = Incompatible packages
Canton validates package upgrades:
cd canton
sbt "community/app/assembly"
# Output: community/app/target/scala-2.13/canton-community.jar
cd decentralized-canton-sync
sbt compile # Requires DAML_COMPILER_VERSION env var
LF 2.2 is available in SDK v3.4.9. The following steps have been verified to work:
Edit project/CantonDependencies.scala:
val daml_language_versions = Seq("2.2")
Update nix/daml-compiler-sources.json:
{ "version": "3.4.9" }
Update all daml/*/daml.yaml files:
sdk-version: 3.4.9
build-options:
- --target=2.2
Remove invalid warning flags (not present in SDK 3.4.9):
# Remove -Wno-ledger-time-is-alpha from all daml.yaml files
Build packages:
cd decentralized-canton-sync
nix-shell -p daml-sdk --run "daml build -p daml/splice-util"
nix-shell -p daml-sdk --run "daml build -p daml/splice-amulet"
Verified: splice-util and splice-amulet build successfully with LF 2.2 and SDK 3.4.9.
Both Splice and Canton can be built with LF 2.2 from entirely open-source code:
Update Canton's daml.yaml files:
cd canton/community
# Update all daml.yaml files to sdk-version: 3.4.9 and --target=2.2
perl -pi -e 's/sdk-version: 3\.3\.0-snapshot\.[^\n]*/sdk-version: 3.4.9/g' **/daml.yaml
perl -pi -e 's/--target=2\.1/--target=2.2/g' **/daml.yaml
Rebuild Canton:
sbt "canton-community-app/assembly"
Community-built DARs have identical package IDs to enterprise:
canton-builtin-admin-workflow-ping-3.4.9-fbeb863dab36da66d99...This confirms full compatibility with enterprise deployments.
| Purpose | Repository | File |
|---|---|---|
| LF versions (Scala) | daml | sdk/daml-lf/language/.../LanguageVersion.scala |
| damlc validation | daml | sdk/compiler/damlc/lib/DA/Cli/Options.hs |
| Canton version | canton | VERSION |
| Canton DARs | canton | community/common/src/main/daml/ |
| Splice LF config | splice | project/CantonDependencies.scala |
| Package targets | splice | daml/*/daml.yaml |
| Docker builds | splice | cluster/images/*/Dockerfile |
supportedOutputVersionsdaml damlc --help for supported targetsunzip -p package.dar META-INF/MANIFEST.MF | grep Sdk-Version--target across all builds