Proposal: Payment Dispute & Refund Authorization Primitive [Avro Digital]#293
Open
samsondav wants to merge 1 commit into
Open
Conversation
a7bf2ab to
46cdda0
Compare
…tal] Avro Digital proposal for a payment dispute and refund authorization primitive on Canton: a reference implementation of the dispute lifecycle, time-locked reversal-eligibility windows, and adjudication patterns, with Avro Pay as the named reference integration. Ask: 3,000,000 CC over 5 months across 3 milestones, no DA consulting line. SIG: financial-workflows-composability.
46cdda0 to
e17c0f9
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Payment Dispute & Refund Authorization Primitive
Ask: 3,000,000 CC over 5 months across 3 milestones
Label:
financial-workflows-composabilityChampion: Avro Digital
Status: Submitted
Open-source reference implementation of a payment dispute and refund authorization primitive for Canton: dispute lifecycle, time-locked reversal-eligibility windows, and adjudication patterns. Avro Pay is the named reference integration.
Scope boundary — authorization vs. execution
The primitive ships the on-ledger reversal-eligibility, dispute lifecycle, and resolution-authorization layer (time-locked windows, the dispute state machine, and an immutable
DisputeResolutionReceiptthat authorizes a downstream refund). Off-ledger fund-movement execution is the integrating application's responsibility — it is gated onTransferPreapprovalmechanics and product-side templates the primitive does not own. This mirrors Splice itself:TransferPreapprovalis an authorization primitive, with execution owned byAmuletRules.Workstreams
Four workstreams compose into a single end-to-end primitive (not separately fundable):
IPaymentDisputeDaml interface with three concrete templates per controller-shape (OperatorMediatedDispute,BilateralDispute,ArbitratedDispute);RegulatorMediatedDisputeships as a parametric test fixtureReference integration
Avro Pay is the committed reference integration. The proposal's Appendix D maps the primitive's concepts onto Avro Pay's existing
SettlementReceipt/PaymentAuthorizationtemplates and the operator+admin adjudicator dual-auth. Avro Pay engineering work for adoption is on Avro Pay's existing roadmap and is not funded by this grant. The M3 staging demo terminates at on-ledgerDisputeResolutionReceiptcreation; off-ledger refund execution is out of scope.Splice landing carve-out
If the Committee or Splice maintainers prefer in-Splice delivery, Avro will land the same Daml package set, test harness, and integration guide in the Splice repository instead. Implementation, license, and acceptance criteria are unchanged; only the distribution location moves.
Open source
All deliverables Apache 2.0, public Avro Digital repository.
Prior work
SV Governance dApp grant (PR #223), CIP-0105 SV-locking, xCC, Avro Pay.