Skip to content

Stellar payment-link / invoice flow #7

@truthixify

Description

@truthixify

Labels: Stellar Wave, stellar, feature, drips, help-wanted
Tier: M (2–4 days)
Type: feature

Context

Spectre supports invoice creation through natural language. The demo doesn't surface this anywhere — the only way to receive a payment is to share your meta-address verbatim. Payment links are a much friendlier UX: generate a URL once, share it, and senders are deep-linked into a pre-filled Send page.

We want this on Stellar first (parity follow-ups for other chains as separate issues).

Scope

  1. Add a "Generate Payment Link" button to the Stellar Receive page.
  2. Form: amount (optional), memo/note (optional), expires-at (optional, default 24h).
  3. On submit, build a URL like:
    https://demo.usewraith.xyz/pay?to=alice.wraith&amount=10&memo=Coffee&exp=1735689600
    
    Use the user's registered .wraith name if available, fall back to the raw meta-address.
  4. Render the resulting URL with a copy button and a QR code (use qrcode.react or similar).
  5. On the receiving side: the /pay route loads the Send page pre-filled with the URL params, validates them, and disables editing of the recipient field (sender can adjust amount if not preset).

Constraints

  • URL params must be sanitized — never trust to, amount, etc., from the URL without validation.
  • If exp has passed, show "This payment link has expired" and disable submit.
  • Don't store anything server-side; the URL is the whole spec.

Open design questions

  • Should we sign the URL params with the recipient's spending key to prevent tampering? Probably yes — argue both sides in the PR.
  • QR vs. just URL — most senders are desktop; do we still need QR? (Probably yes for mobile demo usage.)

Acceptance criteria

  • "Generate Payment Link" flow on Receive page.
  • /pay route that consumes the link and pre-fills Send.
  • URL param validation with informative errors.
  • QR code rendering.
  • One Playwright test: generate link → open in new context → send → verify.

Why this matters

Sharing payment links is the unlock for "use Wraith for actual commerce." Without it, every payment requires the recipient to be on a call or chat with the sender.

Metadata

Metadata

Assignees

Labels

Stellar WaveIssues in the Stellar wave programdripsFunded via Drips NetworkfeatureNew feature workhelp wantedExtra attention is neededstellarTouches Stellar / Soroban code

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions