Skip to main content
Yellow private relationship flow

Why Yellow belongs in SPECTER

Private receiving is valuable on its own. But private receiving becomes much more interesting when it is attached to an actual use case. Yellow is that use case in this repo. The idea is simple:
  1. A counterparty wants to open a private channel with you.
  2. They do not want that public relationship to be obvious on-chain.
  3. They derive a one-time stealth destination for you first.
  4. The channel is then tied to that one-time destination instead of your long-lived public identity.

The theory

Without SPECTER:
  • Alice opens a channel with Bob
  • observers learn Alice and Bob are connected
With SPECTER + Yellow:
  • Alice resolves Bob’s meta-address
  • Alice derives a one-time stealth address for Bob
  • Alice binds the channel flow to that destination
  • Bob discovers the channel through the announcement path
Yellow integration flow

What is implemented today

The repo has a real Yellow integration surface, but it is important to separate live scaffolding from finished settlement.

Implemented in the backend

  • create channel announcement flow
  • discover private channels by scanning announcements
  • read Yellow config
  • fund, transfer, close, and status endpoints for integration testing
This behavior is defined in:
  • specter/specter-api/src/handlers.rs
  • specter/specter-api/src/state.rs
  • specter/specter-yellow/src/

Important limitations from the code

The current backend does not submit the final L1 settlement transaction for Yellow closes.
The close handler itself states this, and it returns tx_hash_is_placeholder: true for the placeholder close hash. So the docs present Yellow as:
  • a meaningful private-channel use case
  • partially implemented integration scaffolding
  • not a finished end-to-end settlement product inside this backend alone

Theory vs current implementation

Yellow shows why stealth addresses are not only a payments primitive.They can also hide counterparty identity around channels, trading relationships, and recurring off-chain coordination.

User journey

Alice chooses a recipient

Alice enters Bob’s ENS name or meta-address.

SPECTER creates a private destination

The backend derives Bob’s stealth address and creates an announcement with a channel_id.

Yellow channel metadata is linked

The announcement becomes the discovery layer for the private channel relationship.

Bob discovers the channel

Bob scans with SPECTER keys and recovers the matching channel data.

Try the current flow