[RFC] Canton Bindings — multi-language SDKs, JWT/OIDC middleware, and a pre-flight cost profiler (community input wanted before PR)
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:
- "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 jsships officially. Teams in Python, Java/Kotlin, Rust, or Go are on their own. - "JWT authentication middleware ... a repeated friction point for 'Hybrid' and 'TradFi' teams", which is the 83% of survey respondents.
- "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:
- 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.
- IdP coverage : Keycloak / Auth0 / Azure AD / Okta covers the largest enterprise share. Anyone urgently needs Ping, OneLogin, or self-hosted OIDC first?
- 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.
- 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- "Typed Client SDK & Code Generator: Developers currently spend days manually extracting hash strings from compiled files (.dar) and hardcoding them into their frontends." Only