Skip to content
CCPEDIAby Unity Nodes
LEARN · DOCUMENTATION

Documentation

Pages from 29 sources, kept in sync: the official Canton Network and Digital Asset docs, documentation from teams building on Canton, and readmes from their code. Search all of it, or start from a path below.

3,253pages
synced 5h ago29 sources
This week489pages updated upstreamNewestLogical Synchronizer UpgradesNov 6, 2026Official1,638pages from Canton and Digital Asset

Recently updated

1,473 pages
OfficialCanton Network docs · Splice APIs
Splice Daml APIs
The APIs below are published by Splice to aid decoupling different Canton Network applications. Consider using them to decouple your code from the upgrading cycles of your dependencies, when building Daml code that interacts with workflows of other apps in the Canton Network. These APIs are not man
Nov 3, 2026
OfficialCanton Network docs · API Overview › Splice APIs
Splice HTTP APIs
There are two sets of HTTP APIs exposed by Splice applications, as can be seen in the diagram below: • The app_dev_scan_api are exposed by the Scan App of SV nodes and provides access to the view of the ledger and its infrastructure as seen by all SV Nodes. Use https://sync.global/sv-network/ to di
Nov 3, 2026
OfficialCanton Network docs · API Overview › Splice APIs › Scan APIs
Scan Bulk Data API
At a high level, participant nodes provide two separate endpoints through a Ledger API: • An endpoint to submit commands to the ledger that allow an application to submit transactions and change state, by creating, exercising or archiving contracts. • An endpoint that provides a stream of transact
Nov 3, 2026
OfficialCanton Network docs · API Overview › Splice APIs › Scan APIs
Scan Global Synchronizer Connectivity API
Splice network applications and validators need to be able to connect to multiple supervalidators’ Scan apps and Canton sequencers. If you have the base URL for a single SV Scan app, you can query for all other connected Scans and the SV sequencers. This lets you dynamically update your app configur
Nov 3, 2026
OfficialCanton Network docs · CLI Tools
dpm (Daml Package Manager)
dpm is the command-line interface for Canton development. It manages SDK installation, project scaffolding, compilation, testing, code generation, and local development environments. Most Canton development workflows start with a dpm command. Pre-requisites Dpm runs on Windows, macOS and Lin
Nov 2, 2026
OfficialCanton Network docs · Global Synchronizer & Tokenomics
Governance Locks
A governance lock is a Canton Coin (CC) holding that is locked to fulfill the locking requirements for Super Validators (SVs) and Featured Apps (FAs). This page explains why governance locks exist, and how lock owners create and manage them with any wallet that supports CIP-0056 two-step transfers.
Nov 2, 2026
OfficialCanton Network docs · Splice APIs › Scan APIs › Scan API
GET /v0/dso
cURL Python JavaScript PHP Go Java Ruby curl --request GET \ --url 'https://scan.sv-1.global.canton.network.sync.global/api/scan/v0/dso' import json import requests url = "https://scan.sv-1.global.canton.network.sync.global/api/scan/v0/dso" response = requests.request("GET",
Nov 2, 2026
OfficialCanton Network docs · Splice APIs › Scan APIs › Scan API
GET /v0/history/bulk/progress
cURL Python JavaScript PHP Go Java Ruby curl --request GET \ --url 'https://scan.sv-1.global.canton.network.sync.global/api/scan/v0/history/bulk/progress' import json import requests url = "https://scan.sv-1.global.canton.network.sync.global/api/scan/v0/history/bulk/progress"
Nov 2, 2026
OfficialCanton Network docs · Splice APIs › Scan APIs › Scan API
GET /v0/history/bulk/acs
cURL Python JavaScript PHP Go Java Ruby curl --request GET \ --url 'https://scan.sv-1.global.canton.network.sync.global/api/scan/v0/history/bulk/acs' import json import requests url = "https://scan.sv-1.global.canton.network.sync.global/api/scan/v0/history/bulk/acs" response
Nov 2, 2026
OfficialCanton Network docs · Splice APIs › Scan APIs › Scan API
POST /v0/events
cURL Python JavaScript PHP Go Java Ruby curl --request POST \ --url 'https://scan.sv-1.global.canton.network.sync.global/api/scan/v0/events' \ --header 'Content-Type: application/json' \ --data '{ "after": { "after_migration_id": 123, "after_record_time": "<string>" },
Nov 2, 2026
OfficialCanton Network docs · Splice APIs › Scan APIs › Scan API
POST /v0/open-and-issuing-mining-rounds
cURL Python JavaScript PHP Go Java Ruby curl --request POST \ --url 'https://scan.sv-1.global.canton.network.sync.global/api/scan/v0/open-and-issuing-mining-rounds' \ --header 'Content-Type: application/json' \ --data '{ "cached_open_mining_round_contract_ids": [ "<string>"
Nov 2, 2026
OfficialCanton Network docs · Splice APIs › Scan APIs › Scan API
GET /v0/validators/validator-faucets
cURL Python JavaScript PHP Go Java Ruby curl --request GET \ --url 'https://scan.sv-1.global.canton.network.sync.global/api/scan/v0/validators/validator-faucets' import json import requests url = "https://scan.sv-1.global.canton.network.sync.global/api/scan/v0/validators/vali
Nov 2, 2026
OfficialCanton Network docs · Splice APIs › Scan APIs › Scan API
GET /v1/dso
cURL Python JavaScript PHP Go Java Ruby curl --request GET \ --url 'https://scan.sv-1.global.canton.network.sync.global/api/scan/v1/dso' import json import requests url = "https://scan.sv-1.global.canton.network.sync.global/api/scan/v1/dso" response = requests.request("GET",
Nov 2, 2026
OfficialCanton Network docs · Splice APIs › Scan APIs › Scan API
GET /v0/sv-info
cURL Python JavaScript PHP Go Java Ruby curl --request GET \ --url 'https://scan.sv-1.global.canton.network.sync.global/api/scan/v0/sv-info' import json import requests url = "https://scan.sv-1.global.canton.network.sync.global/api/scan/v0/sv-info" response = requests.request
Nov 2, 2026
OfficialCanton Network docs · Splice APIs › Scan APIs › Scan API
POST /v0/holdings/summary
cURL Python JavaScript PHP Go Java Ruby curl --request POST \ --url 'https://scan.sv-1.global.canton.network.sync.global/api/scan/v0/holdings/summary' \ --header 'Content-Type: application/json' \ --data '{ "migration_id": 123, "record_time": "2026-01-01T00:00:00Z", "record_t
Nov 2, 2026
OfficialCanton Network docs · Splice APIs › Scan APIs › Scan API
POST /v0/history/bulk/updates
cURL Python JavaScript PHP Go Java Ruby curl --request POST \ --url 'https://scan.sv-1.global.canton.network.sync.global/api/scan/v0/history/bulk/updates' \ --header 'Content-Type: application/json' \ --data '{ "start_record_time": "2026-01-01T00:00:00Z", "end_record_time": "20
Nov 2, 2026
OfficialCanton Network docs · Splice APIs › Scan APIs › Scan API
POST /v0/history/bulk/checksums
cURL Python JavaScript PHP Go Java Ruby curl --request POST \ --url 'https://scan.sv-1.global.canton.network.sync.global/api/scan/v0/history/bulk/checksums' \ --header 'Content-Type: application/json' \ --data '{ "object_keys": [ "<string>" ] }' import json import
Nov 2, 2026
OfficialCanton Network docs · Splice APIs › Scan APIs › Scan API
POST /v0/voterequest
cURL Python JavaScript PHP Go Java Ruby curl --request POST \ --url 'https://scan.sv-1.global.canton.network.sync.global/api/scan/v0/voterequest' \ --header 'Content-Type: application/json' \ --data '{ "vote_request_contract_ids": [ "<string>" ] }' import json impo
Nov 2, 2026
OfficialCanton Network docs · Splice APIs › Scan APIs › Scan API
POST /v2/updates
cURL Python JavaScript PHP Go Java Ruby curl --request POST \ --url 'https://scan.sv-1.global.canton.network.sync.global/api/scan/v2/updates' \ --header 'Content-Type: application/json' \ --data '{ "after": { "after_migration_id": 123, "after_record_time": "<string>" },
Nov 2, 2026
OfficialCanton Network docs · Splice APIs › Scan APIs › Scan API
POST /v2/holdings/state
cURL Python JavaScript PHP Go Java Ruby curl --request POST \ --url 'https://scan.sv-1.global.canton.network.sync.global/api/scan/v2/holdings/state' \ --header 'Content-Type: application/json' \ --data '{ "migration_id": 123, "record_time": "2026-01-01T00:00:00Z", "record_tim
Nov 2, 2026
OfficialCanton Network docs · Splice APIs › Scan APIs › Scan API
POST /v1/updates
cURL Python JavaScript PHP Go Java Ruby curl --request POST \ --url 'https://scan.sv-1.global.canton.network.sync.global/api/scan/v1/updates' \ --header 'Content-Type: application/json' \ --data '{ "after": { "after_migration_id": 123, "after_record_time": "<string>" },
Nov 2, 2026
OfficialCanton Network docs · Splice APIs › Scan APIs › Scan API
POST /v2/state/acs
cURL Python JavaScript PHP Go Java Ruby curl --request POST \ --url 'https://scan.sv-1.global.canton.network.sync.global/api/scan/v2/state/acs' \ --header 'Content-Type: application/json' \ --data '{ "migration_id": 123, "record_time": "2026-01-01T00:00:00Z", "record_time_mat
Nov 2, 2026
OfficialCanton Network docs · Splice APIs › Scan APIs › Scan API
POST /v1/holdings/summary
cURL Python JavaScript PHP Go Java Ruby curl --request POST \ --url 'https://scan.sv-1.global.canton.network.sync.global/api/scan/v1/holdings/summary' \ --header 'Content-Type: application/json' \ --data '{ "migration_id": 123, "record_time": "2026-01-01T00:00:00Z", "record_t
Nov 2, 2026
OfficialCanton Network docs · Splice APIs › Validator APIs › Scan Proxy API
GET /v1/scan-proxy/dso
cURL Python JavaScript PHP Go Java Ruby curl --request GET \ --url 'https://example.com/api/validator/v1/scan-proxy/dso' import json import requests url = "https://example.com/api/validator/v1/scan-proxy/dso" response = requests.request("GET", url) print(response.text)
Nov 2, 2026
OfficialCanton Network docs · Splice APIs › Validator APIs › Scan Proxy API
POST /v1/scan-proxy/holdings/summary
cURL Python JavaScript PHP Go Java Ruby curl --request POST \ --url 'https://example.com/api/validator/v1/scan-proxy/holdings/summary' \ --header 'Content-Type: application/json' \ --data '{ "migration_id": 123, "record_time": "2026-01-01T00:00:00Z", "record_time_match": "exa
Nov 2, 2026
OfficialCanton Network docs · Splice APIs › Validator APIs › Scan Proxy API
POST /v0/scan-proxy/holdings/summary
cURL Python JavaScript PHP Go Java Ruby curl --request POST \ --url 'https://example.com/api/validator/v0/scan-proxy/holdings/summary' \ --header 'Content-Type: application/json' \ --data '{ "migration_id": 123, "record_time": "2026-01-01T00:00:00Z", "record_time_match": "exa
Nov 2, 2026
OfficialCanton Network docs · Splice APIs › Validator APIs › Scan Proxy API
GET /v0/scan-proxy/dso
cURL Python JavaScript PHP Go Java Ruby curl --request GET \ --url 'https://example.com/api/validator/v0/scan-proxy/dso' import json import requests url = "https://example.com/api/validator/v0/scan-proxy/dso" response = requests.request("GET", url) print(response.text)
Nov 2, 2026
OfficialCanton Network docs · Development Tools
Darsyncer Docker Image
darsyncer darsyncer synchronizes one or more DAR files to a participant ledger. It can upload missing DARs, verify that required packages are present, or wait until synchronization has completed. Docker Image europe-docker.pkg.dev/da-images/public/docker/darsyncer:latest Features •
Nov 1, 2026
OfficialCanton Network docs · Reference
Canton Console Commands
split by participant and synchronizer, put shared commands in extend/participant section, and add a section for the synchronizer Console Commands Top-level Commands The following commands are available for convenience: exit Leave the console. help Help with console commands. Type
Oct 30, 2026
OfficialCanton Network docs · Deep Dives › External Signing
External Signing: Topology Transactions
Externally Signed Topology Transactions Canton’s Topology formalizes a shared state on a synchronizer and provides a secure, distributed mechanism for modifying this state. This tutorial demonstrates how to build, sign, and submit topology transactions. It is particularly useful for cases where t
Oct 30, 2026
Showing 421 to 450 of 1,473Search all sources →