- Overview
- Tutorials
- Getting started
- Get started with Canton and the JSON Ledger API
- Get Started with Canton, the JSON Ledger API, and TypeScript
- Get started with Canton Network App Dev Quickstart
- Get started with smart contract development
- Basic contracts
- Test templates using Daml scripts
- Build the Daml Archive (.dar) file
- Data types
- Transform contracts using choices
- Add constraints to a contract
- Parties and authority
- Compose choices
- Handle exceptions
- Work with dependencies
- Functional programming 101
- The Daml standard library
- Test Daml contracts
- Next steps
- Application development
- Getting started
- Development how-tos
- Component how-tos
- Explanations
- References
- Application development
- Smart contract development
- Daml language cheat sheet
- Daml language reference
- Daml standard library
- DA.Action.State.Class
- DA.Action.State
- DA.Action
- DA.Assert
- DA.Bifunctor
- DA.Crypto.Text
- DA.Date
- DA.Either
- DA.Exception
- DA.Fail
- DA.Foldable
- DA.Functor
- DA.Internal.Interface.AnyView.Types
- DA.Internal.Interface.AnyView
- DA.List.BuiltinOrder
- DA.List.Total
- DA.List
- DA.Logic
- DA.Map
- DA.Math
- DA.Monoid
- DA.NonEmpty.Types
- DA.NonEmpty
- DA.Numeric
- DA.Optional
- DA.Record
- DA.Semigroup
- DA.Set
- DA.Stack
- DA.Text
- DA.TextMap
- DA.Time
- DA.Traversable
- DA.Tuple
- DA.Validation
- GHC.Show.Text
- GHC.Tuple.Check
- Prelude
- Smart contract upgrading reference
- Glossary of concepts
The Canton Quickstart example application¶
Business case¶
The Quickstart features a sample licensing app to demonstrate Canton development patterns. In the app, providers sell time-based access to their services. Users pay with Canton Coin (CC) and manage payments through a Canton Wallet.
The app involves four parties:
The Application Provider who sells licenses.
The Application User who buys licenses.
The underlying Amulet token system that handles payments, using Canton Coin by default.
The DSO Party, the Decentralized Synchronizer Operations Party who operates the Amulet payment system. In CN, this is the Super Validators.
Core business operations¶
Issuing a license¶
The provider creates a new license for an onboarded user. The license starts expired and needs to be renewed before use.
Requesting a license renewal¶
The provider creates a renewal request, which generates a payment request for the user. The user sees the renewal offer and the payment amount. A matching CC payment request is created on the ledger.
Paying for a license renewal¶
The user approves the the payment through their Canton Wallet, which creates an accepted payment contract on the ledger.
Renewing the license¶
The provider processes the accepted payment and updates the license with a new expiration date.