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
- Add a "Generate Payment Link" button to the Stellar Receive page.
- Form: amount (optional), memo/note (optional), expires-at (optional, default 24h).
- 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.
- Render the resulting URL with a copy button and a QR code (use
qrcode.react or similar).
- 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
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.
Labels:
Stellar Wave,stellar,feature,drips,help-wantedTier: 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
.wraithname if available, fall back to the raw meta-address.qrcode.reactor similar)./payroute 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
to,amount, etc., from the URL without validation.exphas passed, show "This payment link has expired" and disable submit.Open design questions
Acceptance criteria
/payroute that consumes the link and pre-fills Send.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.