Skip to content
Mailing Lists/[RFC] Canton Bindings — multi-language SDKs, JWT/OIDC middleware, and a pre-flight cost profiler (community input wanted before PR)Source on lists.sync.global ↗

[RFC] Canton Bindings — multi-language SDKs, JWT/OIDC middleware, and a pre-flight cost profiler (community input wanted before PR)

grants-discuss1 messagesstarted 22-05-2026
Also mentions:CIP-0100
  1. #1Jatin Sahijwani22-05-2026source ↗

    Hi everyone,

    I'm Jatin Sahijwani. My co-founder Anirudh Singh and I run HackTour India (https://x.com/HackTourIND, 50+ events in 2025), and we've previously shipped grant-funded developer SDKs for the Arbitrum Foundation (a production-grade ZK SDK for Arbitrum : TypeScript, end-to-end Circom-to-verifier pipeline, single-call JS integration) and Avalanche Team1 (a ZK SDK for Avalanche subnets). We're EVM-native and exploring our first contribution to Canton.

    After studying the Q1 2026 Developer Experience and Tooling Survey and reading through the open canton-dev-fund PRs, we believe there's a coherent runtime-layer toolkit that no current proposal covers, and we're bringing it to this list first, ahead of opening a Dev Fund PR, on the encouragement of the Foundation's Tech & Ops side. 

    Working name: Canton Bindings.

    THE THREE PROBLEMS, FROM THE FOUNDATION'S OWN SURVEY:

    1. "Typed Client SDK & Code Generator: Developers currently spend days manually extracting hash strings from compiled files (.dar) and hardcoding them into their frontends." Only daml codegen js ships officially. Teams in Python, Java/Kotlin, Rust, or Go are on their own.
    2. "JWT authentication middleware ... a repeated friction point for 'Hybrid' and 'TradFi' teams", which is the 83% of survey respondents.
    3. "Pre-Flight Resource & Cost Profiler", devs "deploying blindly" and finding out about byte-size limits only after a failed submission.

    All three live in the same architectural layer (between the dev loop and the protocol) and we believe they're best scoped as a single coherent toolkit rather than three separate proposals.

    PROPOSED SCOPE:

    • Codegen + runtime SDK for TypeScript, Python, Java/Kotlin, Rust, and Go
    • Runtime Package ID Resolver (eliminates hardcoded .dar hashes via PackageManagementService introspection)
    • JWT/OIDC middleware with first-class Keycloak, Auth0, Azure AD, and Okta presets, with party-claim mapping
    • Pre-flight transaction byte-size and Canton Coin cost estimator (target ±5% accuracy)
    • Cantool plugin (cantool bindings gen <lang>) so Eric's CLI users get this as a first-class extension

    POSITIONING (DELIBERATELY COMPLEMENTARY, NOT COMPETITIVE):

    • Cantool (PR #77) handles the local dev loop. We sit on top of it for codegen and runtime.
    • CantonTrace (PR #185) handles runtime debugging. We sit alongside it as the typed client.
    • PartyLayer (PR #9) and Wallet Gateway (PR #109) handle end-user/wallet signing. We sit on the server/service side.
    • daml codegen js stays as-is for pure JS users. We add four more languages and the runtime resolver around it.

    PROPOSED FUNDING SHAPE:

    • 700,000 CC across 4 milestones, ~24 weeks
    • M1 175K (TypeScript + Resolver + Keycloak)
    • M2 200K (Python + Java/Kotlin + Auth0/AAD)
    • M3 175K (Rust + Go + Okta + Pre-Flight Profiler)
    • M4 150K (Cantool plugin + docs + tutorials + maintainer handoff)
    • Volatility stipulation per CIP-0100 on M3 and M4
    • License: Apache-2.0 (code), CC0-1.0 (proposal)

    Anchored between Axcess (~318K CC) and x402 (~1M CC) based on scope.

    FULL DESIGN DOCUMENT (architecture diagrams, milestone breakdown, alignment table, risk register, honest §7 on our Daml/Canton ramp-up): https://github.com/jatinsahijwani/canton-bindings/blob/main/README.md

    WHAT WE'D LOVE INPUT ON, BEFORE WE OPEN A PR:

    1. Language priority : we have TS → Python → Java/Kotlin → Rust → Go. Anyone blocked on a different order? Especially curious if Java should jump Python given the institutional/TradFi skew.
    2. IdP coverage : Keycloak / Auth0 / Azure AD / Okta covers the largest enterprise share. Anyone urgently needs Ping, OneLogin, or self-hosted OIDC first?
    3. Prior art we may have missed : if anything in scope is already being built (open-source or in flight), we'd much rather plug into it than rebuild.
    4. Cantool plugin shape : what's the right integration boundary? Eric, would love your view here.

    We'd particularly value input from folks active in the Daml Language & Developer Tooling, DAR Package Management & App Lifecycle, dApp Integration, and Canton APIs SIGs, and from anyone building TradFi/Hybrid apps who's hit the JWT pain firsthand.

    Happy to take this conversation deeper anywhere it's useful.

    Best,
    Jatin Sahijwani,
    Co-founder,
    HackTour India https://x.com/HackTourIND
    GitHub: https://github.com/jatinsahijwani