Skip to content

Proposal: Wallet SDK Payment Lifecycle Completeness

CLOSEDPull Request
by ayushsingh8216-06-2026Declined
600K CC requested
wallet-appsneeds-champion

Development Fund Proposal Submission

Proposal file: wallet-sdk-payment-lifecycle.md

---

Summary

The wallet team is building Utility Registry token pre-approvals now. Once that lands, three gaps become the next real problem for any wallet team using it: pre-approvals expire silently, there is no unified read path for transaction history across registries, and there is no standard way for one Canton wallet to request a payment from another. This proposal closes all three as a single scope — payment lifecycle completeness for the wallet SDK.

Scope: pre-approval expiry tracking and renewal; unified multi-registry transfer history; Canton payment request URI format with SDK parser and builder. All contributed upstream to canton-network/wallet. 600,000 CC over 4 milestones (including external security audit), 23 weeks, 325 estimated hours.

---

What's Updated from Prior Submission

  • Removed Proposal 2 reference — this proposal is fully standalone
  • Added task-level hours breakdown table per milestone (325h total)
  • Added week-by-week roadmap (23 weeks)
  • Added Milestone 4: external security audit with remediation and published report
  • Funding redistributed across 4 milestones within the same 600,000 CC total

---

Checklist

  • [x] Proposal file added under /proposals/
  • [x] Milestones and funding amounts defined with hours breakdown
  • [x] Acceptance criteria included
  • [x] Alignment with Canton priorities described
  • [x] External audit milestone included

---

Notes for Reviewers

The pre-approval expiry and history gaps are direct follow-ons to the pre-approval work currently in progress. The payment request format fills the interoperability gap that appears the moment two wallets both implement the transfer path — without a shared URI format there is no way for them to exchange payment requests. The spec is proposed as a CIP so any wallet can implement it independently.