Skip to content

Shared purse logic for NFT and coin purses (conditional) #965

Description

@valentunn

Part of #637. Builds on #964. Conditional: done only if generalizing proves worth it.

Goal

One purse engine shared by NFT purses (#512) and coin purses (RFC 17): purses as key subtrees, receive keys, cheques, the two-phase handoff (reserve, commit, release, reconcile, retract), and deposit and refund as durable operations with a clearing status stream.

Open question

How far to generalize: will coin and NFT purses (cheque format, handoff flow, API) evolve together or independently? If together, build one generic engine here. If independently, close this issue and build NFT purses directly on #964.

Risks

  • It is designed before coinage is ported, so it is shaped mostly by NFTs; coin needs such as selecting by amount and making change may not fit later.
  • It inherits the risk that the NFT purse assumptions turn out wrong against the actual pallet (see NFT purses in the Rust core #966).

Blocked by #964.

Activity

  1. changed the title [-]NFTs R2 · Stage 3: Shared purse logic for NFT and coin purses (conditional)[/-] [+]Shared purse logic for NFT and coin purses (conditional)[/+] on Sep 24, 2026
  2. self-assigned this
    on Sep 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions