Summary of my fun week playing with Cashu, that I discovered recently.
This week I did:
- try and tested Cashu.me wallet and loved the UX from the user perspective (sending some sats to my Cashu wallet directly from my Nostr client was also very fun)
- read the Cashu docs
- implemented first step of BDHKE in Cairo and wrote an article about potentially ZKfying Cashu using STARK proofs
- implemented the full BDHKE in Zig
- contributed to Moksha Rust implementation to add criterion benchmarks
- realised that my Zig implementation was 10x slower
- moved to using the libsecp256k1 in C instead of Secp256k1 from the Zig std lib
- managed to have better perf than the Rust version
- contributed to CDK to add criterion benchmarks


I meant fedi, the previously (or still?) closed-source app


🤟THE FIRST TEN npubs to repost this note will receive 1000 sat zaps 🥰 🙏

 What are the privacy implications of spending btc via ecash like Cashu?

Im early in my exploration but have extensive experience as a routing node operator.

Id imagine that in this scenario you are only as strong as your weakest link, which in this case is lightning. For example, spending of ecash across mints requires liquidity on lightning, and is only as private as we can assume lightning, limited by publicly created channel liquidity and potential man in the middle attacks whereby a well connected routing node may also function to surveil the network flows.

Can I assume the closest we get to perfect privacy with Cashu is when spending WITHIN the mint, where our anonymity set is infinite among other network users, and equal to the pool of participants using the mint, when viewed from the mint operator's perspective?

If these discussions are occurring or have occurred elsewhere Id appreciate any info.

#asknostr
nostr:npub12rv5lskctqxxs2c8rf2zlzc7xx3qpvzs3w4etgemauy9thegr43sf485vg
❤


If you're running a Cashu Nutshell mint, join us here for support and discussions. https://t.me/CashuNutshell


This is a better fork btw

https://github.com/yt-dlp/yt-dlp


which keyboard do you use?


Got a link?


According to our Cashu dev chat history, the first demo of an ecash payment via nostr seems to have been on Dec 26, 2022

https://video.nostr.build/6d373ceb148e7da53c4c4248d9096e4e008a8a2da0cc14c35c0aa0df57d26fd8.mp4


Savage 🫠


And if you feel like it, contribute back with your code, your infrastructure, or your donation.

cashu.space


With Cashu, we're building an Ecash protocol, not an app. Use one of dozens of apps or write your own. Use one of dozen libraries or implement it yourself. Use one of dozens of mints or run your own. Cashu is designed to empower you, not to lock you in.

You don't need permission. Use it the way you want. It's yours.


Let's Streisand that thang


Did ecash appear on Nostr before Zaps? I'd love to know when the first ecash payment was sent on Nostr and when the first Zap was sent on Nostr.

I'm working on a timeline that involves some of Nostr's history. Seems like December 2022 to February 2023 is the time range for both?

nostr:npub12rv5lskctqxxs2c8rf2zlzc7xx3qpvzs3w4etgemauy9thegr43sf485vg nostr:npub1xtscya34g58tk0z605fvr788k263gsu6cy9x0mhnm87echrgufzsevkk5s


Awesome work!


After being delayed for over a week I finally managed to finish the new release for npub.cash. It is now in staging and if everything goes as planned I will manage to release it tomorrow.

This release took a while to complete, because it changes the way how the server keeps track of the token spending-state. It used to check all pending claims all the time when user accessed the wite, which cause much traffic for mints and also caused issues when users had many proofs pending (Some had over 1000...)

npub.cash will now assume a token as spet as soon as you create the token / qr code. If anything goes wrong, you can resurface the token at any time from your withdrawal-history tab.

Also npub.cash will check how many proofs are pending and will paginate the result if there are too many. This will keep issues from arising, especially regarding token size.

https://m.primal.net/Jscg.png


Appreciate the insights! You have built Expo apps before right? Did you ever notice performance differences compared to pure native?


Porting cashu.me would be a dream. I tried with the tools quasar offers but couldn't get it to work really (although it compiled sometimes for Android and even iOS). Just the QR scanner alone was a big hustle for me and I failed.

Have you done anything like this before?


Very insightful, thanks. I'm surprised that kotlin multiplatform still sounds so experimental or foreign to many (I have no mobile app dev XP!).


Asking for pro advice: If you would create a multiplatform mobile app today, which language and framework would you use and why?


I think Photoshop is missing something in their counterfeit detection modal warning. Additional context would be helpful!
https://m.primal.net/JsVV.jpg
https://m.primal.net/JsVW.jpg


Beautiful work!


Please join us at the nostr hack day on the 9th of October in Berlin!

Free registration here: http://nostrhackday.orangesync.tech


wow, nice. Calle’s tip about using duckduckgo for ai chat is gangsta. super nice! running llama for the first time. h/t nostr:npub12rv5lskctqxxs2c8rf2zlzc7xx3qpvzs3w4etgemauy9thegr43sf485vg


Sounds more like brain damage to me.


woa! is it good?


Someone should build a Cashu backend for Taproot Assets so we can use it for USD ecash. Seems like a perfect match since it can apparently be used to pay botl11 invoices.

👀


You're a prolific dev sir.


What's that?


Who's talking about you?


Read again.


I don't make the rules.


What do you actually build?


Are you a nostr and/or eCash enjoyer? This one might be for you: https://sovereignengineering.io/


Since nostr:nprofile1qqstxwlea9ah3u6kjjszu6a7lrnhqkfh8eptp2z6v0e9558tlkkl2rgpzemhxue69uhk2er9dchxummnw3ezumrpdejz7qgwwaehxw309ahx7uewd3hkctcpremhxue69uhkummnw3ez6ur4vgh8wetvd3hhyer9wghxuet59u4kl3vp implemented batch receive on the Lightning address, it got 100x more useful for me. Thank you for working on this beautiful piece of software.


Since nostr:nprofile1qqstxwlea9ah3u6kjjszu6a7lrnhqkfh8eptp2z6v0e9558tlkkl2rgpzemhxue69uhk2er9dchxummnw3ezumrpdejz7qgwwaehxw309ahx7uewd3hkctcpremhxue69uhkummnw3ez6ur4vgh8wetvd3hhyer9wghxuet59u4kl3vp implemented batch receive on the Lightning address, it god 100x more useful for me. Thank you for working on this beautiful piece of software.


Bitcoin payments will always have a custodial component until someone comes up with a completely unpredictable revolutionary new idea that changes the whole game.


I trust my friends.


If you run a Cashu mint that is used by 100 friends, we can scale this thing as far as we want it to go.

Gm.


This is pure beauty 🤩


Can you see the beauty of it? This screenshot is from Amethyst. Every client that implements NIP90 benefits from more services and more diversity of content providers. This also decentralizes algorithms further as the more people host DVMs, the more current "monopolies" break down.

You as a user always have the choice which algo you want to use to discover content, instead of being enslaved by "the algo" on legacy platforms.

nostr:nevent1qqsxzq63k3y53ta64qsphx77yrgu3duzsf6sugsvj7zmlz6ycl3rfgqpz3mhxw309ucnydewxqhrqt338g6rsd3e9upzpxdm2kgujytxqruy2yrax8umt83003lqng0lsqhgfuw58kj40jnyqvzqqqqqqy63403q


I don't know, but many western countries are on a downward-spiralling path caught up between protecting their own people and keeping up the age pyramid that's baked into their social contracts.


Not arguing against anything you said btw. Read your OP and I agree with it, just adding another perspective. Personally, there is nothing you can do other than to be the best in your field.


There are many western countries with a severe lack of talent in their job market, a dire need of high-skilled workers, and an aging population for the decades to come, which rely heavily on attracting educated immigrants.

Being so good that nobody can say no to you is great from a personal perspective but from a societal one, I don't think waiting 100 years for the market to fix racism is is an option.


Maybe we have to break nostr first to make it better

# What Can We Get by Breaking NOSTR?

"What if we just started over? What if we took everything we have learned while building nostr and did it all again, but did it right this time?"

That is a question I've heard quite a number of times, and it is a question I have pondered quite a lot myself.

My conclusion (so far) is that I believe that we can fix all the important things without starting over. There are different levels of breakage, starting over is the most extreme of them. In this post I will describe these levels of breakage and what each one could buy us.

## Cryptography

Your key-pair is the most fundamental part of nostr. That is your portable identity.

If the cryptography changed from secp256k1 to ed25519, all current nostr identities would not be usable.

This would be a complete start over.

Every other break listed in this post could be done as well to no additional detriment (save for reuse of some existing code) because we would be starting over.

Why would anyone suggest making such a break? What does this buy us?

- [Curve25519 is a safe curve](https://safecurves.cr.yp.to/) meaning a bunch of specific cryptography things that us mortals do not understand but we are assured that it is somehow better.
- Ed25519 is more modern, said to be faster, and has more widespread code/library support than secp256k1.
- Nostr keys could be used as TLS server certificates. [TLS 1.3](https://tools.ietf.org/html/rfc8446#section-4.4.2) using [RFC 7250 Raw Public Keys](https://tools.ietf.org/html/rfc7250) allows raw public keys as certificates. No DNS or certification authorities required, removing several points of failure. These ed25519 keys could be used in TLS, whereas secp256k1 keys cannot as no TLS algorithm utilizes them AFAIK. Since relays currently don't have assigned nostr identities but are instead referenced by a websocket URL, this doesn't buy us much, but it is interesting. This idea is explored further below (keep reading) under a lesser level of breakage.

Besides breaking everything, another downside is that people would not be able to manage nostr keys with bitcoin hardware.

I am fairly strongly against breaking things this far. I don't think it is worth it.

## Signature Scheme and Event Structure

Event structure is the next most fundamental part of nostr. Although events can be represented in many ways (clients and relays usually parse the JSON into data structures and/or database columns), the nature of the content of an event is well defined as seven particular fields. If we changed those, that would be a hard fork.

This break is quite severe. All current nostr events wouldn't work in this hard fork. We would be preserving identities, but all content would be starting over.

It would be difficult to bridge between this fork and current nostr because the bridge couldn't create the different signature required (not having anybody's private key) and current nostr wouldn't be generating the new kind of signature. Therefore any bridge would have to do identity mapping just like bridges to entirely different protocols do (e.g. mostr to mastodon).

What could we gain by breaking things this far?

- We could have a faster event hash and id verification: the current signature scheme of nostr requires lining up 5 JSON fields into a JSON array and using that as hash input. There is a performance cost to copying this data in order to hash it.
- We could introduce a subkey field, and sign events via that subkey, while preserving the pubkey as the author everybody knows and searches by. Note however that we can already get a remarkably similar thing using something like NIP-26 where the actual author is in a tag, and the pubkey field is the signing subkey.
- We could refactor the kind integer into composable bitflags (that could apply to any application) and an application kind (that specifies the application).
- Surely there are other things I haven't thought of.

I am currently against this kind of break. I don't think the benefits even come close to outweighing the cost. But if I learned about other things that we could "fix" by restructuring the events, I could possibly change my mind.

## Replacing Relay URLs

Nostr is defined by relays that are addressed by websocket URLs. If that changed, that would be a significant break. Many (maybe even most) current event kinds would need superseding.

The most reasonable change is to define relays with nostr identities, specifying their pubkey instead of their URL.

What could we gain by this?

- We could ditch reliance on DNS. Relays could publish events under their nostr identity that advertise their current IP address(es).
- We could ditch certificates because relays could generate ed25519 keypairs for themselves (or indeed just self-signed certificates which might be much more broadly supported) and publish their public ed25519 key in the same replaceable event where they advertise their current IP address(es).

This is a gigantic break. Almost all event kinds need redefining and pretty much all nostr software will need fairly major upgrades. But it also gives us a kind of Internet liberty that many of us have dreamt of our entire lives.

I am ambivalent about this idea.

## Protocol Messaging and Transport

The protocol messages of nostr are the next level of breakage. We could preserve keypair identities, all current events, and current relay URL references, but just break the protocol of how clients and relay communicate this data.

This would not necessarily break relay and client implementations at all, so long as the new protocol were opt-in.

What could we get?

- The new protocol could transmit events in binary form for increased performance (no more JSON parsing with it's typical many small memory allocations and string escaping nightmares). I think event throughput could double (wild guess).
- It could have clear expectations of who talks first, and when and how AUTH happens, avoiding a lot of current miscommunication between clients and relays.
- We could introduce bitflags for feature support so that new features could be added later and clients would not bother trying them (and getting an error or timing out) on relays that didn't signal support. This could replace much of NIP-11.
- We could then introduce something like negentropy or negative filters (but not that... probably something else solving that same problem) without it being a breaking change.
- The new protocol could just be a few websocket-binary messages enhancing the current protocol, continuing to leverage the existing websocket-text messages we currently have, meaning newer relays would still support all the older stuff.

The downsides are just that if you want this new stuff you have to build it. It makes the protocol less simple, having now multiple protocols, multiple ways of doing the same thing.

Nonetheless, this I am in favor of. I think the trade-offs are worth it. I will be pushing a draft PR for this soon.

## The path forward

I propose then the following path forward:

1. A new nostr protocol over websockets binary (draft PR to be shared soon)
2. Subkeys brought into nostr via NIP-26 (but let's use a single letter tag instead, OK?) via a big push to get all the clients to support it (the transition will be painful - most major clients will need to support this before anybody can start using it).
3. Some kind of solution to the negative-filter-negentropy need added to the new protocol as its first optional feature.
4. We seriously consider replacing Relay URLs with nostr pubkeys assigned to the relay, and then have relays publish their IP address and TLS key or certificate.

We sacrifice these:

1. Faster event hash/verification
2. Composable event bitflags
3. Safer faster more well-supported crypto curve
4. Nostr keys themselves as TLS 1.3 RawPublicKey certificates


I see it as invalid


I see your nip5 as jb54@jb55.com


Why do you (or your nip5) pretend to be nostr:nprofile1qqsr9cvzwc652r4m83d86ykplrnm9dg5gwdvzzn8ameanlvut35wy3gprpmhxue69uhhwetvvdhk6efwdehhxarj9emkjmn9qyxhwumn8ghj7mn0wvhxcmmvqyg8wumn8ghj7mn0wd68ytnhd9hx2yhtlun?


Thank you. The 21 sats are the signal, everything else is noise 😂


You're right, very sus


In the future, people will write emails using AI and others will read these emails using AI.

Sender: "Write this as a formal email: ..."
Recipient: "Summarize the content of this email: ..."

Humans will realize that all that "dear madam or sir I hope this email finds you well" is just formal boilerplate and that communication is less about form but more about its content. It's like zipping a file and unzipping it again (except it actually blows up the size in this case). Our digital expression will reduce back to its original form of pure content and explicit intent.

I'm 99% certain this will happen. Nobody truly likes this formal bullshit. Machines are going to be like APIs between humans.

Gn


Redeemed in PWA, well done! 👏 https://image.nostr.build/dc91205a03f94144182a0e8cf4fa7d6da0bd5a6d1a3884c7df5d25b5330d1385.jpg


Learn to use your browser properly?


They also seem to have the 405B version which is huge


Ohhh very nice, llama 3.1


Good movie btw
https://en.m.wikipedia.org/wiki/Snowpiercer


I love trains that don't stop.


The same way duckduckgo is free


(I hope!)


There will always be a free alternative from now on.


I'm gonna tell you a life hack.

- go to duckduckgo
- open their AI chat thing
- choose one of 4 models (got 4o mini is great)
- chat with that thang

Free. No tracking. No accounts. Open source models included. Did I say free? And no accounts.

I have an OpenAI account but this is the only thing I've been using for a few weeks. Privacy feels great.

https://duckduckgo.com/?q=test&t=fpas&ia=chat


Do you know the GitHub link or where the code is?


Is this a joke? Holy shit.


I believe you


nostr:note155f0udq695j6qtz3j8h6ktfw6qv5w97wgqnpa63ka6rzvq6x5d2szgpqy2
https://m.primal.net/JpOM.png


God how much I hate closed protocols.

Airdrop clone for Android to Mac: https://github.com/moseoridev/WarpShare

Near Share clone for Mac to Android: https://github.com/grishka/NearDrop


Nostr active user count soon to overtake Bitcoin USD price for the first time.


We were at 10k like a few months ago


Gotcha, sounds like that should be common practice.

More on that in their blog:

Anti-Klepto protocol
To solve this, Shift Crypto and Blockstream developed Anti-Klepto. Instead of solely relying on the randomness that the hardware wallet provides for the nonce, additional randomness is provided by the host device. This prevents the hardware wallet firmware from manipulating the nonce in a way so that it contains hidden data.

https://bitbox.swiss/blog/how-almost-all-hardware-wallets-can-steal-your-seed/


based


I wanna know: what makes Jade and BitBox better than others?


What's the backend you're using?


Based


Anyone who can live with the fact that I can rug you, feel free to use https://bb.mountainlake.io/ or use a cashu wallet with my mint at https://mint.mountainlake.io. I don't charge any fees on top of the lightning network itself. And keep in mind that I will be sailing til mid September and therefore can't offer the same support as in the winter months.


Yeah, I've spliced out of my channel more than once because it was cheaper to do than to send via Lightning. Feels weird.


Without nostr:nprofile1qqsrf5h4ya83jk8u6t9jgc76h6kalz3plp9vusjpm2ygqgalqhxgp9gpr3mhxue69uhkummnw3ezumt4w35ku7thv9kxcet59e3k7mgpzemhxue69uhkkmr0vd4k2mn8vyh8xmmrd9skcqguwaehxw309ahx7um5wghxy6t5vdhkjmn9wgh8xmmrd9skctylktc, things would look pretty bleak right now.


Looking for a new Lightning wallet and have questions about ZEUS?

Ask us anything!


Ooof that's scary


*charge


It is when you compare it to running your own node. They changed for receiving and for sending so, yes, it's expensive.


And how much you're receiving as well.


Ergo, buy more shitcoins


(I know that's not an alternative to most users of Phoenix, but as a tech savvy person, you don't have to put up with these kinda strong compromises)


Phoenix is really good and I recommend it to people, however:

- extreme form of "non-custodial centealizarion"
- very very bad privacy
- actually super expensive

I think it's smarter to use Zeus with your own Lightning node on a server at this point.


Phoenix is really good and I recommend it to people, however:

- extreme form of "non-custodial centralization"
- very very bad privacy
- actually super expensive

I think it's smarter to use Zeus with your own Lightning node on a server at this point.


Phoenix is really good and I recommend it to people, however:

- extreme form of "non-custodial centralizarion"
- very very bad privacy
- actually super expensive

I think it's smarter to use Zeus with your own Lightning node on a server at this point.


I mean depends who you mean.


Nope


nostr:nprofile1qqsrs7xetkmms4xr5rfm944hh7dl9zekzc47vsex74fphfcu7w6956gpp3mhxue69uhkyunz9e5k7qg4waehxw309ajkgetw9ehx7um5wghxcctwvsq32amnwvaz7tmgd9ehgtnwdaehgu3wd3skueqdwyj7h is doing amazing work on LNbits! Thank you for your contributions!


Ouch


This is honestly a really sad day. As Mutiny wallet is sailing toward the sunset, I hope that Lightning wallet devs will step up their game to fill the void they left. We need self-custodial wallets that run a node on your phone. We need options. We need the talent.

We probably also need another wallet that mixes Ecash with Lightning to cover everything from very small balances to very large balances. One that let's you start with 100 sat and holds your hands and opens channels for you as you acquire more sats.

I've been building Lightning wallets for years before I started working on Cashu. I know how fucking hard it is. Ecash is child's play compared to Lightning's complexity.

My deepest respect goes to the lunatics who put a fucking Lightning node in the browser and pushed LDK to places where no one else has ever been.

Thank you nostr:nprofile1qqs9hejyd252x8q3kw6980ud4lymx3hlx2x3lgg6p7sz58nyv8m2nvgpvemhxue69uhkv6tvw3jhytnwdaehgu3wwa5kuef0dec82c33wscxu7t8xc6xwdtkwac8yanpx5e8wmrrd46rwentv3erqdmkx4j8ydmnxv6hyct389nnq7r8vvcxkdrcvdek2er2vachv0mzwfhkzerrv9ehg0t5wf6k2qg5waehxw309aex2mrp0yhxgctdw4eju6t0qyg8wumn8ghj7mn0wd68ytnhd9hx2ujnh08 nostr:nprofile1qqswrlemlh2wgqc4jkds3d8ueqj9a2j3gcm7r48v9tskdd6rxsd7rtcpzfmhxue69uhhqatjwpkx2urpvuhx2ucpz3mhxue69uhhyetvv9ujuerpd46hxtnfduqjxamnwvaz7tmwdaehgu3wwfhh2mnywfhkx6mzd96xxmmfdejhyuewvdhk6jg4k33 nostr:nprofile1qqsq6myr3rwtqjdcm48u357ccwae8h3a4y96s28y7zwg458ngeyg5vcp2amhxue69uhkv6tvw3jhytnwdaehgu3wwa5kuef0dec82c33wq6xkeec0fu826ms09knx6pjxpjhyenpxdekzmt2xqc8ymfjva6rguf4wan827t4xd6xwvrcxd4xwvm8v4ehvmnr0pnrsqgkwaehxw309ahx7um5wgh8vatvwpjk6tnrdaksz9rhwden5te0dehhxarj9ehhsarj9ejx2ase3kkz0

🫡🏴☠


I always considered Mutiny as one of the best wallets out there with the most promising outlook for the future. Very sad to hear that this didn't work out.

All the best for whatever comes next. You guys rock!


Why?


Protect this smiley

nostr:nevent1qqs96c859gzv09mv56k0dq9ywv90lmqh665dqlpul7dv53u3k4xxy3gpzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtczyr3lceelchuee3256rl5wat8j4j86fwtden937gj6y22uepf6dwn2qcyqqqqqqgp8j706


Can you recommend any good science fiction books? Currently in a Greg Evans rabbit hole myself.


the rust mint of nostr:nprofile1qqsqfyvdlsmvj0nakmxq6c8n0c2j9uwrddjd8a95ynzn9479jhlth3gpz4mhxue69uhkummnw3ezummcw3ezuer9wchsz9thwden5te0wfjkccte9ejxzmt4wvhxjme0q9n8wumn8ghj7enfd36x2u3wdehhxarj9emkjmn99ah8qatzx9ck5emrd4k8q6m909krsmtyddm8qdrnxpuxcue5096xxatcxekhjd3sxe6xwenc89u8gar4wsunqdmgxpa8xdekd3nk5aelvfex7ctyvdshxapaw3e82egzmrk82 used greenlight a while ago, unsure if it's still supported. I've done a bunch of preparation for breez sdk in nutshell, there isn't much left to do afaik!


cashu.space
docs.cashu.spacw
awesome.cashu.space

we like the devs 🫡🥜


Imagine a BTCPayServer point of sale receiving Cashu ecash to the merchant's Lightning wallet.

- no rug risk for merchant
- can accept ecash from a million different mints
- merchant pays LN fees
- users can remain offline while paying

Ecash is Bitcoin's credit card killer.


#goals


What's the hard part?


Priests and monks blessing server rooms and sprinkling holy water on computer systems https://image.nostr.build/f8a183dfede89720f74f0975daa14c9ac611e57e0ec8b22bcb8fa2fc06d88b15.jpg https://image.nostr.build/a518fd46918d6a3b33e7dfd73fbace0d915a16961c9e1704cf22ed1f5bec89e4.jpg https://image.nostr.build/10c9049978ca9c7ba6ddfc5b79b3d95df57110fdf607b58658f73e6b321831cb.jpg https://image.nostr.build/97e3d103da3726cf84c25c267fe652857df4aaa9f521abed72b3a50da9a4cd2f.jpg https://image.nostr.build/2dbdb9b4f60db4b0692389fc41cc9c90384914e25163dc03c60160858ab812dc.jpg https://image.nostr.build/cb7138eba97ef07d4d84dc5f7dc9000e66ce8a782db2c6d1a63f8115a9815425.jpg


I'm not


And whoever reads this, obviously don't run random commands, that's a great way to get rekt.


Why would I backup my signet channels


False. There are thousands of people and businesses using it non-custodially for real economic activity because Lightning is the fastest and cheapest way to settle payments online. Always has been, likely will be for a long time.


Try this: Lemon, sparkling water, salt.


I don't believe one second you actually care about normie UX, you just hate Lightning. That's fine, Lightning has no feelings towards you.


Hahahaha yes! Fucking connect Zeus to it and you literally have the best UX and fully sovereign. I don't believe he's running a node.


Do you run a node or do you just make up shit as you go? Because if you run a node, my god, you must be terrible at doing it.


People like this don't want to hear your solutions to their problem, they just want to shout angrily into the sky.


I love how you're honestly engaging with a troll. Keep it up, you're probably a good man!


The mint will never know nostr:nprofile1qqsxn2q9vlnek6umcu5z44v42yklpwqy0prpd0kmvg7pytadgg9zvdgpz4mhxue69uhkummnw3ezummcw3ezuer9wchsxfhr2x nostr:nprofile1qqs9pk20ctv9srrg9vr354p03v0rrgsqkpggh2u45va77zz4mu5p6ccpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsz9thwden5te0dehhxarj9ehhsarj9ejx2a30qythwumn8ghj7un9d3shjtnswf5k6ctv9ehx2ap09krt7g

https://image.nostr.build/4280d9e0d1e671685cd328265152469125a542a67e7aafe5459004ad8aa250ab.jpg


nostr:nprofile1qqsd3gkr8uhzluaf6nlj54vn7026t853vla9mmgx858ynzghwes3urqpr3mhxue69uhkummnw3ez6vp39eukz6mfdphkumn99e3k7mgpr3mhxue69uhkummnw3ez6vpj9eukz6mfdphkumn99e3k7mgpremhxue69uhkummnw3ez6vpj9ejx7unpveskxar0wfujummjvux9djpu wrote an article about how he set up his mint, care to share it?


Silver lining


It's all public. everyone can use the strike backend now. It also works with euros.

To use the stable channel, slight modifications are needed (because you can't use the stablechannel itself to send and receive yet). You can put $1k USD in the channel and keep it fixed and then issue that same amount in USD via your normal lightning node / mint.


Multiple ways:

- use strike (buy literal dollars)
- use a stable channel (hedge against USD)
- soon: use LNMarkets to buy a perpetual contract
- potentially soon: use a 10101 DLC to hedge


gotta norm the mean wherever you go


20 push ups (or equivalents) whever you think of it, no excuses, do this while programming 12 hours a day and you'll feel like a fucking yoga teacher.


Amethyst on Android

On desktop, I'm trying to cycle through as many obscure clients as I can so I don't end up using the most popular client like all the complacant normies out there 😂


cashu.me - find a mint at bitcoinmints.com


lol


LightningTipBot 🤖⚰🥀


Cashu works with Lightning. It's a better way of building custodial wallets. Btw, I made LightningTipBot, I saw you mention it.


nostr:nprofile1qqstxwlea9ah3u6kjjszu6a7lrnhqkfh8eptp2z6v0e9558tlkkl2rgpzemhxue69uhk2er9dchxummnw3ezumrpdejz7qgwwaehxw309ahx7uewd3hkctcpremhxue69uhkummnw3ez6ur4vgh8wetvd3hhyer9wghxuet59u4kl3vp now supports batch receive of zaps (payments to your mjnibits Lightning address), thank God! Enable in profile settings.

https://image.nostr.build/a8e91b86c40c6b87c8f427543d296d93e6a0c9b027cebdf1a16259576e342890.jpg


alt A screenshot of a pull request for NIP-60 support on Shopstr.

Soon... 🥜💰👀

https://i.nostr.build/7Wd9OEUnF40IRnCw.jpg


#Peerfetch: Peer-to-Peer HTTP over WebRTC

https://github.com/ambianic/peerfetch


I love when the #Linux community is like: "that's an awfully great closed standard you've got there, it'd be a shame if someone were to... open-source reverse engineer it."


Sure, better to take advice from an asshole than no advice at all, but that's not what I'm talking about.

It's not about making people feel good. It's about how much impact you can have on the world around you.


Many smart people get stuck in level 1 and by that they limit their own potential. They turn into the angry guy who's always right but nobody ever listens to them. They lose sight of level 2, thinking that the only important skill is to be smarter than others. Other smart people soon learn to ignore them, because at that level, everybody around you is smart, but some of them are assholes.

It's completely up to you what you become. It's your responsibility, nobody else's.


Gm, everybody who's barely smart enough can be edgy. That's like level 1 of being smart. Edgy people are rarely as impressive as they think.

The hard part is being kind, collaborative, and to use your smartness to support people and to be a an actually nice person. That's what's impressive.


Amethyst


Low-key best button in nostr
 https://image.nostr.build/aac6c1ca809afc488fda118b7a8c48bf0009ace1f74ed7a266600759680a5070.jpg


Click the little spy icon in the DM text box to use giftwraps. I just sent you a DM


Dayum


We're gearing up for our first release! This week, NWS received some exciting updates:

- Public Internet Traffic Relay: Now, exit nodes can choose to relay internet traffic. This means entry nodes can access the internet using the public exit nodes.

- .nostr Domains Support: We've added support for `.nostr` domains! These are valid RFC1035 domains, so they should work smoothly with most existing clients.

curl -v -x socks5h://45.153.242.184:8882 https://etpn6ehf5tp6ar31f4n3gcpj6cn76s31cdig.fqf7cuaje6c9vgralfq4fipbg27f7d9ih6mp0utfqiprqc3ce3ug.nostr/v1/info --insecure

- Reverse TCP Connect Mode: We've added a new reverse TCP connect mode. Now, when a request comes in, the exit node can establish a reverse TCP connection to the public entry node, and this connection will be used for data forwarding instead of Nostr. Nostr will still manage service discovery. This feature should improve the connectivity and reduce the load on public Nostr relays.
https://github.com/asmogo/nws


That's very cool thanks for clarifying


I use Element. Simplex is way too clunky for me as a daily driver, too many missing features when I tried, notifications rarely work etc.

I'm trying to replace Telegram as the main chat for Bitcoin dev as much as I can. Matrix has a mature ecosystem and is used by many, can be self-hosted. It's great.


I like nostr:nprofile1qqsth7fr42fyvpjl3rzqclvm7cwves8l8l8lqedgevhlfnamvgyg78spz3mhxue69uhhyetvv9ujuerpd46hxtnfduq3qamnwvaz7tmwdaehgu3wwa5kuegpz4mhxue69uhk2er9dchxummnw3ezumrpdejqj9swg4 more


So you're just making unfounded claims, gotcha.


Don't forget the rate limiter as long as there are no fees (fail2ban is good)


Does Fedi sponsor educators or marketers?


Can you tell who I'm chatting with? Post below 👇


lel


I don't want to be rude but if you send me a DM that is not giftwrapped, I'm probably not going to answer. Please use a nostr client that supports giftwraps (Amethyst, 0xChat, ...) or use Matrix to reach me (contact in bio).

If you don't use giftwraps, everyone can see that you've messaged me. Some bored weirdo is going to look at our metadata and post it publicly as a display of their genius. It happened in the past. I wish I could prevent people from sending me DMs here in the first place.

Please be aware of this and don't use normal nostr DMs to improve your own privacy and the privacy of your peers.

Stay nutty 🫡


Jeremy Rubin asked on Twitter what was happening with #GSR. Good q!

After far too much fiddling with benchmarks I now have preliminary numbers. Budget is 5200 varops per weight. Fast ops (compare, zero fill, copy) cost 1 varop per stack byte. SHA256 costs 10 per byte. Everything else costs 2 per byte.

I need to clean up my benchmarks so everyone can run them, and get "on your machine the worst case validation would be <X> seconds, doing OP_<Y>".  That's concrete and gives us a chance to find any wild machines which are unexpectedly slow, and gives a tangible worst case, which should allow fruitful discussion

I also need to write code to answer "what input size (if any) would cause <this script> to exhaust it's varops budget?". This again enables us to think concretely about my thesis (yet to be proven to my satisfaction!)  that it's possible to have a budget which allows any reasonable scripts not to worry about it.


Awesome, thank you for your work! What's the expected variance on the performance of these different components on different CPU architectures? Are there going to be larger discrepancies or are CPUs handling most of it the same?


#bullishNuts v0.0.65

🥜 Upgraded cashu-ts from 1.0.0-rc.5 to 1.0.1
🥜 Added paste button to the receive-ecash modal
🥜 Added ability to check proofs

https://bullishnuts.vercel.app
https://m.primal.net/JldZ.jpg
https://m.primal.net/Jlda.jpg


This happens multiple times per year.


🎉 Just passed my 1K follower base milestone on Nostr! 💪🏻💫🧡


randombtc - a random number generator that everybody can agree on

https://github.com/callebtc/randombtc

nostr:nevent1qqsqex923x20g25d3a7jaam36q8gfsfrghed3ve7fa07ej07l08z6ngppemhxue69uhkummn9ekx7mp0qgspayy0hsw3x8qh4plnyp5l20my73w8t7g69ak58792vsgfwnd92csrqsqqqqqpnu32lg


I've got u bro
https://github.com/callebtc/randombtc


"I'm at that stage in life where I stay out of discussions. Even if you say 1+1=5, you're right - have fun." - Keanu Reeves


freed


curl -v -s -x socks5h://relay.8333.space:8882 https://etpn6ehf5tp6ar31f4n3gcpj6cn76s31cdig.fqf7cuaje6c9vgralfq4fipbg27f7d9ih6mp0utfqiprqc3ce3ug.nostr/v1/info --insecure


Verifiable computation for Nostr Data Vending Machines.

Nostr DVMs are the future:
- free market
- censorship resistant
- standardised

What if we could bring ZKPs to make the computations of DVMs provable ?

Here you, with Askeladd :
- NIP-90 compliant.
- Uses STWO prover to generate Circle STARK proofs.
- In-browser proof verification using Web assembly STWO verifier.

For the user it's very simple:
- Submit the job via a web page signing a Nostr message (with any NIP-07 compatible extension)
- Get the result and verify the proof in the browser directly

https://m.primal.net/Jkvk.mp4

Try it yourself: https://askeladd.org


I can't shill nostr:nprofile1qqs83nn04fezvsu89p8xg7axjwye2u67errat3dx2um725fs7qnrqlgpr4mhxue69uhkummnw3ez6ur4vgh8wetvd3hhyer9wghxuet5qyt8wumn8ghj7un9d3shjtnswf5k6ctv9ehx2aqpr3mhxue69uhkummnw3ezucnfw33k76twv4ezuum0vd5kzmq50sn4h  often enough. The idea is fantastic. The app itself is great, and getting better. The curation is excellent, I'm discovering new stuff all the time. And all of it will improve over time. So powerful.


Mosquitos kill many humans. Afaik they've killed more humans than any other species did, even humans.

Even if it would tip off some delicate balance in nature, if we could, we would've eradicated them long time ago. We just can't, they're too many.


we need more people spreading the good word of #spendandreplace


Interesting. Does it require a 64 bit variable in the future?


Whether it’s atoms or nature, the first thing to be said is this: I am a part of a world controlled by nature. Secondly: that I have a relationship with other, similar parts. And with that in mind I have no right, as a part, to complain about what is assigned me by the whole. Because what benefits the whole can’t harm the parts, and the whole does nothing that doesn’t benefit it. That’s a trait shared by all natures, but the nature of the world is defined by a second characteristic as well: no outside force can compel it to cause itself harm.

So by keeping in mind the whole I form a part of, I’ll accept whatever happens. And because of my relationship to other parts, I will do nothing selfish, but aim instead to join them, to direct my every action toward what benefits us all and to avoid what doesn’t. If I do all that, then my life should go smoothly. As you might expect a citizen’s life to go—one whose actions serve his fellow citizens, and who embraces the community’s decree.

- Gigachad Marcus Aurelius, philosopher king and the emperor of Rome


Turns out nostr:nprofile1qqsqqxyjax6gkscd0cmuyuz3laalg9xtc5487j8528v9wsyuu7pemhspr9mhxue69uhhyetvv9ujuumwdae8gtnnda3kjctv9u8u3mmh is also a nostr:nprofile1qqsv2kx8e35mhk3uyutc9dekh27xftxjmgjck98n2mdu49nvkzmm38spz3mhxue69uhhyetvv9ujuerpd46hxtnfduqs6amnwvaz7tmwdaejumr0dsq3samnwvaz7tmhv4kxxmmdv5hxummnw3ezuamfdejs6cvma8

https://image.nostr.build/59a702b2441bb8b3d833e64077e23ae1c7e97a08724a928dc20c9faba0811326.jpg
https://github.com/nopara73/ClipboardButler


Thank you, I needed this.


It's the exact same risk. Which ecash mint rugged pulled, I didn't hear of a single one so far, can you provide examples?


A stable Lightning channel


Yes. If you're going to use a custodian, ecash is a win.


Here you go sir

https://gist.github.com/callebtc/ed5228d1d8cbaade0104db5d1cf63939


You already have a Lightning address, you just don't know it yet: npub.cash


💸 Received an eTip of $USD ecash to my boardwalkcash.com profile
💸 Copied $USD ecash token to my nostr:nprofile1qqstxwlea9ah3u6kjjszu6a7lrnhqkfh8eptp2z6v0e9558tlkkl2rgpzemhxue69uhk2er9dchxummnw3ezumrpdejz7qgwwaehxw309ahx7uewd3hkctcpremhxue69uhkummnw3ez6ur4vgh8wetvd3hhyer9wghxuet59u4kl3vp wallet that supports the same $USD ecash mint as my boardwalk mint
⚡ Tapped contacts in Minibits, selected pay my own minibits LN address. Then sent $USD ecash over lightning from the $USD ecash mint to my Sats ecash mint in the same app!!!

cashu is awesome!!! nostr:nprofile1qqsvxhlccdqyf8cddzh34mzggja5f2wqhrqa6n6dfmauvhsjqwdrfzspzemhxue69uhhyetvv9ujuurjd9kkzmpwdejhgqg5waehxw309aex2mrp0yhxgctdw4eju6t0qyw8wumn8ghj7mn0wd68ytndw46xjmnewaskcmr9wshxxmmdtsxx9q nostr:nprofile1qqs9pk20ctv9srrg9vr354p03v0rrgsqkpggh2u45va77zz4mu5p6ccpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsz9thwden5te0dehhxarj9ehhsarj9ejx2a30qythwumn8ghj7un9d3shjtnswf5k6ctv9ehx2ap09krt7g

#csshu #nostr #bitcoin


Coming https://image.nostr.build/862f0e0be8020dbe62f92e41189cd5c92c653077064469cce2d2e034da180f57.jpg


That was fast! nostr:nprofile1qqstxwlea9ah3u6kjjszu6a7lrnhqkfh8eptp2z6v0e9558tlkkl2rgpzemhxue69uhk2er9dchxummnw3ezumrpdejz7qgwwaehxw309ahx7uewd3hkctcpremhxue69uhkummnw3ez6ur4vgh8wetvd3hhyer9wghxuet59u4kl3vp is the first mobile wallet that supports the new smaller Cashu token format.

nostr:nevent1qqsxqv6kzfdwmh7dv2knnrytyz3hnu39w9ygqruumklmnxek5077h6qpz4mhxue69uhkummnw3ezummcw3ezuer9wchsygql7xtpcplpf9xsa4rzvsmxq9przjus0qn2wqf3vvrkqmjtnllzrspsgqqqqqqs9dzds2


Wow so fast 👀


Boardwalk now supports eTips (locked ecash)!!

Drop your Boardwalk username in the comments so I can add you.

I’m at  https://boardwalkcash.com/gudnuf

nostr:note1w6ll4rvq3jl8qhnddn0gc6lf4mmaz5vntjllnumcu35k767wwalqneyawv


Introducing Profiles, Contacts & eTips on BoardwalkCash.com 🤙

Grab your favorite username and profile page today!

Create eTips - eCash that only your Boardwalk contact can claim. Post eTips on any messaging or media platform and only that user can claim the cash 🗝

---

Start by creating your username in Settings.

Share your Boardwalk profile page link with friends or display the link on your social media profile.

I'm http://boardwalkcash.com/bob

Add a new contact from a friend’s profile page.

You can also add contacts by username in Settings under Profile.

---

Create an eTip by going to Send and clicking the Contact icon.

The eCash you create can only be claimed by that user.

Now you can post the eTip on any media or messaging platform.

Show your support publicly without a middleman taking a cut!

---

eCash is programmable money.

eTips are the first product in a suite of programmable money products we plan to offer at Boardwalk. There are many more coming soon!

https://m.primal.net/JkQZ.png


Hello Everyone this is my 1st post on Nostr. This is a cool short video poem I made. https://www.youtube.com/watch?v=YiusCYuuVNI

#introductions


Keychat encourages users to use as many trusted Cashu mints as possible.

Users can add an unlimited number of Cashu mints on Keychat.

Keychat encourages relays to accept as many trusted Cashu mints as possible. https://image.nostr.build/0374908ee73c47ceddbd71fca2205ba9d917fd04016f008546c8fc1d5831d0e3.jpg  nostr:note1qxcac8kfk0jjr8anv5scmr7m38ukszuw8gjuu3ye7redrfwws8cqs464fz


Yes, there is an idea on the horizon and it will require some work but it's possible:

https://gist.github.com/callebtc/ed5228d1d8cbaade0104db5d1cf63939


Auditing with custodial systems typically meant that you get an "expert" and show them your database and they say "ok". You can do the same with ecash and much more than that.


It's custodial, I wouldn't use it for large amounts in the first place.


Proof of liabilities is what makes it *better* (i.e. publicly) to audit than a normal custodian.


BREAKING –  nostr:npub12vkcxr0luzwp8e673v29eqjhrr7p9vqq8asav85swaepclllj09sylpugg now renders Cashu ecash in DMs!

https://m.primal.net/JiHS.png


First up, I want to recognize that this is an uncomfortable topic!  Bitcoin is inevitably changing towards user-pays, and that's not all positive.  But facts we don't like are still facts: can't engineer a solution if we can't think about the problems.

There are three kinds of bitcoiners.
A. Those who can afford any fee.
B. Those who can afford a UTXO, but not often.
C. Those who can't afford a UTXO.

Nobody worries about the A group (and in the early days, that was everyone).  Obviously Lightning (my area!) caters to the B group, and we want it to be as large as possible.  To do this we can (1) make lightning as resiliant as we can so onchain spends are rare, (2) make bitcoin as efficient as possible so we can cram as much as we can into what we have.

(1) Making lightning more resilient and reliable is engineering.  Lots of people working on this, even before we get soft-forks which could help further.

(2) More efficiency has two benefits: obviously if your own onchain spends are 20% smaller, that's 20% cheaper.  But if *everyone's* onchain spends are 20% smaller, that means fees are lower *for everyone* too (and it's non-linear).  So we really care about all Bitcoin usage!  Some things are obvious wins: Taproot so you can avoid even putting the script onchain in many cases, FROST so you can cram your 2 of 3 or other scheme into a single key and signature.  We know we want to get more aggressive with sharing one signature across multiple inputs (Cross Input Signature Aggregation), but that needs a lot more research, and a soft-fork.

But even with all these, the math is clear: some people, even if you somehow gave them their wealth in a UTXO, it couldn't afford its own fees to spend.  The C group is real.  Spoiler alert: we don't have an answer for this!  But let's look at some approaches people have tried.

Firstly, there are attempts to move these people into the B group: give them long enough that maybe fees will reach a point they can afford.  This seems unlikely to me:
1. As fees increase everyone will start doing the work to take advantage of low fee times, and that itself means that low-fee times won't be so low.
2. These schemes tend to increase onchain footprints, so they need fees to drop a lot to overcome that (typical is 2x the transaction size, so you need fees to halve to gain anything).
3. If you really can't afford the fee, you probably also can't afford to wait.
4. You still haven't actually dealt with those who really, really can't afford the fees.  Ever.

Another suggestion is that someone (e.g. a lightning service provider) will lock up funds which would cover fees, in case something goes wrong.  This doesn't work economically, because nobody is paying $100 for a $5 user (not at scale), but it doesn't even work mathematically: the reason some people will have small UTXOs is because there are not enough sats for 10 billion people with any realistic distribution.

There are two basic approaches left:
1. Group people, so they fall into the B category (i.e. onchain tx is possible, but expensive).
2. Trust someone, but rely on incentives.

1. Grouping people is possible, but they need to work together if somenthing goes wrong.  So grouping inside a community is probably better than grouping with randos.

For example, there are various tree-of-transaction schemes where you go onchain only if the coordinator fails/goes rogue, and how much it costs you depends on whether anyone near you in the tree pays to get themselves out.  These are basically free if nothing goes wrong (one UTXO required for thousands of users!).  But this is subject to ghettoization, where the coordinator makes sure all the C people are grouped together, knowing none of them can afford the transactions they need to get their funds back.  It's particularly bad because the coordinator can insert its own fake "whales" to make it look like it's not ghettoized.

You can play with incentives here, too: more research needed.  The details matter!

2. Relying on incentives.

As a simple example, lightning-connected e-cash mints.  They can't rug individuals very easily, they have to rug everyone together (or go fractional and rug the last ones to exit).   Maybe with enough anonymity and reputation, these would be Good Enough.

More ambitious would be a single UTXO held for multiple people by a coordinator.   Can we make it so that if a coordinator is dishonest, you can force them to burn your funds?  Maybe burn more than your funds (ie. a bond)?  Won't get your money, but it aligns incentives so they're not motivated to rug you.  The details here really matter!

There's a cute scheme which has been proposed where the coordinator pays a temporary bond, and asserts that they actually have everyone's signature to transfer the funds.  If nobody challenges within a week, they get the bond back and the funds move.  If someone challenges, all the signatures are put onchain, and if they're not all valid, the bond gets half-burned and half-given to the (successful) challenger.  This is hard to make work, though.  Someone needs to get the money to challenge (hard if you don't have the money in the first place, plus it's hard to prove to someone you *didn't* sign something!), and then make sure nobody gets the challenge bond before them (in particular, a dishonest coordinator, seeing the game is up, completes the successful challenge *themselves* and gets half their bond back), and make sure someone can't grief and delay the settlement indefinitely or bankrupt the coordinator.

More research needed, here, too.

Summary

A longer post than I had expected to write.  And it's buried in the middle of a thread nobody will read.  (I do this sometimes.  I suck at marketing I guess!)

Sub-fee bitcoin amounts will have tradeoffs, involving trusting someone who has more money than you (at least, in someone's competence, even if their *financial* incentives can be made to match yours).  This is difficult to build well, and not a very exciting thing to build today, so it hasn't really happened (custodial things are much, much easier!).

This is also a key reason I believe we need to make Bitcoin more expressive: if we can do *more* with our own UTXOs, we can build better solutions.  And by "we" I mean "someone smarter than me" of course!

Feedback welcome!


That's Lightning


What makes it hard to use?


Yes


Why ecash is so much better than your normal custodian:

- it can be audited as easily as any custodian
- users have way better privacy
- users can make payments peer to peer
- it supports smart contracts
- it works half-offline (sender or receiver)
- it's more efficient to run
- individual users can't be singled out: either censor and rug everyone or no one

Why it's worse:
- if the user vanishes, there is no way to recover their funds
- users need seed phrases and recovery of lost funds is more cumbersome than a simple username + password login

(Both cons are basically a consequence of privacy)


Hi wwang. Are you a dev?


Hi there! I'm exploring Nostr as a platform to share my thoughts while maintaining peace of mind. While Twitter has its merits, issues like spam accounts and excessive adult content can be problematic. I'm hopeful that the Nostr protocol will provide a better experience.

I currently work for Coinbase, but my posts here reflect my personal views and not those of my employer.

#introductions


What’s your favorite mint and why?

#cashu #ecash #asknostr


Yes, like nostr:nprofile1qqsth7fr42fyvpjl3rzqclvm7cwves8l8l8lqedgevhlfnamvgyg78spz3mhxue69uhhyetvv9ujuerpd46hxtnfduq3qamnwvaz7tmwdaehgu3wwa5kuegpz4mhxue69uhk2er9dchxummnw3ezumrpdejqj9swg4 does already today!


New nostr:npub1nstrcu63lzpjkz94djajuz2evrgu2psd66cwgc0gz0c0qazezx0q9urg5l  workshop proposal:

"Playing with nutsack"

https://github.com/nostrworld/nostriga/issues/58


This is probably the talk I'm most looking forward to giving this year.

My submission for Nostriga 🫡🥜

https://github.com/nostrworld/nostriga/issues/57


Fucking legend


Multinut payments soon coming to CLN – thanks to  nostr:npub1u07xw079lxwv24xslarh2eu4v37jtjmwvev0jyk3zjhxg2wnt56seyez97!

https://github.com/cashubtc/nutshell/pull/602


Yup 👍


Every nostr client developer might like this too

nostr:note1kxpx6h9ugrsm773k3n484p6ac5f8qttguvm6fklukwc4y30826rq77202w


Hey  nostr:npub1c4vv0nrfh0drcfchs2mndw4uvjkd9k393v20x4kme2txev9hhz0qw4cqk7 you might like this:

https://docs.clearurls.xyz/1.26.1/

https://docs.clearurls.xyz/1.26.1/specs/rules/

https://rules2.clearurls.xyz/data.minify.json


Crazy. I feel so much better now that I have been reducing my time on X and also here.

Of course I won’t leave especially as I see Nostr as one of the coolest inventions of our time (after Bitcoin 🤪)

Just wanted to say HI! I’m still here and working on the projects I‘ll be doing with Bitcoin for Fairness in the coming months.

We’re attending the AfroBitcoin conference in Kenya and Adopting Bitcoin in Cape Town. And we have a lot of other cool stuff in the making.

Spending a lot of time in nature and found a rabbit in the hole 👇🏼 https://image.nostr.build/edcd2d4af197ea9c38f547b6835d23f78ddacc7f43133ce184e47084eb1c68c5.jpg


Awesome thank you, that will be very helpful!


Looks great!


I think I kind of get the idea but I never implemented such a server and push service. I'm guessing it would also require the app to register with the server so that the server knows which NWC pubkey commands to listen to. Would you be up to working on this together? I think other wallets could benefit from this too.


Not so fast
 https://image.nostr.build/51151fd36b011c96b9081fb00eb64397e58c413b681313eb4bb81f2065eb2af1.jpg


I need help with this! I want to make cashu.me wallet sit in the background and listen for push notifications that are triggered by NWC commands so that the PWA can wake up, send a zap, and go to sleep again.

Who has experience in this? Please hit me up

nostr:nevent1qqs86ydcrey0ykkruevc00wzp2ce2m63yn5yhuftks4ssqt0amlvaqgpremhxue69uhkummnw3ez6ur4vgh8wetvd3hhyer9wghxuet59upzqv6kmesm89j8jvww3vs5pv46hqm7pqgvpm63twlf9hszfqzqhz7aqvzqqqqqqyxqvy4n


Could you link it?


🤝
nostr:nevent1qqs0jn8cwuv8lut0jetrhvydq3ea9wqenmjs8uhap40g7a2gdqt0z4qpzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtczypgdjn7zmpvqc6ptqud9gtutrcc6yq9s2z96h9dr80hss4wl9qwkxqcyqqqqqqgfwawar


Enjoy the absence of the reply guys. It won't last forever.

https://image.nostr.build/86f2c15b1b1cfaa38dacb83eb40f12bdc28f2b0999c31662e57f3b76a4c790e6.jpg


Reply guy disorder syndrome


based
https://youtu.be/5EE80b73QVw


Courts Close the Loophole Letting the Feds #Search Your #Phone at the #Border
https://reason.com/2024/07/26/courts-close-the-loophole-letting-the-feds-search-your-phone-at-the-border/


GM fellow money launderers, let’s start the week with some great news.

The House has passed the „Financial Technology Protection Act of 2023“, which will establish an „independent working group“ consisting of representatives from the CIA, the Department of Homeland Security, and the FBI as well as representatives from „Blockchain Intelligence“ to report on and propose regulation and legislation to combat the use of „digital assets and other relating technologies“ in money laundering and terrorist financing.

The Bill aims to „provide a forum for engagement between federal law enforcement and intelligence professionals, and private sector technologists and researchers“ – It’s primary concerns lie "with digital asset platforms that have 'substantially deficient' anti-money laundering programs that operate outside of the U.S.".

In case it isn't clear, the Financial Technology Protection Act is the fox guarding the hen house. If the Bill becomes law, we should all get ready for some extraordinarily „independent“ findings on the use of Bitcoin in money laundering and terrorism.

Full Story:

https://www.therage.co/house-passes-bill-to-establish-independent-crypto-working-group-feat-cia-dhs-blockchain-intelligence/


Nostr is pretty cool

Of course it's impossible to get people of Twitter (spyware) so it's probably pointless


am. send 20 sat invoice I wanna try a multinut to you


BREAKING –  nostr:npub12vkcxr0luzwp8e673v29eqjhrr7p9vqq8asav85swaepclllj09sylpugg now renders Cashu ecash in DMs!

https://m.primal.net/JiHS.png


✨ Merged: LND gRPC support in Nutshell – thank you for your awesome work  nostr:npub1u07xw079lxwv24xslarh2eu4v37jtjmwvev0jyk3zjhxg2wnt56seyez97!

https://github.com/cashubtc/nutshell/pull/595


I was going to keep this private but fuck it! We develop in the open!
Here is the entire 12+ month projection on nutmix development.

Short-term (1-3 months)
- Admin Dashboard.
I'm already working on this, this will allow mint admins to be able to change setting on the mints in a much better way as well as control what is happening on it.
I will explore the possibility of making an Admin API so you can configure things programatically. This would be useful for software like start9 or umbrel.
Link to milestone: https://github.com/lescuer97/nutmix/milestone/2

- Multi-path payments. This will allow wallets to pay from multiple mints at the same time.
   link: https://github.com/cashubtc/nuts/blob/main/15.md
 - CLN support for the mint.

  Mid-term (3-6months)
  - Liquidity management. if the mint has a lot of money  on lightning being able to move it to something like on chain or liquid would allow you to mitigate some risks.
  - EUR support with strike backend.
  - WebSocket communication NUT.
	Link: https://github.com/cashubtc/nuts/blob/main/17.md

  - Mint Authentification: This is still a working spec in which I would be contributing to it to make it a reality.
  - DLC Ecash. This is still a a Draft PR but very interesting stuff that I would love to apply.
	Link: https://github.com/cashubtc/nuts/pull/128
  - Monero support (I'm still on the fence with this one).

Long-term (6 - 12 months)
  - all encompassing docker container.
This would be a command or binary that you can execute and you can then easily pick and choose what you need for your mint.

You don't have anything setup?
I will setup bitcoin core, lightning and the mint for you. with other optional stuff like mempool.space  and LNBITS.

you already have a lightning node?
Great! I will only setup the mint and you can link to it on the setup process.

NOTE:
When setting up a lightning node from scratch there could be a possibility of using an LSP and could be a possible source of income to the project.

- Secure remote signer for ecash. Cashu Mints are commonly hosted in remote servers if we can have the keys to the mint in a secure enclave (AWS or home signing device) it would be a great improvement in security specially if we can combine it with VLS in lightning.

There is one milestone that will happen during the entire process and it's constant testing improvements as well as bug fixes reported by users or myself.

If you would like to donate to keep the project going Zap this note or See the link below:
https://github.com/lescuer97/nutmix?tab=readme-ov-file#support

#nostr #ecash #cashu


How did Facebook intercept their competitor's encrypted mobile app traffic?

https://doubleagent.net/onavo-facebook-ssl-mitm-technical-analysis/


nostr:nprofile1qqsyvrp9u6p0mfur9dfdru3d853tx9mdjuhkphxuxgfwmryja7zsvhqpzamhxue69uhhv6t5daezumn0wd68yvfwvdhk6tcpz9mhxue69uhkummnw3ezuamfdejj7qgwwaehxw309ahx7uewd3hkctcscpyug et al., thank you for building Amethyst. I love it so much.


That was quick 🔥
nostr:nevent1qqsflumzhw39pl0kzu8vvy98zac6jahwek5jky2sssytst9evf0h9eqppemhxue69uhkummn9ekx7mp0qgs2zqnq524z7zfdsh3vpwpwjh4vt7xxp6sec68y3xr3ndvve23ru0srqsqqqqqp0606gz


Pretty dope model. Sounds like very good risk management.

nostr:nevent1qqsqrvwurmym8efpn7ek2gvd3ldcn7tgpw8r5fwwgjvlpuk35h8gruqpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsyg9mly364yjxqe0c33qv0kdlv8xvcrlnlnlsvk5vktl5e7akyzy0rcpsgqqqqqqsmvwn7h


Pretty dope model. Sounds like very good risk management.


a couple months into not having a phone number, and paying for data from silent.link using lightning, and it was a great decision.


nope


are you focussing on what you can control, anon ?


🥜🥜🥜➡⚡➡🫂 nostr:note1grtr785at9qc920ehzpxk0aq0a8n7v6seg3qfydmj4fmr8y2ujzsju087p


Torrents of money?


Somebody is having fun playing with their bitcoin.


what have we done
https://m.primal.net/JhYo.png


Lightning is so gangster.

https://m.primal.net/JhYP.mp4

nostr:note12u0x20mje0hr4mt69d5dmlvgtf6vz52y0mj9vphmqu2mtq2dcstqpm5l7l


yes

https://m.primal.net/JhYP.mp4


Lots to build!


Running your own mint it is very easy ... put just  a little bit of containers and compose ..
.. everything will become decentralized and self custodial 😂 .. cashu could help lighting network a lot to spread .. https://image.nostr.build/736bb05fc7fe215ed59715bae83280dc707a511d53a914f34118da718eafde4b.jpg


Woa! I just made the first atomic multinut payment on mainnet and it worked!

I paid a 10 sat Lightning invoice with ecash from two different Cashu mints at the same time, each making a (partial) multi-path payment of 5 sat to the destination.

Oh my god.
https://m.primal.net/JhWr.png


Nutshell runners with an LND backend: if you've upgraded to Nutshell 0.16.,0 you can enable multinut payments in your .env file with:

```
MINT_LND_ENABLE_MPP=TRUE
```

Share your mint (DM me if you like) so we can try out multinut payments!


Suuuper nice


lol Twitter makes you pay for encrypted DMs 🤡


Based


Does it use nwc? Couldn't find a wallet setting.


Hey nostr:nprofile1qy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7qgwwaehxw309ahx7uewd3hkctcpr9mhxue69uhhwetvvdhk6efwdehhxarj9emkjmn99uqzp32cclxxnw768sn30q4hx6atce9v6tdztzc57dtdhj5kdjct0wy7lcder9 , you know I love you. What if you added a comment on what you actually removed so you can educate the OP about tracking tokens and how to avoid them the next time?


have fun playing with it and don't forget, my uncle is very intelligent at MIT


yes he'd be the ultimate shitcoiner


I watched a Trump speech because of Bitcoin. I'll never recover from this, neurologically.


I vote for the random word generator.


Thank you for running this 🙌


One more day, one more milestone crushed! 1.5M free uploads, supporting shitposters across all countries and continents! 🐶🐾🫡🫂🎉🎉🎉
(nostr.build) https://i.nostr.build/duDrYpoKFI3qaHmF.jpg


GM! Have you played with your Bitcoin today? You can play with cashu nuts, or deez nuts too! 🐶🐾😂😂😂🫂☕☕☕


Lol


Who's the special guest? :)


Whats the context xD


Especially the leaders.


Ecash panel on the open source stage
https://m.primal.net/JgVv.jpg


Not all.


A room full of highly intelligent people.


The main goal of NWS is to make services resilient and accessible for everyone.

Nostr is a fantastic tool to help us achieve this. There are situations where we need to rely entirely on Nostr for TCP transport, such as when the entry node isn't publicly available as a service. However, for our primary use case—having a publicly accessible entry node—we don't need to use Nostr for transport.

That's why I've just added a new connect reverse mode that uses Nostr for "service discovery". Once the service is discovered on the relay, a direct TCP connection is established between the entry and exit nodes.

By using direct connections, we can ensure more reliable service availability and faster connectivity.
https://github.com/asmogo/nws


We all need to be very aware that what  nostr:npub1sn0wdenkukak0d9dfczzeacvhkrgz92ak56egt7vdgzn8pv2wfqqhrjdv9 is describing here is not some distant dystopian future. It's our dystopian reality.

In May, Elliptic, together with researchers from MIT and IBM, developed a dataset to identify "the shape of money laundering" on the blockchain.

This dataset attempts to predict money laundering activity that has "not yet been labeled" by distinguishing between what the dataset defines as "anomalous signatures" and Bitcoin transfers between "licit services".

Falling out of these clusters deemed normal by intelligence financed corporations already leaves you penalized. Avoid KYC services? Flagged. Can't tie your transactions to a bank account? Flagged. Frequent user of coinjoins? Flagged.

You are already being debanked because a computer program has decided that you are a money launderer – not because you did something illegal, but because your transactions are deemed abnormal – and you have no legal recourse as suspicious activity reports swear financial institutions to absolute secrecy.

It's the full on criminalization of privacy in finance. The future is here, and it's Orwellian.

https://m.primal.net/JgAW.mp4


I don't need your stablecoin, thanks.

I have Bitcoin, ecash, and this guy's stable Lightning channel to maintain the peg on his mint.

I can use this infrastructure with 20 people or 20 thousand people. It works. It's free. It's private. And it's good.

https://m.primal.net/JfzL.png


or:

- "hey wallet, zap this note"
- "ok" *nutzaps*

ez pz?


Give nostr:npub1u07xw079lxwv24xslarh2eu4v37jtjmwvev0jyk3zjhxg2wnt56seyez97 a follow! Dude's been crushing it with his contributions to Cashu Nutshell. Came out of nowhere and immediately tackled the biggest tasks.

🫡🥜


Bloom filters can be super useful for Cashu. A filter with the spent proofs can be used to check whether your coins are spent or not without privacy leaks to the mint. This can be really good for the ecash restore process as well:

- regenerate blinded messages
- retrieve blind signatures from mint
- retrieve bloom filter
- locally check for spent state, keep unspent ones
- double-check spent ones with mint (due to FPR)


Nutzaps would probably vibe incredibly well will NWC:

- have a Cashu wallet with NWC
- Nostr client says "hey wallet, give me nuts"
- wallet: ok here you go ser
- Nost client: *nutzap*

ez pz 🤷


nostr:npub1xdtducdnjerex88gkg2qk2atsdlqsyxqaag4h05jmcpyspqt30wscmntxy what black magic did you use to make nsec.app so incredibly persistent in the background when installed as a PWA? Can you help me make cashu.me as persistent as nsec.app so I can make NWC zaps while the wallet is closed / in the background?


On privacy: choosing to not store information isn't a good way to guarantee privacy. Good privacy is verifiable and in our case, it comes from cryptography.


Yeah it can be done, I call this db-less ecash which would use an accumulator instead of a db. There is no perfect solution for this though.

For a bloom filter with a non-zero FPR, it would mean that the mint rugs the users with a predefined probability. This can be avoided to some extent if users know the current state of the filter and grind for secrets that will not cause a collision when minting ecash.


Merch I received from a crazy Bitcoiner 🥜🧡
 https://image.nostr.build/706d4416152880e34ba06c93f910a3d6848963ad861555bc6bab175a338d8306.jpg


A thousand caveats apply.


The easiest thing anyone can do to improve their own Bitcoin privacy is to use a non-custodial Lightning wallet like nostr:npub1xnf02f60r9v0e5kty33a404dm79zr7z2eepyrk5gsq3m7pwvsz2sazlpr5 or nostr:npub1mutnyacc9uc4t5mmxvpprwsauj5p2qxq95v4a9j0jxl8wnkfvuyque23vg.


Bitcoin doesn't have great privacy. You can do a hundred things to improve your own privacy but there will be a thousand things along the way that you can do wrong.


To feel affection for people even when they make mistakes is uniquely human. You can do it, if you simply recognize: that they're human too, that they act out of ignorance, against their will, and that you'll both be dead before long. And, above all, that they haven't really hurt you. They haven't diminished your ability to choose.

– Marcus Aurelius

Gm


Monero


Tailscale blog is very good


Gm, working on cashu-ts to add
- support for fees
- our awesome coin selection algorithm
- and smart output selection, both of which allow wallets to remain offline when sending ecash.


Monero people: nooooo it's custodial!!!
Calle: impressive reading skills!


Ecash enables best-in-class privacy for custodial Bitcoin.


If this is what I think it is, my weekend is off to a great start  👀🌰⚡📢  #replytozaps #cashu
nostr:nevent1qvzqqqqqqypzp75cf0tahv5z7plpdeaws7ex52nmnwgtwfr2g3m37r844evqrr6jqy88wumn8ghj7mn0wvhxcmmv9uq32amnwvaz7tmjv4kxz7fwv3sk6atn9e5k7tcqyzzqu5m33yzp4jgzs3zl0guevkdsurs0lnwzlwne0d6cdchal6zeuua9krx


My Nostr workshop yesterday almost had a fatal error! 😨 😨 😨

My wallet stopped heeding my NWC commands. Some quick action barely let me recover.

Purchase the workshop video for only $5: https://supertestnet.org/workshops.html?option=nostr

And sign up for next month's Cashu workshop! https://supertestnet.org/workshops.html


Free and open source. We will always win.


CLN multi mint payments are now working. Soon to be merged on main, hopefully.


Welcome 🫂


We just dropped a new self-custodial Bitcoin wallet. Early access details here: https://proton.me/blog/proton-wallet-launch


The current version of Keychat uses a seed phrase instead of nsec. This has caused a lot of controversy, with many people believing that Keychat does not understand the spirit of Nostr: having a single Nostr ID that is universally used across all Nostr apps.

In fact, the first version of Keychat used nsec. Later, we intentionally switched to seed phrases. Why?

Just like when we use Bitcoin wallets, we now more often use seed phrases rather than private keys. Using a seed phrase is an improvement in user experience. Moreover, NIP-6 defines the basic key derivation from mnemonic seed phrases. A single seed phrase can derive countless Nostr IDs.

Using a single Nostr ID across various Nostr apps focused on public notes is reasonable because users are sending public messages, and they can better accumulate reputation.

However, for Nostr apps focused on private notes, users should use multiple IDs to achieve better privacy. For example, you could use ID1 for close friends and ID2 for work colleagues. Current chat applications provided by internet giants do not encourage users to use multiple IDs simultaneously because multiple IDs affect data mining, reducing the accuracy of user profiling and, consequently, advertising revenue. In this context, using only one ID is a bug, not a feature.

If you use your Damus ID to chat with others on a Nostr app that focuses on private messaging, do you want all those people to see the public notes you have posted?

A seed phrase that is universally applicable to all Nostr apps allows users to choose which ID to use in a particular app, with the ID generated from the seed phrase. This is far better than using a single Nostr ID across all Nostr apps.

Don't forget, there are not only Nostr apps focused on public notes but also those focused on private notes.

A reasonable chat app allows users to use multiple IDs simultaneously, whereas a microblogging app’s DM often has only one ID. This is just one of the differences between the two. When we say, "Designing a DM for a microblogging app is not the same as designing a chat app," we are not playing with words; we are not that bored.


My final slide from my keynote today on the main stage in Nashville

Onwards! ✌
https://m.primal.net/JfXG.jpg


What's up with the drama?

This should be a technical discussion, not an "omg I'm losing faith they didn't use my key" one.


I like that Cashu mints don't know about each other. Only users know about different Cashu mints. When you imagine a network of mints, the vertices of that network are the common users.


Just got off a 12hr shift in the fiat mines, then I had a lil #smokstr , and I'm watching WWE Smackdows from this whole month
Lol #weedstr plus its been years sine I #tokestr
Also I'm making a #pizzastr

Just keep on, keepin' on

I'm actually seeing what nostr:nprofile1qqs9pk20ctv9srrg9vr354p03v0rrgsqkpggh2u45va77zz4mu5p6ccpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsz9thwden5te0dehhxarj9ehhsarj9ejx2a30qythwumn8ghj7un9d3shjtnswf5k6ctv9ehx2ap09krt7g is doing with #nostr
Also bullish on eNuts

Life rocks,

Oh n PS GM


Interesting. nostr:nprofile1qqsth7fr42fyvpjl3rzqclvm7cwves8l8l8lqedgevhlfnamvgyg78spz3mhxue69uhhyetvv9ujuerpd46hxtnfduq3qamnwvaz7tmwdaehgu3wwa5kuegpz4mhxue69uhk2er9dchxummnw3ezumrpdejqj9swg4 supports free relays and paid relays. You pay 1 sat per note sent to their relay. Very interesting.....

https://image.nostr.build/a2e8b311139f1a48ea736e6c47a55b0cb90b8f6ef7b0030b8a39581fd3f6e8bd.jpg


I didn't enter an nsec to use it


They are related


Its all about wattage, so Apple can get pretty good as well. But not in size per watt. Just a matter of time until they switch to GaN.


Those GAN chargers are *the* shit. I am using one right now. Its as small as a phone charger but charges my laptop faster then the one that was included.


Don't get one. Get a GAN charger with at least 60 W and use that for everything you're charging.


programming is the pinnacle of all hobbies


I didn't log in with my nostr keys (it didn't ask me), it just generated new ones. Not sure if it supports that.


Just tried  nostr:npub1h0uj825jgcr9lzxyp37ehasuenq070707pj63je07n8mkcsg3u0qnsrwx8, a secure chat client built on nostr that uses the Signal double ratchet encryption algorithm. It's incredibly smooth.

Someone sent me ecash in the chat and I received it in what felt like 20ms, just like that. Each message you send pays 1 sat to the nostr relay operator to protect it against spam.

THIS IS HOW IT SHOULD HAVE BEEN !!!

Add me:

H4sIAAAAAAAAAxWROXZAMQgD75L6FyxmOw7GUOX+dUjLAyGNfip/f/vn+yimXXwSqKS0VGnYWXJuF6sOggTE40vyKu6QOKsRVt7ktg+Ejfpa4KFEPi54kL1lLk5wTQlFwHhf32t0E0dPwpvwsEP9G6QUANKmJL/Y3RFqmTU8uQLQD+qMGBakrhDcqWyuJ72Xn4OTqDOum3ORGCF4Ov2JHVRc0ZSWwOTS1LFTmwflXcuNmy3eujeo8r4qpgk9/9tNgf6mpvEpPtdjcMmXEtg9oP36Aq8gELydvjB+V0LpEJiupX0+57odYOSdR4kxZSXRQr/8sG6qzWmfQzXQHwqi77r+x9H1dhfJMoUQc12UEqPbURioFrScfsv74UDW43HLtWHOtJY/NPq3cuAs4K8F3sJOP2gt+U6BIdlJ1awbXaa05M8pFCq8Z1vwJeaVihJHOZ+HxHVnlsNvn7N2yLOXDy/ENWsLe5PbSjbMMICf3FRZ8AeaT46IeAIAAA==

https://m.primal.net/JexH.jpg


The new version of Keychat, v1.15.6, is now available for download.

This update resolves the bug where the cashu balance does not display immediately after minting.

Please upgrade to the new version.

https://github.com/keychat-io/keychat-app/releases

Because we have reservations about NIP-17, this version has not yet adopted NIP-17 in place of NIP-4. nostr:note17hdpm290vkwnpxthlkxx74r3dmhvfm3cq2smgy6ufkg469tku98s397m9x


delete "&si=" and anything that comes after when sharing a link.

Often, it's named differently. Just looking at the url often shows you what part of it is "real" and what part of it is evil (often a bunch of random stuff at the end).


That would be a better world 🌍


I'm not clicking on that fucking link, I'm a nostr:nprofile1qqsv2kx8e35mhk3uyutc9dekh27xftxjmgjck98n2mdu49nvkzmm38spz3mhxue69uhhyetvv9ujuerpd46hxtnfduqs6amnwvaz7tmwdaejumr0dsq3samnwvaz7tmhv4kxxmmdv5hxummnw3ezuamfdejs6cvma8

Friends don't send friends tracking tokens. Friends remove them from links before sharing it.


Chaumian Ecash


Please delete my notes, thank you 🫂


A court order could force relay operators to hand out your IP, and they could also employ other techniques to deanonymize you, and then doxx you.


Always has been 🫂
https://en.m.wikipedia.org/wiki/Hawala


A fitting auto correct mistake: conclusion


There are always real papers behind these articles. If you want to form an opinion about it, there is now way around reading through dozens of papers from different labs and making your own conclusion, scientists say.


There are always real papers behind these articles. If you want to form an opinion about it, there is now way around reading through dozens of papers from different labs and making your own confusion, scientists say.


This is the first v4 token ever created by cashu-ts...

cashuBpGFkYGFteBxodHRwczovL3N0YWJsZW51dC51bWludC5jYXNoYXVjc2F0YXSBomFpSABBRr30qa+rYXCCo2FhBGFzeEBjYWYwZGY4MjZmYTdhMDQxNzdjM2E5MzI3MjY3NDhhZmMyMTZhMDQ1OTA1OGVmNzUyMGQyMGM5NTZlNmE0NmUwYWNYIQJEqBgm4Ytnt8Ww3WScscWgXgu7FYmzp+Ga4t64D07NFKNhYRBhc3hANmM2MWZlNTBhOWVkMWZlNWVjMjQzZWNkYmE2YjNkNzRiMmU3ZGUzYzk5NzNkMGVjNWI0OGI2Mzk1MzQ4NDU
5OWFjWCEConcD41SS1hac0ukY9tnXQY6c5ke4vbxnOLJF/KIWk2g=

please let me know if this works 😉


It's Matt.
nostr:nevent1qqs0fyue0yym3m35g8ehuwfpc4xuw2k63hvsrqwefd0myuk9nzksxxgpzpmhxue69uhkummnw3ezumt0d5hsyg8uqq0jyugxz8lu6636lhzwe8y00x6mmm4lzmd4txanqw3cwge6mcpsgqqqqqqsxtr7c6


Reminder: today is the last day you can sign up for my Nostr Workshop tonight at 7pm! My website has already begun selling tickets to *next month's* workshop (which is about Cashu!). If you still want to sign up for today's workshop, pay here: https://supertestnet.org/support.html and then contact me here on nostr to receive your ticket


Good morning, and welcome to HRF on nostr. We are thrilled to be here!

Each week, we'll circulate our weekly newsletter, the Financial Freedom Report, to help you stay informed about the latest news on financial repression around the world. We’ll also highlight the latest developments in the Bitcoin space. You won’t want to miss it.

Read our latest newsletter here: https://hrf.org/topic/financial-freedom/

Subscribe to the Financial Freedom Report here: http://financialfreedomreport.org/


It's so beautiful

https://m.primal.net/JduV.png


it's been going on for months


🥜🤝⚡

nostr:note17us6l7j93mmc4lqp5cqcpy7zz2pkgj7emna8xz6xtdamvz0ga7jsv445dv


nostr:npub137c5pd8gmhhe0njtsgwjgunc5xjr2vmzvglkgqs5sjeh972gqqxqjak37w <3


Nutshell v0.16.0: New Binary Token Format, Multinut Payments, Ecash Fees & More

"The mulit-nut era has begun. As more mints adopt this feature, users will soon be able to make Lightning payments that originate from different mints at once. Pretty nuts. It works great, improves reliability, and enables a truly multi-mint ecash UX. NUTs and BOLTs."

https://www.nobsbitcoin.com/nutshell-v0-16-0/


Local path finding in wallets would be very cool as well!


Look at the max fee per block.


iykyk 🫡🥜

```
cashuBo2F0gaJhaUgAUAVQ8ElBRmFwgaNhYRiAYXN4QGY2MTYwZjg4OGRjOWE1NmM3NzYwMzA3M2NiZjhkMjNlMTZiYmQ2OWFmMDkwNTgzMTRjOWYxYmJkYjg3ZmIwNmNhY1ghAilziUALFT9NtfcHAIgVIV_-YSEPMRZC8Lfblf7b9ibQYW14Imh0dHBzOi8vbWludC5taW5pYml0cy5jYXNoL0JpdGNvaW5hdWNzYXQ=
```


Graceful error handling*


Can't wait! I think it will be relatively easy to add to wallets. The lib just needs to add a single flag to the request indicating it wants to initiate an MPP with a mint that supports it.

Lib implementor would then initialize multiple CashuWallet's, one per payment and wait for those to succeed.

That's the happy path. Graceful handling will probably be the biggest challenge.


The mulit-nut era has begun. As more mints adopt this feature, users will soon be able to make Lightning payments that originate from different mints at once.

Pretty nuts. It works great, improves reliability, and enables a truly multi-mint ecash UX.

NUTs and BOLTs 🥜🤝⚡

nostr:note18chnesv30ea0k3qwje9d4fmvtfzd8tc2uacaz26eej0zhhcacgvqkzhl24


Oh yeah! CLN support coming soon as well thanks to  nostr:npub1u07xw079lxwv24xslarh2eu4v37jtjmwvev0jyk3zjhxg2wnt56seyez97


we have a `cashubtc/nutshell:latest` dockerhub image now :)

about time!


The next release of npub.cash will include a token history. There you can re-surface your last 50 withdrawals.

Why? This will enable me to be much more optimistic about token state. Once you click claim, the server will reduce your balance and mark the eCash as spent. Even if something goes wrong afterwards (e.g. you close the website before being able to claim) you can show the token again to claim it.

https://m.primal.net/Jdns.mov


Goddamn I've worked so much on this one.

I need a break.

Ok done.

nostr:note18chnesv30ea0k3qwje9d4fmvtfzd8tc2uacaz26eej0zhhcacgvqkzhl24


Big one: Nutshell 0.16.0 released with a ton of new features!

Feature overview:

- New binary token format starting with cashuB, saves ~40% space
- Improved offline capabilities and coin selection for wallet
- Ecash fees for mints to protect against abuse and cover operational costs (NUT-02)
- Wallets can stream live updates with websocket subscriptions (NUT-17)
- Multinut payments: pay Lightning invoices from multiple mints (NUT-15)
- Supprt for EUR (currently via Strike only)
- Support for Core Lightning via clnrest.py

https://github.com/cashubtc/nutshell/releases/tag/0.16.0


This was great


Strongly recommended article
https://tailscale.com/blog/how-nat-traversal-works


Can I get an invite?


You mean Whatsapp


That's dope


God I love programming.

https://i.nostrimg.com/f0816aa92524c3ff93a4129450f920fd820fef4cc53348199943f41fe344ed16/file.jpeg


That's a good one 🙌


Shill me an internet overlay network that can traverse NAT and be used in browser JS.


good bot


Oh Bitcoin...

nostr:note1vufrtwf8us4ceryf9zcvvnwuaqpztfdjryf4kkz5375xq8nfz6xqqv4emu


Are ephemerals stored for a constant amount of time?


From a relay's resource use perspective, is it better to host and persist an html website on nostr relays than to serve the same content in an ephemeral event from a web server over NWS?


On the contrary, I'm greatful for the constructive feedback.

It's just simply not true that "it's not gonna work" or "it's too inefficient". I know it works, I've actually used it, in contrast to everyone else.

For our use case, it's perfect. 6 notes per minute will be more than enough.


THIS IS A BIG ONE FAM.

SPENT A LOT OF TIME WITH THEIR TEAM DURING DEVELOPMENT. PRIORITIES ARE IN THE RIGHT PLACES. FOCUSED AND DELIBERATE.

https://proton.me/blog/proton-wallet-launch


徒歩1時間とか鍛えられそう


小学 徒歩20分
中学 徒歩15分
高校 自転車10分
大学 徒歩5分

大学徒歩7分だったらたぶん中退してるもちょ


大学まで徒歩2分だったけど
1限寝過ごしてた。


Yup bit coin


Maybe just saying bitcoin


Works every time, #Bitcoin


#Bitcoin


Internet Protocols Explained

https://www.opensourceforu.com/2024/07/internet-protocols-explained/


remember how it used to be called surfing the web

we should bring that back.


Julia is cool but Python's speed is usually not a bottleneck for AI applications. Most intensive tasks for training and inference are either compiled for CPU or run on the GPU.


Indices starting at 1.... Wtf.


Sure! You can give cashu.me wallet a try or install nostr:nprofile1qqsxn2q9vlnek6umcu5z44v42yklpwqy0prpd0kmvg7pytadgg9zvdgpr9mhxue69uhhyetvv9ujuumwdae8gtnnda3kjctv9uyzg7r2 or nostr:nprofile1qqstxwlea9ah3u6kjjszu6a7lrnhqkfh8eptp2z6v0e9558tlkkl2rgpzemhxue69uhk2er9dchxummnw3ezumrpdejz7qgwwaehxw309ahx7uewd3hkctcpremhxue69uhkummnw3ez6ur4vgh8wetvd3hhyer9wghxuet59u4kl3vp


I didn't create this website. It allows you to filter for likes of your web of trust though.


All 4,687 sats nutzapped so far (vast majority being 1 sat payments) were sent through nutsack.me using an extremely basic UI that makes it super hard to find anyone to zap and gives no feedback whether the transaction happened or not.

I call that dedication!


Sir nostr:npub1ye5ptcxfyyxl5vjvdjar2ua3f0hynkjzpx552mu5snj3qmx5pzjscpknpr, more unsolicited feedback: I like the fact that you're showing me exactly which relays get my event and which don't. However, I'd also like to have the option to hide that screen completely. Most of the time I don't care about that information. Would you consider that?


nostr:nprofile1qqs9tc6ruevfqu7nzt72kvq8te95dqfkndj5t8hlx6n79lj03q9v6xcpzamhxue69uhhyetvv9ujuurvv43x2uewveskuucpzfmhxue69uhhqatjwpkx2urpvuhx2ucpy4mhxue69uhk6ctnw3hkgmmw9e3kcmm4vshkzurf9amrztmnw3ex2ctdd9hxwtn7vrn looking at you 👁👃👁


test.com


Didn't work


I swear there are bots here that instantly like any post I make that includes a link

https://testing.that.bot.com/


It's nostr-based. Check it out: bitcoinmints.com


dear noStrudel dev (please tag em!), can you please let a hacker post with a CMD+ENTER


This is a good list: https://github.com/cashubtc/awesome-cashu


GOAT 🐐


Pretty close to releasing the biggest update to npub.cash so far.

Most changes are under the hood, optimising the way npub.cash handles token state in order to reduce the amount of requests.

Also I am adding support for nostr-based cashu wallets like nutsack 👀 Users will be able to withdraw their balance to their nostr-cashu-wallet. Furthermore you can setup a "redirect" so that all transactions land in your nostr-cashu-wallet automatically, essentially adding a npub.cash address to every nostr-cashu-wallet out there.

These changes do not only require a lot of work on npubcash-server, but also on the website and the SDK. I hope to get it out by early next week 💜


It's so beautiful 🧡

https://m.primal.net/JcRI.png


LFG


Love it 🙌


freedom++


Gm, it's working.

 nostr:nprofile1qqsdwq8uzr290m4wfupwkpxhzks9fqm7dz3w95qsjufc930pq9kun8spp4mhxue69uhkummn9ekx7mqpz3mhxue69uhkummnw3e8xct5wesjumn9wsqjvamnwvaz7tmswf5k6ctv943kzcmgv5hx6at5d9h8jampd3kx2apwvdhk6tmkxyhkgj3g is the dev and here is the repo

https://github.com/asmogo/nws


To stop talking about what the good man is like, and just be one.

- Marcus Aurelius

Gm


I was surprised by this

But glad that Bitcoin ownership has a wide ideological base in the USA 🇺🇸

Full study: https://www.thenakamotoproject.org/
https://m.primal.net/Jbkc.jpg


Damn! The majority are custodial wallets :/
https://nostrcheck.me/media/1577e4599dd10c863498fe3c20bd82aafaf829a595ce83c5cf8ac3463531b09b/a1fa7a42d6aabb24f4d9edd90a6eebe6474361bbb48092df94a888f0e58a391a.webp


Version 3.0 for #Polar by nostr:npub1hdpjtfq4qza9rfh0ysjzq5h38ehc0lxuqkq988yc7argpvvtlz9sq8nuf5 was released today!

https://github.com/jamaljsr/polar/releases/tag/v3.0.0


Have you tried it already? Is it good for code?


it's so intense, the fact that it's even remotely approachable by brains makes my head spin.

read chapter 1


Any contribution is welcome! Whether you want to be a contributor, an exit or entry node runner, or just help spread the word.

I'm currently working on adding an HTTPS reverse proxy with auto-generated self-signed certificates. This will allow exit node runners to accept encrypted HTTPS connections from public entry nodes without enabling TLS in their backend services at all.

https://github.com/asmogo/nws/pull/21


It's absolutely nuts that we have a nostr:npub1dwah6u025f2yy9dgwlsndntlfy85vf0t2eze5rdg2mxg99k4mucqxz7c52 ecash conference now. Organized by the absolute best in this space nostr:npub1e0z776cpe0gllgktjk54fuzv8pdfxmq6smsmh8xd7t8s7n474n9smk0txy.

Possibly the first of it's kind in history. Building on Bitcoin. I can't wait to be there.

https://btcplusplus.dev/conf/berlin24

https://m.primal.net/IGNR.png


Privacy is not the goal, oops.


Lfg!


My parsing is now available as rust library, could be used by client devs for example.

https://crates.io/crates/untrack


The genesis of a mind bootstrapped from mere software described in this book is incredible. I've never read such an impressive stream of consciousness before.

Diasporal by Greg Egan

https://image.nostr.build/9203cfca4739ca710ab7d349e934ae89365e91c2004ef647e004d1a000a6b370.jpg


If you're concerned with nostr bandwidth, open any nostr client and measure your traffic. It can be quite enlightening.


Sorry but your antagonism is getting a bit ridiculous. You're jumping from one issue to the next. Have you ever opened primal and measured your traffic? Why are you attacking nostr?


If it can, it should.


Yeah and because it works great.


i.e. wallet to mint communication


To do cashu stuff


NWS will not break nostr.


"criticize", sure buddy


How do you explain me being able to download data with 2 MB/s via my own relay?


I'm cognisant about relay traffic burden. But I disagree that there is "no good reason".

NWS works great for low-bandwith apps. It's very useful for Cashu mints and in contrast to most other options out there, nostr can be used from a web browser. It's the ultimate "other stuff" adaptor.

About efficiency: yes, nostr is very inefficient but that's irrelevant with the payload size we're concerned with.


😂😂 god I love you guys

https://m.primal.net/JbJB.jpg


NWS works with and without encrypted transport. There are lots of different flavors to explore.

When used without encryption, the entry node must be run by the user themselves because public entry nodes would be able to listen in otherwise. Two options in those cases: run the entry node locally in tandem with your (unmodified) client, or skip the entry node and modify the client so that data is sent through nostr to the exit node directly (the client is the entry node).

When used with encryption, the entry node can also be public. If the encryption doesn't rely on certificate authorities, it just works. You have to make sure you're talking to the right person, but that problem is as old as computer science. For example, ssh will ask you to confirm the fingerprint of the server when you connect.

If the encryption is https and the certificate was issued for a normal domain, your browser will complain (do you trust this website?) and the user will have to say "let me pass, even if insecure". Without ugly hacks (issuing your own root cert for example), I don't know ways to circumvent this. Note that Tor services doen't support https and they don't have to since transport is always Sphinx-encrypted (even hidden from the entry node).

How do you make sure you're talking to the right server if you use https? Couldn't the entry node just send your traffic somewhete else? We can actually do something that is unique to Nostr here: the exit node can publish its own TLS certificate on nostr and sign it. That's right, you don't need an authority to do that for you if you remain within the NWS system. Clients can fetch the cert from nostr before talking to the entry node and verify against that cert.

Here is another cool part that we haven't talked about yet: the exit node can also be configured to reach the global Internet and not only a local service (we call this NWS v2). In those cases, NWS can be used a bit like a VPN. You can type "https google dot com" in your browser and your encrypted traffic would flow from your machine to the entry node, to the exit node, then to Google and back to you. on those cases, nobody complains about the certificate because everything is fine.

Exciting shit. Gm.


Correct, I wrote "without additional software". A proxy is additional software.


This post belongs here

https://m.primal.net/JbOW.png


Finally, we are confident enough to invite interested users to test Keychat.

Keychat code: https://github.com/keychat-io

Keychat Android apk: https://github.com/keychat-io/keychat-app/releases

This version inevitably still has many bugs, which we will continuously fix. We will also modify any designs that are not reasonable. Thank you for helping to test this early-stage application.

For now, do not store too many sat(<200 sat, about 13 cents) in Keychat.
If you need some ecash sat to test the postage feature, please add 👇.


Hey nostr:nprofile1qqsrx4k7vxeev3unrn5ty9qt9w4cxlsgzrqw752mh6fduqjgqs9chhgppemhxue69uhkummn9ekx7mp0qy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7qg6waehxw309aex2mrp0yh8x6rfw3nx7unrv5hx7mn99uslkdah 👋
Thank you for creating npub.com . I published my own website on it 🙌

https://pegah.npub.pro/


Could nostr be soft-forked to support binary data structures and a restful API?

Curious whether you think that we'll ever see bigger changes in how it works.


Hardly triggered. This is boring, let's be constructive.

Nostr sucks because it's jsons on websockets. Nothing you can do about it. We work with what we have, and we have a specific low-bandwodth use case so the inefficiency doesn't matter to me.


I've had those shoulds all my life.


> NWC has entered the chat


Idk, who's paying for your post right now?

I'm going to use this for Cashu which is very low-bandwith so none of this will matter.


nostr:note1qu3689tef7lwlsxgevlgx9865xa4r2e83tqr0g9mfzusfgp5z58qsd4t3e
https://m.primal.net/JbFr.png


run a relay before you complain 😂


yeah all that works here as well with https or some other transport encryption but it also works without a bridge, directly from your browser.


I said "without additional software". Running your own bridge is additional software.


That's not a bad idea. It just won't work in the browser without additional software.


It's not.


I'll check it out, thanks for reporting


Yes please, happy to check it out. Can you send me the seed plus the mint? I'll try it in my CLI to verify.


Big brain cycle is to complain about things because they aren't done the way you know they should be done because I'M AN EXPKRT IN THESE THINGS, but not actually doing anything.


Lots of shoulds.


It doesn't reappear in one wallet because you restore it in another.

Copy the ecash from nutstash and send it to yourself in cashu.me


Is this the esp32 for 500 bucks


Layers can be stacked on top of each other. It establishes a TCP connection without IP, but all of it runs on TCP/IP eventually.


Nostr Web Services (NWS): Enable TCP on Nostr

Nostr Web Services (NWS) replaces the IP layer in TCP transport using Nostr, enabling a secure connection between clients and backend services. Exit nodes are reachable through their nprofiles, which are combinations of a Nostr public key and multiple relays.

https://www.nobsbitcoin.com/introducing-nostr-web-services-nws/


nostr isn't protected against that either


I don't care about what people interpret. point me to an inaccuracy I've said and I'll revise.


I don't claim anything stupid like that.


Then you're wrong.


Depends on how big your packet is.


I am embarrassed.


A new Cashu PWA wallet appears!

🐂🥜 Bullish

nostr:nevent1qqsgug9ysyga39cw09y0dvqpxfxpz482z78z3tj5rk439zcref9y20cpzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtczyrrkzlszysh4s5l7tdgn6sglrx6y45lsm2269rfn4xm7jflj2hwj6qcyqqqqqqgr9946z


OpenSats Announced Sixth Wave of Bitcoin Grants

OpenSats granted support for developing Peer Storage backups for Lightning channels, Secp256k1.swift, Blitz Wallet, NLightning, eNuts, Gonuts, and Bitcoin Fees projects.

https://www.nobsbitcoin.com/opensats-announced-sixth-wave-of-bitcoin-grants/


NWS works with and without encrypted transport. There are lots of different flavors to explore.

When used without encryption, the entry node must be run by the user themselves because public entry nodes would be able to listen in otherwise. Two options in those cases: run the entry node locally in tandem with your (unmodified) client, or skip the entry node and modify the client so that data is sent through nostr to the exit node directly (the client is the entry node).

When used with encryption, the entry node can also be public. If the encryption doesn't rely on certificate authorities, it just works. You have to make sure you're talking to the right person, but that problem is as old as computer science. For example, ssh will ask you to confirm the fingerprint of the server when you connect.

If the encryption is https and the certificate was issued for a normal domain, your browser will complain (do you trust this website?) and the user will have to say "let me pass, even if insecure". Without ugly hacks (issuing your own root cert for example), I don't know ways to circumvent this. Note that Tor services doen't support https and they don't have to since transport is always Sphinx-encrypted (even hidden from the entry node).

How do you make sure you're talking to the right server if you use https? Couldn't the entry node just send your traffic somewhete else? We can actually do something that is unique to Nostr here: the exit node can publish its own TLS certificate on nostr and sign it. That's right, you don't need an authority to do that for you if you remain within the NWS system. Clients can fetch the cert from nostr before talking to the entry node and verify against that cert.

Here is another cool part that we haven't talked about yet: the exit node can also be configured to reach the global Internet and not only a local service (we call this NWS v2). In those cases, NWS can be used a bit like a VPN. You can type "https google dot com" in your browser and your encrypted traffic would flow from your machine to the entry node, to the exit node, then to Google and back to you. on those cases, nobody complains about the certificate because everything is fine.

Exciting shit. Gm.


Awesome! Do you have a GitHub link?


Nice work!


Tor doesn't work in a browser without additional software. This will.


That was fast, nice


Was referring to > Fairly useless without a browser

I'm pretty sure this design also enables use with browsers when combined with DNS and traffic is allowed to exit into the open internet.


errrrr....
nostr:note1vdjx7x9cdmmynnfjj36evnvacc8xjz0yll6pke3x8k7k9y6v3xmsf9c5wa


https://m.primal.net/JaiJ.png
nostr:note1eu0pyklezwkysyeelnhmfvgnuj7emgwvr3cl9sax4npc6kus77cqzsn396


RUN
NWS

👀

nostr:note1eu0pyklezwkysyeelnhmfvgnuj7emgwvr3cl9sax4npc6kus77cqzsn396


After several weeks of persistent effort, I'm excited to share Nostr Web Services (NWS).

NWS makes your web service reachable without having a publicly accessible IP address or DNS. All you need is an npub and a set of Nostr relays. A wide range of existing services could be run on NWS without requiring any significant changes. NWS achieves this by establishing a TCP connection between client and server which can be used by these applications.

Please keep in mind, that the software is in a very early state and not even released yet.

https://github.com/asmogo/nws


brrr


👀
nostr:note14qawlh5wk28u2www0yu9srtgdrz760qew2ayzrkngrxfz3taqnhswt2g56


#bullishNuts v0.0.53 adds its first #Nostr integration

1. Add a contact with name and npub
2. Tap on the contact and the nostr:npub1s4m06xdlu6fuhfhs4m3nhpp8xdpsdprwccdktckkzusfu8qzzprqnfpz6a address will be generated and copied to the clipboard

The address can then be used to send #ecash via Lightning. 🥜⚡
https://m.primal.net/JYZv.jpg
https://m.primal.net/JYZw.jpg


Thank you for existing nostr:nprofile1qqsv2kx8e35mhk3uyutc9dekh27xftxjmgjck98n2mdu49nvkzmm38spz3mhxue69uhhyetvv9ujuerpd46hxtnfduqs6amnwvaz7tmwdaejumr0dsq3samnwvaz7tmhv4kxxmmdv5hxummnw3ezuamfdejs6cvma8


Laid off at swan?? Damn, sorry man.


Which mint do you mean


I've been helpful, scroll a bit further 😅


Sorry nutsack.me


There are many mints now. You can discover them easily via nostr. Check how nutzap.me does it for example


What's an account


Gm


More gangster


fyi
https://m.primal.net/JaOh.png


winning!


underground

nostr:note1yxs8tl0xlndneyty8yafh6wpj0ctkvmawcstjvwahsj05hw34uuqvraavl


It usually works quite well. Did the restore fail or succeed?


Earthnuts


I'll reconsider, given this new badass spin


In just 40 years!


This is lies


From vapor to solid state

nostr:nevent1qqsv6qenq74hkpfsxheqykjrzal6ggwyxdt7hklkvv82js7cqgshjscpzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtczyzprg8ug9dh2hnft5lc7ly92m9su7p6279deaaz2p8ua928ml0n2yqcyqqqqqqg3p3war


nostr:nprofile1qqsdmup6e2z6mcpeue6z6kl08he49hcen5xnrc3tnpvw0mdgtjemh0spzemhxue69uhhyetvv9ujuvrcvd5xzapwvdhk6qg5waehxw309aex2mrp0yhxgctdw4eju6t0qyt8wumn8ghj7un9d3shjtnwdaehgu3wvfskueqgxmmun ooofffff


You can recover with any other Cashu wallet that supports seeds or use this web app:

https://v2alpha.nutstash.app


they nut like us


Ok – so Signal is great. Good encryption, etc. Obviously, the main thing that we want to improve there is the centralized coordinator in the middle.

My original proposal was an adaptation of the Signal protocol for Nostr. https://github.com/nostr-protocol/nips/blob/2169fab971591d0b4a450ef08aeb6301c5d2a0da/104.md

But I got lots of feedback on that one that 1) group messaging needs to be first class and 2) multiple device support needs to be first class. Both of these are actually the same thing - supporting groups.

With the signal protocol, the way that the symmetric encryption works, when you're in a group, you're effectively creating a DM to every member of the group, encrypting it separately, and sending it out. Signal makes this feel like less of a big deal because they do some tricks on the server side to make it less heavy for the client.

In the nostr version of the signal protocol, you have no server to do work for you, so your device has to do all that work itself.

With MLS, because it's using a different data structure (binary trees) for managing encryption keys and users in a group, you go from a situation where group scaling is a linear problem (each new user in a group adds the same amount of work for all clients) to a log problem (where each new user in a group adds wayyyy less work for all clients).

There are also other benefits of MLS.

1) it's about to be an internet standard (like TLS, etc) so we conceivably get interoperability with other networks/clients
2) it's built to allow for the use of multiple ciphersuites and the graceful change/upgrade of the ciphersuites over time.

The only drawback is that it's very complex and very new. My work so far on getting MLS to Nostr has been focused on updating dependency libraries to allow for support of schnorr signatures over the secp256k1 curve (what nostr - and bitcoin - uses). I'm very convinced this is the right long-term solution for private messaging on Nostr but it's going to take a bit longer to get it probably ready for implementation.

If you haven't see it already, you can follow along with what I'm doing in my weekly posts. Also, if you're interested in working with me on all this, that'd be awesome.

nostr:naddr1qvzqqqr4gupzq9eemymaerqvwdc25f6ctyuvzx0zt3qld3zp5hf5cmfc2qlrzdh0qqxnzdejxy6rzwf5xvmnwveh25uk9n


Wow what a nice PR