Skip to content
Mailing Lists/CIP-0103: dApp API - Towards Canton Network dApp SupportSource on lists.sync.global ↗

CIP-0103: dApp API - Towards Canton Network dApp Support

cip-discussCIP-010310 messagesstarted 22-10-2025
  1. #1Marc Juchli22-10-2025source ↗
    Hi all,

    I’ve been working on the Canton Network application layer for the better part of this year, focusing on simplifying how developers can build dApps and how users can interact with data and assets residing on the validator of their choice.

    As more institutions launch wallets, custody services, and marketplaces on Canton — and as the number of ledger-integrated apps continues to grow — we’ve reached a point where developers need a simpler and more consistent way to enable user interaction with the network and the deployed apps. Connecting UIs and backends directly via gRPC or the JSON-Ledger API has proven too fragmented for scalable app development.

    To address this, we’re introducing the dApp API and dApp SDK — a unified framework for building Canton-native dApps that let users connect through any validator and sign using the method of their choice.

    Before sharing the detailed API specification, I’d like to outline the underlying philosophy and get your feedback. 

    We see three main categories of clients that will rely on the dApp API and SDK:
    • Wallet and custody solution providers: responsible for identity, authorization, and signing. These would implement the dApp API to allow their users to interact with dApps while signing transactions through their service.
    • User-facing dApps: which bring on-ledger actions (such as transfers, settlements, or governance) to web or mobile interfaces.
    • Application backends: which issue, query, and manage contracts on the Canton ledger.
    The goal of the dApp API is to decouple network connectivity and key management, while providing a standard set of primitives for interacting with the Canton Network — enabling a wallet built by one provider to seamlessly interact with a dApp built by another.

    At the UX level, the standard aims to enable:
    • A consistent flow for connecting wallets to dApps (similar to EIP-1193, with potential for a WalletConnect-style extension).
    • Declarative methods for signing and submitting ledger actions using a signing provider of choice.
    • A uniform event model that allows dApps to react to ledger updates (such as contract creation or settlement completion) in real time.
    • A simplified developer SDK that abstracts away ledger APIs, authentication, and transport details — allowing developers to focus on business logic rather than infrastructure.
    Conceptually, the dApp API is to Canton what web3.js or ethers.js are to Ethereum — but adapted to the privacy-preserving, multi-domain architecture of the Canton Network. It’s designed to let developers build Canton-native applications using familiar web technologies and security models, while remaining aligned with Canton’s contractual privacy and determinism guarantees.

    We believe that standardizing this interaction model will unlock a new wave of Canton-based applications — from DeFi-style utilities to institutional settlement services — without forcing each to reimplement fundamental primitives like signing, session management, or contract query logic.

    In a follow-up message, I’ll share a presentation summarizing our development progress so far, and we’d greatly appreciate your feedback.

    Does this direction align with what you’d expect from a Canton dApp development standard? 
    Are there specific integration patterns or developer workflows you think we should prioritize in the SDK?

    Looking forward to your thoughts,
    Marc

    --
    Marc Juchli
    Software Engineer / +41 79 725 51 71
    Digital Asset, creators of Daml

    This message, and any attachments, is for the intended recipient(s) only, may contain information that is privileged, confidential and/or proprietary and subject to important terms and conditions available at http://www.digitalasset.com/emaildisclaimer.html. If you are not the intended recipient, please delete this message.
  2. #2Marc Juchli23-10-2025source ↗
    Dear all,
     

    Attached you’ll find the presentation mentioned earlier.


    The slides outline the key concepts behind the dApp API, our current development progress, and a preview of how the dApp SDK can be integrated into an application. They also include links to relevant resources, such as the GitHub repository containing the implementation and an example dApp.

    We’d greatly appreciate your feedback and any general remarks. Our goal is to align the community around this effort and evolve it further by incorporating your insights and suggestions.

     

    Kind regards

    Marc

     

    --
    Marc Juchli
    Software Engineer / +41 79 725 51 71
    Digital Asset, creators of Daml


    This message, and any attachments, is for the intended recipient(s) only, may contain information that is privileged, confidential and/or proprietary and subject to important terms and conditions available at http://www.digitalasset.com/emaildisclaimer.html. If you are not the intended recipient, please delete this message.

  3. #3Dave M27-10-2025source ↗
    I think this is a really welcome development and will definitely accelerate speed of app development (and focus on the differentiators rather than needing to reinvent the wheel, as you say).
     
    As a broad feedback, I'd love to also see something (probably a future iteration) that files the role of viem on Canton Network too. Any EVM dApp, this (and wagmi, if in React) is always my first install. 

    Know that we have some of this already through type bindings, but making it easy to e.g. pull type safe events from TX receipt logs, etc, or watching live on-chain via a websockets client is a really good puzzle piece to have pre-built. (Apologies if these don't map directly to the Canton ecosystem, I'm still a rookie in DAML dApp development yet!)

    I know that a lot of these are already strongly typed in Canton, but just having the "one higher level of abstraction" lib I think would be great to have on the roadmap
  4. #4sam.hassan@lightshift.xyz29-10-2025source ↗
    We at Lightshift support and welcome this change. It'll make user onboarding much more productive and bridge canton experiences across different wallet providers. Wallet integration is one of the largest barriers atm building on Canton and it's logistically challenging both for builders and wallet providers. Having a N+1 integration layer would enable both parties to offer their services much more efficiently on the network.
  5. #5Marc Juchli19-12-2025source ↗
    Dear CIP editors and community,

    Over the past weeks, we have discussed the dApp Standard proposal on this mailing list.
    We have incorporated feedback from wallet providers, SDK authors, and dApp developers across the Canton ecosystem.

    The proposal defines a vendor-neutral, transport-agnostic dApp API that decouples decentralized applications from wallet implementations while standardizing ledger access, signing flows, and error semantics. It introduces both synchronous and asynchronous variants to support client-side and server-side wallet deployments under a single interoperable model.

    We believe the proposal has now reached sufficient maturity and would like to formally request that it:
    • be assigned a CIP number, and
    • be moved to Review status.
    The full text of the CIP is available here: https://github.com/global-synchronizer-foundation/cips/pull/139/changes

    The proposal includes:
    • a complete specification with normative language,
    • OpenRPC definitions as the ground truth,
    • reference implementations and SDKs,
    • and documented design rationale, including alignment with existing ecosystem standards (e.g. EIP-1193 and CAIP conventions).
    We welcome any final technical feedback or objections during the review period.
    In particular, confirmation or feedback from additional wallet providers and infrastructure maintainers would be highly appreciated.

    Thank you for your time and for maintaining the CIP process.

    Best regards,
    Marc Juchli
     
    --
    Marc Juchli
    Software Engineer / +41 79 725 51 71
    Digital Asset, creators of Daml
     
  6. #6Eric Saraniecki21-01-2026source ↗
    hi everyone 

    have had a couple convos with builders on this topic, it seems we are ready to take this to vote

    DA Sponsors this CIP - any endorsers? 

    On Thu, Oct 23, 2025 at 6:45 AM marc.juchli via lists.sync.global <marc.juchli=digitalasset.com@...> wrote:
    Dear all,
     

    Attached you’ll find the presentation mentioned earlier.


    The slides outline the key concepts behind the dApp API, our current development progress, and a preview of how the dApp SDK can be integrated into an application. They also include links to relevant resources, such as the GitHub repository containing the implementation and an example dApp.

    We’d greatly appreciate your feedback and any general remarks. Our goal is to align the community around this effort and evolve it further by incorporating your insights and suggestions.

     

    Kind regards

    Marc

     

    --
    Marc Juchli
    Software Engineer / +41 79 725 51 71
    Digital Asset, creators of Daml


    This message, and any attachments, is for the intended recipient(s) only, may contain information that is privileged, confidential and/or proprietary and subject to important terms and conditions available at http://www.digitalasset.com/emaildisclaimer.html. If you are not the intended recipient, please delete this message.


    This message, and any attachments, is for the intended recipient(s) only, may contain information that is privileged, confidential and/or proprietary and subject to important terms and conditions available at http://www.digitalasset.com/emaildisclaimer.html. If you are not the intended recipient, please delete this message.
  7. #7Yiannis Varelas21-01-2026source ↗
    Happy to endorse Eric. 

    toggle quoted message Show quoted text

    On Wed, Jan 21, 2026 at 20:04 Eric Saraniecki via lists.sync.global <eric=digitalasset.com@...> wrote:
    hi everyone 

    have had a couple convos with builders on this topic, it seems we are ready to take this to vote

    DA Sponsors this CIP - any endorsers? 

    On Thu, Oct 23, 2025 at 6:45 AM marc.juchli via lists.sync.global <marc.juchli=digitalasset.com@...> wrote:
    Dear all,
     

    Attached you’ll find the presentation mentioned earlier.


    The slides outline the key concepts behind the dApp API, our current development progress, and a preview of how the dApp SDK can be integrated into an application. They also include links to relevant resources, such as the GitHub repository containing the implementation and an example dApp.

    We’d greatly appreciate your feedback and any general remarks. Our goal is to align the community around this effort and evolve it further by incorporating your insights and suggestions.

     

    Kind regards

    Marc

     

    --
    Marc Juchli
    Software Engineer / +41 79 725 51 71
    Digital Asset, creators of Daml


    This message, and any attachments, is for the intended recipient(s) only, may contain information that is privileged, confidential and/or proprietary and subject to important terms and conditions available at http://www.digitalasset.com/emaildisclaimer.html. If you are not the intended recipient, please delete this message.


    This message, and any attachments, is for the intended recipient(s) only, may contain information that is privileged, confidential and/or proprietary and subject to important terms and conditions available at http://www.digitalasset.com/emaildisclaimer.html. If you are not the intended recipient, please delete this message.

  8. #8alex.matson@digitalasset.com10-03-2026source ↗
    Hi all,

    We'd like to propose an amendment to the ledgerApi method of the dApp API specified in CIP-0103. This amendment standardizes some additional, optional request parameters to better represent possible HTTP requests (path, query, headers). It also drops the JSON-to-string serialization of the request and response bodies, allowing implementations to provide richer type definitions for these objects in TypeScript.

    Please view the amending pull-request here: https://github.com/canton-foundation/cips/pull/173

    Let us know if you have any feedback or questions.

    Sincerely,

    Alex Matson
    (Digital Asset)
  9. #9Marc Juchli17-03-2026source ↗
    Dear all,
     
    I'd be happy to see this amendment endorsed/approved.
     
    Given that this is a very small change, I expect it to be no problem for the wallet providers. However, if you have any questions, please do not hesitate to reach out to me.
     
    Kind regards
    Marc
     
     
    On Tue, Mar 10, 2026 at 2:35 PM alex.matson via lists.sync.global <alex.matson=digitalasset.com@...> wrote:
    Hi all,

    We'd like to propose an amendment to the ledgerApi method of the dApp API specified in CIP-0103. This amendment standardizes some additional, optional request parameters to better represent possible HTTP requests (path, query, headers). It also drops the JSON-to-string serialization of the request and response bodies, allowing implementations to provide richer type definitions for these objects in TypeScript.

    Please view the amending pull-request here: https://github.com/canton-foundation/cips/pull/173

    Let us know if you have any feedback or questions.

    Sincerely,

    Alex Matson
    (Digital Asset)

     

     

     
     
    --
    Marc Juchli
    Software Engineer / +41 79 725 51 71
    Digital Asset, creators of Daml

    This message, and any attachments, is for the intended recipient(s) only, may contain information that is privileged, confidential and/or proprietary and subject to important terms and conditions available at http://www.digitalasset.com/emaildisclaimer.html. If you are not the intended recipient, please delete this message.
  10. #10allen@send.it25-03-2026source ↗

    Send endorses the amendment in PR #173.

    It materially improves the DX when integrating with the dApp API. Dropping the serialization provides for richer type information as well as the additional params present more informative interface.

    Allen Eubank Send