{"id":50218117,"url":"https://github.com/canton-network/cf-docs","last_synced_at":"2026-05-26T10:03:13.713Z","repository":{"id":351619511,"uuid":"1118291699","full_name":"canton-network/cf-docs","owner":"canton-network","description":"home for the new unified Canton Foundation docs","archived":false,"fork":false,"pushed_at":"2026-05-22T18:50:07.000Z","size":121874,"stargazers_count":1,"open_issues_count":44,"forks_count":6,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-22T20:25:04.891Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://docs.canton.network","language":"MDX","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/canton-network.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-12-17T14:37:52.000Z","updated_at":"2026-05-22T15:41:52.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/canton-network/cf-docs","commit_stats":null,"previous_names":["digital-asset/docs","digital-asset/cf-docs","canton-network/cf-docs"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/canton-network/cf-docs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/canton-network%2Fcf-docs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/canton-network%2Fcf-docs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/canton-network%2Fcf-docs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/canton-network%2Fcf-docs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/canton-network","download_url":"https://codeload.github.com/canton-network/cf-docs/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/canton-network%2Fcf-docs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33514912,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T03:12:49.672Z","status":"ssl_error","status_checked_at":"2026-05-26T03:12:47.976Z","response_time":63,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-05-26T10:03:12.624Z","updated_at":"2026-05-26T10:03:13.708Z","avatar_url":"https://github.com/canton-network.png","language":"MDX","funding_links":[],"categories":[],"sub_categories":[],"readme":"Copyright (c) 2026 Canton Network. All rights reserved.\nSPDX-License-Identifier: Apache-2.0 AND CC-BY-4.0\n\ndocs\n====\n\nThis repo manages the contents of the docs.canton.network website.\n\n## Local Development\n\n### Prerequisites\n\n- Node.js 20.17 or higher (LTS recommended)\n\n### Running the dev server\n\n```bash\ndirenv allow\ncd docs-main \u0026\u0026 mintlify dev\n```\n\nThe site will be available at http://localhost:3000.\n\n### Useful commands\n\n```bash\n# Check for broken links\nmintlify broken-links\n```\n\n### Troubleshooting\n\n**Node version error**: If you see \"mint dev is not supported on node versions below 20.17\", upgrade Node.js:\n\n```bash\n# Using nvm\nnvm install 20\nnvm use 20\n```\n\n## License\n\nThis repository uses a dual-license model:\n\n- **Documentation prose** (`.mdx` files, text content): [Creative Commons Attribution 4.0 International (CC-BY-4.0)](https://creativecommons.org/licenses/by/4.0/) — see [LICENSE-DOCS](LICENSE-DOCS)\n- **Code snippets and configuration** (embedded code examples, scripts, JSON config): [Apache License 2.0](http://www.apache.org/licenses/LICENSE-2.0) — see [LICENSE](LICENSE)\n\n### Direnv + Nix workflow\n\nThis repo includes `.envrc` and `shell.nix` for a reproducible local toolchain.\nThe Nix package set is pinned by `nix/nixpkgs.src.json`.\n\nRequired:\n- `direnv`\n- `nix`\n\nThen run:\n\n```bash\ndirenv allow\ncd docs-main \u0026\u0026 mintlify dev\n```\n\n### Run all generated reference docs\n\nLoad the repo's `direnv` / `nix` shell first, then rerun all generated reference-doc wrappers in one command. The wrappers also re-exec through the docs repo shell themselves, so they do not pick up a local `x2mdx` checkout from ambient `PATH`:\n\n```bash\ndirenv allow\npython3 scripts/generate_all_reference_docs.py\n```\n\nUse `--dry-run` to print the exact per-step commands without executing them.\n\n### Generate the Version Compatibility Dashboard\n\nThe version dashboard generator collects the public sources that are safe to automate, preserves the fields that still need a manual or owner-approved source, rewrites the dashboard config, and regenerates the published MDX snippet consumed by the version dashboard page.\n\nRun:\n\n```bash\npython3 scripts/generate_network_component_versions.py\n```\n\nor:\n\n```bash\nnpm run generate:version-compatibility-dashboard\n```\n\nBy default this writes:\n\n- `config/repo-version-config.json`\n- `docs-main/snippets/generated/version-dashboard-data.mdx`\n\nUse `--dry-run` to inspect the generated config without writing files.\n\nSource rules:\n\n| Dashboard entry | Sourcing rule |\n| --- | --- |\n| `Splice` | Read from the network `/info` endpoint: MainNet `https://docs.global.canton.network.sync.global/info`, TestNet `https://docs.test.global.canton.network.sync.global/info`, DevNet `https://docs.dev.global.canton.network.sync.global/info`. Cross-check against the same network's `/index.html` Docker image tag and Helm chart version. |\n| `Canton` | Keep as manual/fallback until an owner-approved public source is confirmed. The config key is still `damlSdk` for compatibility with the existing dashboard component. |\n| `Daml SDK installer` | Do not use legacy `https://get.daml.com/`; that is the old 2.x Daml assistant path. For Daml 3 / DPM, install DPM with `curl https://get.digitalasset.com/install/install.sh | sh`, then use `dpm install latest`. The latest stable SDK version is exposed at `https://get.digitalasset.com/install/latest`. |\n| `PQS` | Keep as manual/fallback for now. A generator can infer a recommendation from PQS docs compatibility tables, but recent updates were Slack-sourced, so this needs owner confirmation before being treated as authoritative. |\n| `Token Standard` | Read from the npm `latest` dist-tag for `@canton-network/core-token-standard`. |\n| `Wallet SDK` | Read from the npm `latest` dist-tag for `@canton-network/wallet-sdk`. |\n| `dApp SDK` | Read from the npm `latest` dist-tag for `@canton-network/dapp-sdk`. |\n| `Wallet Gateway` | Keep as manual/fallback from the Wallet Gateway Docker image package until package API access is confirmed. Wallet team guidance says not to use the npm package for this row. |\n| `Min Protocol Version` | Keep as manual/fallback until a public live source is available. |\n| `Migration ID` | Read from `synchronizer.active.migration_id` on the network's `/info` endpoint and validate against `sv.migration_id`. |\n| `Splice DAR Versions` | Keep as manual/fallback. Release bundles show shipped DARs, but review on the original automation PR noted that they are not necessarily the DAR versions currently in use. |\n| `Release Notes` | Link to the observed Splice release. |\n| `Primary Scan API` | Static canonical `scan.sv-1...` endpoint for each network. |\n\n### Generate external snippets\n\nExternal snippet extraction from source repositories is documented in [config/snippet-config/update-workflows.md](config/snippet-config/update-workflows.md). Use that workflow when updating snippet configs under `config/snippet-config/` or regenerating checked-in snippets under `docs-main/snippets/external/`.\n\n```bash\nnpm run generate:external-snippets -- --list\nnpm run generate:external-snippets -- canton --source-dir ../canton\n```\n\n### Generate the JSON API reference\n\nThis repo includes a checked-in source config for the Ledger API OpenAPI bundle inputs under `config/x2mdx/ledger-api/source-artifacts.json`.\nThe generator script refreshes the latest configured `openapi.yaml` from the Canton release bundle into the docs tree and rewires `docs-main/docs.json` so Mintlify renders the JSON API reference natively:\n\n```bash\npython3 scripts/generate_json_api_reference.py\n```\n\nor:\n\n```bash\nnpm run generate:json-api-reference\n```\n\nBy default this writes:\n\n- `docs-main/openapi/json-ledger-api/openapi.yaml`\n- `docs-main/docs.json`\n\nThe generated nav is published under `API Reference -\u003e Ledger API -\u003e OpenAPI`, using Mintlify's native generated endpoint pages under `reference/json-api-reference`. The legacy checked-in MDX page at `docs-main/reference/json-api-reference.mdx` is removed by the generator.\n\n### Generate the JSON API AsyncAPI reference\n\nThis repo also includes a checked-in source config for the Ledger API AsyncAPI bundle inputs under `config/x2mdx/ledger-api-asyncapi/source-artifacts.json`.\nThe generator script downloads the configured Canton release bundles, extracts `asyncapi.yaml` into `.internal/cache/x2mdx/ledger-api-asyncapi/`, writes a local x2mdx manifest into `.internal/generated/x2mdx/ledger-api-asyncapi/manifest.json`, and then renders the MDX page through the docs repo `direnv` / `nix` shell.\n\nRun:\n\n```bash\npython3 scripts/generate_json_api_asyncapi_reference.py\n```\n\nor:\n\n```bash\nnpm run generate:json-api-asyncapi-reference\n```\n\nBy default this writes:\n\n- `docs-main/reference/json-api-asyncapi-reference.mdx`\n- `docs-main/docs.json`\n\nThe generated page is placed directly under the top-level `API Reference` dropdown in `docs-main/docs.json`.\n\n### Generate the Ledger bindings API reference\n\nThis repo also includes a checked-in source config for the published Java bindings Javadoc jars at `config/x2mdx/ledger-bindings/source-artifacts.json`.\nThe generator script downloads those jars into `.internal/cache/x2mdx/ledger-bindings/`, writes a local x2mdx manifest into `.internal/generated/x2mdx/ledger-bindings/manifest.json`, and then renders the MDX pages through the docs repo `direnv` / `nix` shell.\n\nRun:\n\n```bash\npython3 scripts/generate_ledger_bindings_api_reference.py\n```\n\nor:\n\n```bash\nnpm run generate:ledger-bindings-api-reference\n```\n\nBy default this writes:\n\n- `docs-main/reference/java-bindings.mdx`\n- `docs-main/reference/java/`\n- `docs-main/docs.json`\n\nThe generated nav is added under the top-level `API Reference` dropdown as `Java Bindings -\u003e Javadocs`, with each nested group populated directly from the generated Java package pages.\n\n### Generate the Daml Standard Library reference\n\nThis repo also includes a checked-in source config for versioned Daml Standard Library docs JSON generation at `config/x2mdx/daml-standard-library/source-artifacts.json`.\nThe generator script uses local SDK artifacts via `dpm` or `daml` to build cached docs JSON snapshots under `.internal/cache/x2mdx/daml-standard-library/`, writes a local x2mdx manifest into `.internal/generated/x2mdx/daml-standard-library/manifest.json`, and then renders MDX pages through the docs repo `direnv` / `nix` shell.\n\nRun:\n\n```bash\npython3 scripts/generate_daml_standard_library_reference.py\n```\n\nor:\n\n```bash\nnpm run generate:daml-standard-library-reference\n```\n\nBy default this writes:\n\n- `docs-main/appdev/reference/daml-standard-library/`\n- `docs-main/docs.json`\n\nThe generated nav is added under the top-level `API Reference` dropdown as `Daml Standard Library`, with the overview page listed first and the generated module pages grouped under a nested `Modules` foldout.\n\n### Generate the Canton protobuf history reference\n\nThis repo also includes a checked-in source config for Canton release-bundle protobuf inputs at `config/x2mdx/protobuf-history/source-artifacts.json`.\nThe generator script discovers stable Canton versions from the source repo tags, downloads the matching `canton-open-source-\u003cversion\u003e.tar.gz` bundles from `canton.io/releases`, extracts the published `protobuf/` tree under `.internal/cache/x2mdx/protobuf-history/`, compiles local descriptor images with `grpc_tools.protoc`, writes a local x2mdx manifest into `.internal/generated/x2mdx/protobuf-history/manifest.json`, and then renders MDX pages through the docs repo `direnv` / `nix` shell.\n\nRun:\n\n```bash\npython3 scripts/generate_canton_protobuf_history.py\n```\n\nor:\n\n```bash\nnpm run generate:canton-protobuf-history\n```\n\nBy default this writes:\n\n- `docs-main/appdev/reference/protobuf-history/`\n- `docs-main/docs.json`\n\nThe generated nav is added under the top-level `API Reference` dropdown as `Canton Protobuf History`, with only the overview page listed in nav. The per-endpoint pages are generated and linked from the overview page but left unlisted.\n\n### Generate the gRPC Ledger API reference\n\nThis repo also includes a checked-in source config for the Ledger API gRPC protobuf surface at `config/x2mdx/grpc-ledger-api-reference/source-artifacts.json`.\nThe generator script reuses the published Canton release-bundle protobuf acquisition flow, filters the resulting protobuf report to `com.daml.ledger.api.v2*`, and writes a dedicated Ledger API-only MDX surface without modifying `x2mdx`.\n\nRun:\n\n```bash\npython3 scripts/generate_grpc_ledger_api_reference.py\n```\n\nor:\n\n```bash\nnpm run generate:grpc-ledger-api-reference\n```\n\nBy default this writes:\n\n- `docs-main/reference/grpc-ledger-api-reference/`\n- `docs-main/docs.json`\n\nThe generated nav is added under the top-level `Reference` dropdown as `gRPC Ledger API Reference`, with the overview page first and the generated package pages grouped under a nested `Packages` foldout.\n\n### Generate the TypeScript bindings reference\n\nThis repo also includes a checked-in source config for published `@daml/types` npm artifacts at `config/x2mdx/typescript-bindings/source-artifacts.json`.\nThe generator script downloads the configured tarballs into `.internal/cache/x2mdx/typescript-bindings/`, installs local package dependencies, renders TypeDoc JSON into `.internal/generated/x2mdx/typescript-bindings/`, writes a local x2mdx manifest, and then rewrites the checked-in Mintlify page through the docs repo `direnv` / `nix` shell.\n\nRun:\n\n```bash\npython3 scripts/generate_typescript_bindings_reference.py\n```\n\nor:\n\n```bash\nnpm run generate:typescript-bindings-reference\n```\n\nBy default this writes:\n\n- `docs-main/reference/typescript.mdx`\n- `docs-main/docs.json`\n\nThe generator also adds that page under the top-level `API Reference` dropdown as `TypeScript -\u003e @daml/types`.\n\n### Generate the Wallet Gateway JSON-RPC reference\n\nThis repo also includes a checked-in source config for versioned Wallet Gateway OpenRPC specs from `hyperledger-labs/splice-wallet-kernel` at `config/x2mdx/wallet-gateway-openrpc/source-artifacts.json`.\nThe generator script discovers versions from GitHub releases filtered to the `@canton-network/wallet-gateway-remote@` release stream, clones or fetches a cached bare repo under `.internal/cache/x2mdx/wallet-gateway-openrpc/`, materializes local versioned OpenRPC JSON files from the matching tag snapshots, writes a local x2mdx manifest into `.internal/generated/x2mdx/wallet-gateway-openrpc/manifest.json`, and then renders MDX pages through the docs repo `direnv` / `nix` shell.\n\nRun:\n\n```bash\npython3 scripts/generate_wallet_gateway_openrpc_reference.py\n```\n\nor:\n\n```bash\nnpm run generate:wallet-gateway-openrpc-reference\n```\n\n### Generate the Splice Mintlify OpenAPI specs\n\nThis repo also includes a dedicated wrapper that fetches the configured Splice OpenAPI specs from published decentralized-canton-sync `*_openapi.tar.gz` release bundles and writes the managed source files under `docs-main/openapi/splice/`, so Mintlify can render them natively. The wrapper only updates `docs-main/docs.json` for specs listed in `config/mintlify-openapi/splice-openapi/source-artifacts.json` under `enabled_nav_specs`.\n\nRun:\n\n```bash\npython3 scripts/generate_splice_mintlify_openapi.py\n```\n\nor:\n\n```bash\nnpm run generate:splice-mintlify-openapi\n```\n\nBy default this writes:\n\n- `docs-main/openapi/splice/`\n- `docs-main/docs.json` only when one or more specs are enabled in `enabled_nav_specs`\n\nEnabled specs are added under the top-level `API Reference` dropdown as `Splice APIs`, with Mintlify-rendered OpenAPI entries grouped under `Scan APIs`, `Validator APIs`, and `Token Standard APIs`.\n\n\n## Provide Feedback on a Page\n\nEvery page on docs.canton.network has two feedback buttons in the footer:\n- `Suggest edits`\n- `Raise issue`\n\n### Suggest edits:\nUse this to propose a direct change to the page, fix a typo, update a code sample, improve wording, etc.\n\n**How it works:**\n\n- Click “Suggest edits” in the footer of any page.\n- GitHub opens the source file for that exact page.\n- Fork the repo, make your edits, and open a Pull Request.\n- Canton docs team reviews and merges accepted changes if all checks out.\n\n### Raise Issue:\nUse this to report a problem or request new content without editing the source yourself.\n\n**How it works:**\n\n- Click “Raise Issue” in the footer of any page.\n- A GitHub Issue opens *Pre-filled* with the Path of the page you were on.\n- Describe in detail what's wrong or missing along with the source of information to verify and submit.\n- The team reviews it and responds.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcanton-network%2Fcf-docs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcanton-network%2Fcf-docs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcanton-network%2Fcf-docs/lists"}