Use this file to discover all available pages before exploring further.
Understanding Canton requires grasping four fundamental concepts: parties, validator node, synchronizers, and templates (smart contracts). This page introduces each and explains how they work together.
alice::1220f2fe29866fd6a0009ecc8a64ccdc09f1958bd0f801166baaee469d1251b2eb72└┬┘ └─────────────────────────────────────────┘name fingerprint (hash of public key)
Simpler; validator signs on party’s behalf. Good for automation.
External Party
External system
User wallets; requires explicit signing workflow
Unlike Ethereum addresses, parties create state on validators and have costs associated with creation. Design your party structure deliberately—don’t create parties unnecessarily.
template Asset with issuer : Party -- Will be signatory owner : Party -- Will be observer and controller auditor : Party -- Will be observer where signatory issuer -- Must authorize creation; always sees contract observer owner, auditor -- Can see contract choice Transfer : ContractId Asset with newOwner : Party controller owner -- Only owner can exercise this choice do create this with owner = newOwner
Role
Can Create
Can See
Can Act
Signatory
Must authorize
Always
If also controller
Observer
No
Yes
If also controller
Controller
No
When exercising
Yes (specific choice)
Stakeholder = signatories + observers. Stakeholders are all parties who can see a contract. Validators store contracts for their hosted parties when those parties are stakeholders.
A validator hosts parties, stores their contract data, and participates in the Canton protocol. A validator contains a participant node (the Daml execution engine) plus a validator process.
template Token with -- Data fields owner : Party issuer : Party amount : Decimal where -- Authorization signatory issuer observer owner -- Actions choice Transfer : ContractId Token with newOwner : Party controller owner do create this with owner = newOwner