Skip to content

Implementation Tracking: Recurrence Support for BOLT12 Offers #4600

@shaavan

Description

@shaavan

This issue tracks the implementation progress for Recurrence.

Spec PR: lightning/bolts#1240
LDK design discussion: #4476

Summary of Design Discussion

Based on the design discussion, Recurrence support will be split across rust-lightning and LDK Node.

rust-lightning will handle the protocol-facing pieces: wire data, a minimal API surface, and the handling logic that does not require access to saved recurrence state.

LDK Node will own the public-facing APIs and outbound recurrence state tracking.

Implementation Plan

rust-lightning

  • Introduce recurrence wire fields for BOLT12 messages:
    • Offers
    • Invoice Requests
    • Invoices
  • Introduce builder support for creating an InvoiceRequest with an explicit signing pubkey
  • Add handler logic:
    • Payee-side InvoiceRequest handling using the recurrence token
    • Payer-side Invoice handling using the BlindedPath MessageContext

LDK Node

  • Set up outbound recurrence state tracking, update, and expiry logic
  • Introduce recurrence offer builder
  • Introduce APIs to pay, re-pay, and cancel recurrence for recurring offers

Spec

  • Run interoperability tests
  • Review and merge spec

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions