Skip to content

Support deep linking with nostr: scheme for order discovery #141

@grunch

Description

@grunch

Summary

We want to support a decentralized and interoperable way for Mostro-compatible mobile clients to open a specific order directly from an external link, without relying on a centralized domain or server.

This issue proposes adding support for a nostr: deep link scheme that includes:

The event reference (nevent1...) of the NIP-69 order.

A list of relays where this order is known to be published.

This would allow Mostro mobile apps to automatically discover and render the relevant order view when a user clicks on such a link.


Motivation

Currently, websites like p2p.band display Nostr-based Mostro orders. When a user clicks the source field (which points to the NIP-69 event), a Nostr-aware app should ideally open and display the referenced order.

In centralized apps like Telegram, the source field can open directly into a specific chat. We'd like a similar behavior in Mostro mobile apps, but without relying on central web URLs, to maintain the decentralized nature of Mostro.


Proposed URI format

We propose that the source field of NIP-69 events includes a custom deep link in the following format:

nostr:nevent1qqxyzc...&relays=wss://relay1.example.com,wss://relay2.example.com

nevent1...: is the encoded Nostr event pointer (type 30069).

relays: is a comma-separated list of relays where this event was published.


Expected behavior in Mostro Mobile

  1. Register the nostr: scheme at the OS level (Android/iOS).

  2. When the user taps on such a link:

The app parses the nevent1... and the list of relays.

It temporarily connects to the listed relays.

It fetches the event (order).

If valid (NIP-69), it opens the relevant UI screen (buy/sell depending on kind).

  1. After that, the relay(s) could be removed or cached depending on app logic.

Advantages

✅ Works in a decentralized, self-contained manner.
✅ Avoids reliance on a central domain (e.g., mostro.network).
✅ Compatible with third-party Mostro relays (private or regional nodes).
✅ Easily shareable in Nostr events, clients, chats, etc.


Optional enhancements

Support multiple fallback relays in the client configuration.

Cache recently used relays for quicker response.

Add "Add to my relays" prompt if order comes from unknown relay.

Metadata

Metadata

Assignees

Type

No type
No fields configured for issues without a type.

Projects

Status
Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions