Description
Currently, anyone can create a stream to any Stellar address without the recipient's consent. The recipient has no way to reject an unwanted stream. This can lead to:
- Cluttered dashboards with unsolicited streams
- Potential regulatory issues (receiving unsolicited tokens)
- Poor UX when unknown senders create streams
Proposed Solution
Option A: Frontend-only (simpler)
- Add a "Hide stream" feature so recipients can dismiss unwanted streams from their dashboard
- Hidden streams stored in localStorage, can be un-hidden
- No contract changes needed
Option B: Contract-level (more robust)
- Add an
accept_stream() function — stream starts unlocking only after recipient accepts
- Unaccepted streams can be cancelled by the sender with full refund
- Adds a
pending status to streams
Recommend starting with Option A for immediate UX improvement, with Option B as a follow-up.
Acceptance Criteria (Option A)
Description
Currently, anyone can create a stream to any Stellar address without the recipient's consent. The recipient has no way to reject an unwanted stream. This can lead to:
Proposed Solution
Option A: Frontend-only (simpler)
Option B: Contract-level (more robust)
accept_stream()function — stream starts unlocking only after recipient acceptspendingstatus to streamsRecommend starting with Option A for immediate UX improvement, with Option B as a follow-up.
Acceptance Criteria (Option A)