Mostro P2P Bitcoin souverain

Échanger Bitcoin ↔ fiat via Nostr — sans intermédiaire, dans l’esprit de Satoshi.

Introduction — Mostro, le P2P Bitcoin dans l’esprit de Satoshi

Mostro est un protocole d’échange Bitcoin ↔ fiat construit entièrement sur Nostr, sans intermédiaire, sans plateforme, sans garde, sans KYC. Ce n’est pas un exchange : c’est un protocole.

Deux individus peuvent échanger de la valeur directement grâce à :

Mostro applique la vision de Satoshi : pair‑à‑pair réel, messages signés, réseau ouvert, vérification indépendante. C’est un outil d’autonomie et de souveraineté.

1. Lire l’orderbook Mostro

Pour lire les ordres Mostro, l’outil le plus efficace est NostrDebug : nostrdebug.com/relay.

Ordres pending

["REQ","nostrfr-1",{
  "kinds":[38383],
  "#s":["pending"],
  "#z":["order"],
  "limit":50
}]

BUY uniquement

["REQ","nostrfr-buy",{
  "kinds":[38383],
  "#k":["buy"],
  "#s":["pending"],
  "#z":["order"]
}]

SELL uniquement

["REQ","nostrfr-sell",{
  "kinds":[38383],
  "#k":["sell"],
  "#s":["pending"],
  "#z":["order"]
}]

Ordres EUR

["REQ","nostrfr-eur",{
  "kinds":[38383],
  "#f":["EUR"],
  "#s":["pending"],
  "#z":["order"]
}]

Ordre précis (UUID)

["REQ","nostrfr-one",{
  "kinds":[38383],
  "#d":["<UUID>"]
}]

2. Passer un ordre Mostro (EVENT 38383)

Passer un ordre = publier un event signé via NIP‑07, envoyé au relay Mostro : wss://relay.mostro.network.

Tags obligatoires

3. Exemple : achat 100€ en espèces (cash)

UUID : cash-eur-100-fr-2026

Montant sats : 300000

Timestamp : 1778202000

Event non signé

{
  "kind": 38383,
  "created_at": 1778202000,
  "tags": [
    ["d", "cash-eur-100-fr-2026"],
    ["k", "buy"],
    ["f", "EUR"],
    ["s", "pending"],
    ["amt", "300000"],
    ["fa", "100"],
    ["pm", "Cash (rdv via Nostr)"],
    ["premium", "0"],
    ["network", "mainnet"],
    ["layer", "lightning"],
    ["z", "order"]
  ],
  "content": ""
}

Signature via nos2x

let ev = await window.nostr.signEvent({...})

Publication

["EVENT", { ...event_signé... }]

4. Prendre un ordre (NIP‑59)

Prendre un ordre = envoyer un message privé chiffré au daemon Mostro (EVENT 1059).

["EVENT",{
  "kind":1059,
  "created_at":1778202500,
  "tags":[
    ["p","<pubkey_daemon>"],
    ["d","cash-eur-100-fr-2026"]
  ],
  "content":"{\"type\":\"take-order\",\"d\":\"cash-eur-100-fr-2026\"}",
  "sig":"<signature>"
}]

5. Suivre un ordre (NIP‑33)

Mostro met à jour un ordre via des events 38383 partageant le même d.

["REQ","nostrfr-follow",{
  "kinds":[38383],
  "#d":["cash-eur-100-fr-2026"]
}]

6. Installer nos2x (NIP‑07)

Installation

Tester la signature

window.nostr.getPublicKey()
window.nostr.signEvent({ kind:1, content:"test" })

7. Workflow souverain complet

Conclusion

Avec NostrDebug, WebsocketKing et nos2x, Mostro devient un protocole transparent, inspectable et souverain. Un échange Bitcoin ↔ fiat sans intermédiaire, fidèle à l’esprit originel de Bitcoin.

Sources (version courte)