rust-payjoin icon indicating copy to clipboard operation
rust-payjoin copied to clipboard

1.0 Integrations tracking issue

Open spacebear21 opened this issue 2 months ago • 3 comments

Integrations 1.0

The ultimate blocker for releasing payjoin-1.0 proper is to validate that the API is sufficiently stable to satisfy the needs of multiple integration candidates, ideally including a mobile wallet and an exchange-like service provider. This checklist is an attempt at narrowing the scope of our focus so that we can achieve this and make the release by the end of the year.

BullBitcoin Mobile, Boltz, and Liana were selected as primary targets because they're the furthest along and already have buy-in from the respective teams. Getting the reference implementation polished is also important but IMO doesn't satisfy the "working demo" criterion for 1.0 (we need to demonstrate that our library satisfies real needs in other peoples' code).

Another pre-requisite to satisfy these integrations is ensuring that there are multiple reliable directories.

The dates below are estimated deadlines that I think we need to meet to be in good shape for 1.0 release by EOY, and I tagged relevant stakeholders in each section.

Directory Reliability - 11/1

@nothingmuch, @spacebear21, @arminsabouri

  • ACME support
    • [x] Merge https://github.com/payjoin/rust-payjoin/pull/1026#issuecomment-3378743558
    • [x] Launch secondary server with ACME
    • [ ] Point primary server to that
  • Decentralization
    • [ ] Re-launch old server with ACME as secondary server
    • [ ] Check in with Vinteum - indicated that they're willing to host one
    • [ ] Bridge OHTTP relay and BIP77 to Nostr https://gist.github.com/arminsabouri/1d41501b4e5caa38870097f70ec0e604
  • Metrics and alerting
    • [x] Setup a liveness script to check payjo.in/health at a frequent interval
    • [ ] Setup a secondary liveness script to do a full e2e payjoin with payjo.in at a less frequent interval
    • These should trigger some alerting system in case of failure. Github CI? Discord bot? Direct to email?
    • [x] Check in on discord bot - discontinued...
  • Formalize deployment process for directory upgrades
    • [ ] Publish up-to-date Docker image (or ship Rust binary since we no longer need redis and lets encrypt bot)
    • [ ] Document deployment of the new payjo.in server

Bull Bitcoin Mobile - 12/1

@spacebear21

  • [ ] Upgrade to 1.0-rc with events in-memory adapter (no db migration)
    • Mostly done already in https://github.com/spacebear21/bullbitcoin-mobile/commits/upgrade-payjoin/
    • [x] Needs rebase and upgrade to 1.0-rc
  • [ ] DB migration for proper event persistence and processing

Boltz - Q1 2026

@spacebear21

  • [ ] Follow up on https://github.com/BoltzExchange/boltz-backend/pull/892
  • [ ] Rebase (rewrite?) and upgrade to 1.0-rc
  • [ ] Gather feedback/review from Boltz devs

Liana - Q1 2026

@benalleng

  • [ ] have Liana update to 1.85.0 MSRV
  • [ ] Figure out next sprint dates & get Payjoin in there start: Nov 10 end: Q1 2026
    • [ ] UNBLOCK via comms with Manuel
  • [ ] Upgrade lianad draft PR to 1.0-rc https://github.com/wizardsardine/liana/pull/1806
  • [ ] Split changes into smaller PRs that can be merged individually as spelled out in https://github.com/wizardsardine/liana/issues/1822
  • [ ] Unresolved UI issues: image
  • Expecting difficulties w.r.t. hardware signers for PSBTs containing foreign inputs, see https://docs.google.com/presentation/d/1BZooMjRR5SseIxelsxrXPtK5JU995bprfU41XHlGL30/edit?slide=id.p#slide=id.p

payjoin-cli - 11/1

@zealsham

  • [ ] Demonstrate proper failure handling with broadcast of fallback tx
  • [ ] Implement cancel command @nothingmuch 10/14/25
  • [ ] Review history command
  • [ ] FK to closed session event https://github.com/payjoin/rust-payjoin/issues/1146
  • [x] Fix https://github.com/payjoin/rust-payjoin/issues/1154
  • [ ] Tag & release payjoin-cli 1.0-rc.0

FFI - 12/1

@chavic

  • [ ] Tag & release uniffi-dart 0.1.0
  • [ ] Uniformly use primitive types in FFI boundary, with runtime validation https://github.com/payjoin/rust-payjoin/issues/738
    • Does this remove the need for Ben's bitcoin-ffi fork dependency?
  • Clean up error wrappers
    • [x] https://github.com/payjoin/rust-payjoin/issues/1117
    • [ ] After primitive types are enforced, revisit ForeignError category (I expect runtime validation and conversion of primitive types to result in a new category of errors)
  • [ ] Audit exposed interface surface area (everything pub should be accessible in FFI downstream)
  • [ ] Tag payjoin-ffi 1.0-rc.0
  • [ ] Tag & release payjoin_python 1.0-rc.0
  • [ ] Tag & release payjoin_dart 1.0-rc.0
  • Do we want to suffix language in downstream package managers? Just payjoin where possible seems cooler

1.0 release - 12/15

@spacebear21

  • [ ] Audit tasks in https://github.com/payjoin/rust-payjoin/milestone/1
  • [ ] Write documentation
  • [ ] Update README (note to self: monad logo is broken on crates.io)
  • [ ] Validated in at least 2 fully working demos, preferably BBM + Boltz (working demo != released product)
  • [ ] Tag & release payjoin 1.0

Sustainable Adoption (medium/long-term)

@DanGould, @spacebear21

  • [ ] Publish case studies on successful integrations (see https://lightningdevkit.org/case-studies/ and https://bitcoindevkit.org/adoption/all/)
  • [ ] Write an integration guide / FAQ informed by the above
  • [ ] Create demand for organic adoption (ultimately we should not have to babysit every integration)
  • [ ] Have a process for tracking integrations at all stages (potential leads, in-flight, completed...)

spacebear21 avatar Oct 08 '25 18:10 spacebear21

Setup a secondary liveness script to do a full e2e payjoin with payjo.in at a less frequent interval

A while back I created a functional test suite for this purpose. Its essentially the e2e tests as an isolated binary. Wanted to share in case its useful for this subgoal https://github.com/arminsabouri/bip-77-directory-functional-tests

arminsabouri avatar Oct 08 '25 18:10 arminsabouri

Liana's current msrv is 1.80.0 we will need to open a discussion with them to up it to 1.85.0 to support payjoin at our 1.0.0-rc and above

benalleng avatar Oct 09 '25 16:10 benalleng

@chavic may you catalog the absolutely necessary issues that MUST be completed before we can release the 12/1 Bull Bitcoin Mobile integratation

I know there is some checklist here https://github.com/Uniffi-Dart/uniffi-dart/issues/78

DanGould avatar Oct 13 '25 17:10 DanGould