# Funding proposal 4: Implementing Nostr in Grin++, grin-wallett or IronBelly

**URL:** <https://forum.grin.mw/t/funding-proposal-4-implementing-nostr-in-grin-grin-wallett-or-ironbelly/10607>\
**Category:** Governance\
**Created:** [June 26, 2023, 8:56am UTC](https://forum.grin.mw/t/funding-proposal-4-implementing-nostr-in-grin-grin-wallett-or-ironbelly/10607 "2023-06-26T08:56:32Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![Anynomous](https://yyz2.discourse-cdn.com/flex036/user_avatar/forum.grin.mw/anynomous/32/2928_2.png) [@Anynomous](https://forum.grin.mw/u/Anynomous)\
**Post date:** [June 26, 2023, 8:56am UTC](https://forum.grin.mw/t/funding-proposal-4-implementing-nostr-in-grin-grin-wallett-or-ironbelly/10607/1 "2023-06-26T08:56:32Z")

</div>

## Feature Proposal 5: Implementing Nostr in Grin++/grin-wallet/IronBelly

**What is Nostr?**  
For those who missed it, Nostr is a decentralized network protocol for a distributed social networking system. Posts are resistant to censorship and are cryptographically validated. Similar to Tor, messages can be sent via multiple hops in routing to reach the recipient. So Nostr works as a Mesh network similar to Tor.

**How does Nostr compare to Tor/onion-routing?**

Currently, interaction between wallets goes by default via the Tor network and if the receiver is offline, a slate-pack message is served to the user to send via any other method such as copy paste in a web-browser, email, Signal etc. Some users perceive the need to use these channels as a disadvantage. The biggest advantage of Nostr is that **A) Nostr is a social network protocol** and therefore allows chatting between users and **b) Nostr serves as a message buffer/bulletin board.** Meaning that if the receiving wallet is offline, the intermediate nodes will store message (but there is catch). To avoid spam though, relaying might cost something, meaning you might have to pay in BTC/LTC/Monero or possibly Grin.  
Nostr basically can serve as a bulleting board. This has been discussed many times, [see here the best link on Bulletin Board Discussion](https://forum.grin.mw/t/grin-bulletin-board-discussing-three-options-and-select-one-for-bounty/9822). There is another disadvantage to Nostr, that is **metadata on Nostr is not encrypted** , meaning you can see which nodes send messages to each other. So some work needs to be done, such as empheral keys/ID’s, randomizing size of messages or perhaps other solutions to protect users privacy.  
Overall Nostr is an interesting, distributed messaging solution that is still relatively novel but can resolved the need for Grin wallets to be offline. Any non-distributed messaging system like Signal, Telegram or WhatsApp can also relay transaction slates but these solutions are more centralized and require you to leek your phone number, which is undesirable.

**Where are we with implementing Nostr**  
Currently there are some [test implementations in the IronBelly](https://twitter.com/ironbellywallet/status/1630009566560747520?s=20) wallet as well as a [Nostr test implementation in Grin++ stand alone Client](https://forum.grin.mw/t/grin-recent-development-updates-and-nostr/10449)

**What we need from you?**  
We need your input, discussion. The purpose of these and all other Funding Proposals is to provide opportunity to discuss feature proposals and only move to any funding request or bounty if there is sufficient interest from the community and if there are valid arguments to move to a funding request.

---

<div class="post-metadata">

**Author:** ![Anynomous](https://yyz2.discourse-cdn.com/flex036/user_avatar/forum.grin.mw/anynomous/32/2928_2.png) [@Anynomous](https://forum.grin.mw/u/Anynomous)\
**Post date:** [June 26, 2023, 9:00am UTC](https://forum.grin.mw/t/funding-proposal-4-implementing-nostr-in-grin-grin-wallett-or-ironbelly/10607/2 "2023-06-26T09:00:53Z")

</div>

☝ My personal opinion on this funding proposal.  
Yes, Nostr is interesting to implement in the future but there are still quite some issues to solve. Waiting a bit might therefore be strategic and cost saving.

Secondly, I do question if this needs to be funded from any official funds or can simple be done as part of a hobby project. If this feature implementation will be funded, I do think it should be modest and only funded when BTC is \> 30k$ 🙂

---

<div class="post-metadata">

**Author:** ![AceKaplin](https://yyz2.discourse-cdn.com/flex036/user_avatar/forum.grin.mw/acekaplin/32/4958_2.png) [@AceKaplin](https://forum.grin.mw/u/AceKaplin)\
**Post date:** [June 26, 2023, 11:35am UTC](https://forum.grin.mw/t/funding-proposal-4-implementing-nostr-in-grin-grin-wallett-or-ironbelly/10607/3 "2023-06-26T11:35:39Z")

</div>

This too feels like a good bounty. CC does not need to be funding a dev salary for this, but a small grin bounty would serve as a nice prize for anyone working on such a project

---

<div class="post-metadata">

**Author:** ![Trinitron](https://yyz2.discourse-cdn.com/flex036/user_avatar/forum.grin.mw/trinitron/32/4990_2.png) [@Trinitron](https://forum.grin.mw/u/Trinitron)\
**Post date:** [June 26, 2023, 1:45pm UTC](https://forum.grin.mw/t/funding-proposal-4-implementing-nostr-in-grin-grin-wallett-or-ironbelly/10607/4 "2023-06-26T13:45:32Z")

</div>

I don’t support this. I don’t think we need transport.

---

<div class="post-metadata">

**Author:** ![Anynomous](https://yyz2.discourse-cdn.com/flex036/user_avatar/forum.grin.mw/anynomous/32/2928_2.png) [@Anynomous](https://forum.grin.mw/u/Anynomous)\
**Post date:** [June 26, 2023, 2:51pm UTC](https://forum.grin.mw/t/funding-proposal-4-implementing-nostr-in-grin-grin-wallett-or-ironbelly/10607/5 "2023-06-26T14:51:57Z")

</div>

@Trinitron Can you elaborate? Do you mean we do not need to provide means of transport next to Tor since users can already use slatepacks to send via any other medium?

---

<div class="post-metadata">

**Author:** ![ardocrat](https://yyz2.discourse-cdn.com/flex036/user_avatar/forum.grin.mw/ardocrat/32/5164_2.png) [@ardocrat](https://forum.grin.mw/u/ardocrat)\
**Post date:** [June 26, 2023, 3:17pm UTC](https://forum.grin.mw/t/funding-proposal-4-implementing-nostr-in-grin-grin-wallett-or-ironbelly/10607/6 "2023-06-26T15:17:22Z")

</div>

> [@AceKaplin](#):
>
> small grin bounty

This project is big as we need to setup relay also and it should be paid to avoid spamming. As for me I want to see this relay accepting Grin as payment.

> [@Trinitron](#):
>
> I don’t think we need transport.

Nostr is experimental thing. As transport we can use even IPFS. Relying to 3rd party TOR only is big mistake. Let’s bring choice to user.

---

<div class="post-metadata">

**Author:** ![Trinitron](https://yyz2.discourse-cdn.com/flex036/user_avatar/forum.grin.mw/trinitron/32/4990_2.png) [@Trinitron](https://forum.grin.mw/u/Trinitron)\
**Post date:** [June 26, 2023, 5:29pm UTC](https://forum.grin.mw/t/funding-proposal-4-implementing-nostr-in-grin-grin-wallett-or-ironbelly/10607/7 "2023-06-26T17:29:49Z")

</div>

I mean that I think transport is unnecessary, including Tor.

Tradeogre uses slatepacks, grinmint uses slatepacks, when I want to send grin to another user I PM them a slatepack.

I don’t think Tor/transport was ever necessary and it only ever was taken up by a few mining pools I think. I think slatepacks are a fun part of Grin to be embraced and celebrated rather than worked around.

---

<div class="post-metadata">

**Author:** ![ardocrat](https://yyz2.discourse-cdn.com/flex036/user_avatar/forum.grin.mw/ardocrat/32/5164_2.png) [@ardocrat](https://forum.grin.mw/u/ardocrat)\
**Post date:** [June 26, 2023, 5:41pm UTC](https://forum.grin.mw/t/funding-proposal-4-implementing-nostr-in-grin-grin-wallett-or-ironbelly/10607/8 "2023-06-26T17:41:57Z")

</div>

> [@Trinitron](#):
>
> when I want to send grin to another user I PM them a slatepack.

Think about automation, communication between machines. Transport can be necessary to automate slatepack sending, like at internet shop instead of copying paste, simple press button and other side will give you response, eveything under the hood, all you need is to have your device to be online or offline if we are talking about some persistence like IPFS.

---

<div class="post-metadata">

**Author:** ![Trinitron](https://yyz2.discourse-cdn.com/flex036/user_avatar/forum.grin.mw/trinitron/32/4990_2.png) [@Trinitron](https://forum.grin.mw/u/Trinitron)\
**Post date:** [June 26, 2023, 5:49pm UTC](https://forum.grin.mw/t/funding-proposal-4-implementing-nostr-in-grin-grin-wallett-or-ironbelly/10607/9 "2023-06-26T17:49:42Z")

</div>

I think those are far away dreams. Tradeogre’s interfaces shows that a checkout interface with slatepacks is already possible.

By the time we get to someone desiring a faster checkout interface years from now the merchants can fund that effort. We don’t even know if nostr will still be around by then.

Tor transport was built and essentially not adopted and went out of style, I expect the same outcome if nostr transport is built now.

---

<div class="post-metadata">

**Author:** ![ardocrat](https://yyz2.discourse-cdn.com/flex036/user_avatar/forum.grin.mw/ardocrat/32/5164_2.png) [@ardocrat](https://forum.grin.mw/u/ardocrat)\
**Post date:** [June 26, 2023, 6:19pm UTC](https://forum.grin.mw/t/funding-proposal-4-implementing-nostr-in-grin-grin-wallett-or-ironbelly/10607/10 "2023-06-26T18:19:17Z")

</div>

> [@Trinitron](#):
>
> not adopted

Problem with Tor on Grin is stability and non-availability at every country, http transport worked perfectly, but its not private, so devs decided to cancel it at default wallet I guess. Interesting why not I2P? Niffler is still using http, I will add it too just after raw slatepacks, Tor is not priority 🙂

> [@Trinitron](#):
>
> merchants can fund that effort

Merchants just need SDK for their shops to be integrated for 2 clicks, same for users to avoid using VPN.  
@noobvie already said he will fund this work a bit.  
All we need is developers. As usually 😉

P.S.  
There is big list of application layer protocols with adoption (even ZCash is in list, but not Grin/MimbleWimble):

> **[Category:Application layer protocols](https://en.wikipedia.org/wiki/Category:Application_layer_protocols)**
>
> This category includes protocols from the Application Layer of the Internet Protocol Suite as well as the protocols of OSI Layer 7. The Application Layer of the Internet Protocol Suite includes Session Layer protocols and Presentation Layer protocols from OSI.
> This category has the following 36 subcategories, out of 36 total.
> The following 188 pages are in this category, out of 188 total. This list may not reflect recent changes.

---

<div class="post-metadata">

**Author:** ![AceKaplin](https://yyz2.discourse-cdn.com/flex036/user_avatar/forum.grin.mw/acekaplin/32/4958_2.png) [@AceKaplin](https://forum.grin.mw/u/AceKaplin)\
**Post date:** [June 26, 2023, 6:44pm UTC](https://forum.grin.mw/t/funding-proposal-4-implementing-nostr-in-grin-grin-wallett-or-ironbelly/10607/11 "2023-06-26T18:44:50Z")

</div>

> [@ardocrat](#):
>
> Problem with Tor on Grin is stability and non-availability at every country

Nostr also has this problem though. Many countries have already banned Nostr and related technologies. Nostr is not an improvement for global availability.

You know what is available everywhere? Slatepacks.

---

<div class="post-metadata">

**Author:** ![ardocrat](https://yyz2.discourse-cdn.com/flex036/user_avatar/forum.grin.mw/ardocrat/32/5164_2.png) [@ardocrat](https://forum.grin.mw/u/ardocrat)\
**Post date:** [June 26, 2023, 6:57pm UTC](https://forum.grin.mw/t/funding-proposal-4-implementing-nostr-in-grin-grin-wallett-or-ironbelly/10607/12 "2023-06-26T18:57:47Z")

</div>

> [@AceKaplin](#):
>
> You know what is available everywhere?

http as protocol, slatepacks is data you are sending through, tomorrow your favorite messenger can be banned too.

Question is how we are sending them. Another cool option to adopt is _SOUND_. You can call your friend at phone and play him this sound. And he will play you as response. Much easier than reading every char inside slate message. Discussed [here](https://forum.grin.mw/t/transaction-building-over-sound/9253).

---

<div class="post-metadata">

**Author:** ![noobvie](https://avatars.discourse-cdn.com/v4/letter/n/9d8465/32.png) [@noobvie](https://forum.grin.mw/u/noobvie)\
**Post date:** [June 26, 2023, 7:01pm UTC](https://forum.grin.mw/t/funding-proposal-4-implementing-nostr-in-grin-grin-wallett-or-ironbelly/10607/13 "2023-06-26T19:01:21Z")

</div>

Not sure if my idea is off-topic but has anyone thought about embedding messaging functions like Wechat into Grin wallet? It’s also a way to spread Grin better

---

<div class="post-metadata">

**Author:** ![trab](https://avatars.discourse-cdn.com/v4/letter/t/f04885/32.png) [@trab](https://forum.grin.mw/u/trab)\
**Post date:** [June 26, 2023, 9:45pm UTC](https://forum.grin.mw/t/funding-proposal-4-implementing-nostr-in-grin-grin-wallett-or-ironbelly/10607/14 "2023-06-26T21:45:52Z")

</div>

> [@Anynomous](#):
>
> The biggest advantage of Nostr is that **A) Nostr is a social network protocol** and therefore allows chatting between users and **b) Nostr serves as a message buffer/bulletin board.**

and c) Nostr exists and operates separate from any specific financial system (including Grin)

> [@Anynomous](#):
>
> To avoid spam though, relaying might cost something, meaning you might have to pay in BTC/LTC/Monero or possibly Grin.

The good thing is that there will always be _some_ relays that are free. And it’s good practice anyway to broadcast to many relays.

> [@Anynomous](#):
>
> There is another disadvantage to Nostr, that is **metadata on Nostr is not encrypted** , meaning you can see which nodes send messages to each other. So some work needs to be done, such as empheral keys/ID’s, randomizing size of messages or perhaps other solutions to protect users privacy.

Lots of work being done on improving the basic NIP-4 DMs.

This [NIP-112 (group chat)](https://github.com/nostr-protocol/nips/pull/580) combines [NIP-44 (encrypted DM)](https://github.com/nostr-protocol/nips/pull/574) with [NIP-59 (gift wrap)](https://github.com/nostr-protocol/nips/pull/351)

It remains to be seen how to best do basic DMs, but it seems like NIP-112 has figured out the group chat now at least.

---

<div class="post-metadata">

**Author:** ![trab](https://avatars.discourse-cdn.com/v4/letter/t/f04885/32.png) [@trab](https://forum.grin.mw/u/trab)\
**Post date:** [June 26, 2023, 9:52pm UTC](https://forum.grin.mw/t/funding-proposal-4-implementing-nostr-in-grin-grin-wallett-or-ironbelly/10607/15 "2023-06-26T21:52:01Z")

</div>

> [@AceKaplin](#):
>
> Many countries have already banned Nostr and related technologies.

How do they ban Nostr relays? It’s just a server with web sockets, right? Nostr is basically thousands of networks. There isn’t one single Nostr network, technically speaking.

---

<div class="post-metadata">

**Author:** ![AceKaplin](https://yyz2.discourse-cdn.com/flex036/user_avatar/forum.grin.mw/acekaplin/32/4958_2.png) [@AceKaplin](https://forum.grin.mw/u/AceKaplin)\
**Post date:** [June 27, 2023, 12:15am UTC](https://forum.grin.mw/t/funding-proposal-4-implementing-nostr-in-grin-grin-wallett-or-ironbelly/10607/16 "2023-06-27T00:15:01Z")

</div>

> [@ardocrat](#):
>
> http as protocol, slatepacks is data you are sending through

Exactly. Protocols get banned. Servers serving a protocol get blocked. But data is nearly impossible to block. If I have a slatepack, i’m not bound to any one protocol or messenger. I can post my slatepacks to nostr if I want. But I don’t have to. I can also send my slates via sms, email, or usb drive strapped to a carrier pidgeon.

You say TOR is bad because the protocol gets blocked in some places. I say Nostr protocol also gets blocked in some places. But nowhere blocks sms. Nowhere blocks email. Nowhere blocks slatepacks.

> [@trab](#):
>
> How do they ban Nostr relays?

By blocking connections to the ip addresses of known relays. New relays can be created, but they get blocked. Its a cat and mouse game.

---

<div class="post-metadata">

**Author:** ![AceKaplin](https://yyz2.discourse-cdn.com/flex036/user_avatar/forum.grin.mw/acekaplin/32/4958_2.png) [@AceKaplin](https://forum.grin.mw/u/AceKaplin)\
**Post date:** [June 27, 2023, 12:16am UTC](https://forum.grin.mw/t/funding-proposal-4-implementing-nostr-in-grin-grin-wallett-or-ironbelly/10607/17 "2023-06-27T00:16:08Z")

</div>

Don’t get me wrong. I think a Nostr wallet would be cool. I just don’t think it should go into the Grin reference wallet, and I don’t think it warrants more than a small bounty. Not some exorbitant funding request from CC.

---

<div class="post-metadata">

**Author:** ![AceKaplin](https://yyz2.discourse-cdn.com/flex036/user_avatar/forum.grin.mw/acekaplin/32/4958_2.png) [@AceKaplin](https://forum.grin.mw/u/AceKaplin)\
**Post date:** [June 28, 2023, 3:16pm UTC](https://forum.grin.mw/t/funding-proposal-4-implementing-nostr-in-grin-grin-wallett-or-ironbelly/10607/18 "2023-06-28T15:16:02Z")

</div>

> [@ardocrat](#):
>
> we need to setup relay also and it should be paid to avoid spamming

I’ll put my thoughts more concretely: I do not think CC should sponsor projects that have recurring costs like running a relay. If someone wants to build a wallet that needs a Nostr relay, then they should figure out a revenue model to pay for that relay.

I had the same criticism of the “Blockstream Jade” hardware wallet. It would be a cool wallet for Grin, but it requires a server. Someone other than CC would need to pay that server bill.

In general, the Grin ecosystem doesn’t need tools with excessive dependencies. Grin needs simple tools with minimal dependencies. I consider that a guiding principle when thinking if CC should fund a project.

[Edit] there might be a business opportunity here for any enterprising individuals. Blockstream Jade wallet for grin AND Nostr wallet both would have to be a paid service (to pay server costs) and both features seem desired by the community. Maybe someone creates a business around providing a Jade + Nostr wallet for the community. A small service fee from users would go a long way, and I think several users here would enjoy one or both services.

---

<div class="post-metadata">

**Author:** ![Anynomous](https://yyz2.discourse-cdn.com/flex036/user_avatar/forum.grin.mw/anynomous/32/2928_2.png) [@Anynomous](https://forum.grin.mw/u/Anynomous)\
**Post date:** [June 28, 2023, 4:04pm UTC](https://forum.grin.mw/t/funding-proposal-4-implementing-nostr-in-grin-grin-wallett-or-ironbelly/10607/19 "2023-06-28T16:04:46Z")

</div>

@AceKaplin Regarding the Jade hardware wallet, I agree that it is best not to link it to a server. Basically I propose to only use the hardware for an air-gapped wallet. Perhaps in the future we could add an option for a a 2 out of 2 multisig if we have that implemented properly. In that case we could use 1 seed to derive 2 keys, one in you App/phone/desktop wallet and second key on the airgap hardware wallet.

For Nostr, I would not support CC funding any relays or anything else with fixed costs or maintenance (lessons learned from buying miners).

---

<div class="post-metadata">

**Author:** ![trab](https://avatars.discourse-cdn.com/v4/letter/t/f04885/32.png) [@trab](https://forum.grin.mw/u/trab)\
**Post date:** [June 28, 2023, 4:42pm UTC](https://forum.grin.mw/t/funding-proposal-4-implementing-nostr-in-grin-grin-wallett-or-ironbelly/10607/20 "2023-06-28T16:42:33Z")

</div>

> [@AceKaplin](#):
>
> In general, the Grin ecosystem doesn’t need tools with excessive dependencies. Grin needs simple tools with minimal dependencies. I consider that a guiding principle when thinking if CC should fund a project.

I fully agree. And it’s why I vehemently opposed building out a BBS for Grin.

However, Nostr is about as simple as it gets and it is not _only_ used for Grin or some other coin. So if a wallet had an additional minimal dependency it should be something like that that allows the relays to be configurable by the user. Use any relays you want to, even your own.
