Oddbean new post about | logout
 **Security Update**

I've got some bad news for you guys. This morning, as I was adding error handling to flotilla, I discovered that Coracle has been sending user session objects to bugsnag when reporting errors.

Who is affected: Users who triggered an error in Coracle while signed in with their private key, since December 5th 2023.

What I've done:

- I immediately released a new version of Coracle, both to web and to zap.store
- I have deleted the affected apks from my releases
- I have deleted all my error data from bugsnag
- I have deleted my bugsnag project and rotated my api key, so lingering error reports will be dropped
- I have audited my code for use of the session object to ensure nothing else like this is happening

What you should do:

- If you're logged in with your private key, log out
- Hard refresh the page to ensure you have the latest version of Coracle

The bottom line is that if you signed in to Coracle with your private key, it has been shared with me and with bugsnag. In practical terms, your keys should still be secure, since they were sent over TLS, and have been deleted. But there is no guarantee I can offer that they are in fact gone.

I take my users' privacy seriously. My error reporting implementation doesn't record user IPs, it redacts identifying data, and it allows users to opt-out. I also warn the user when they attempt to enter an nsec into a text field. In this case, I simply screwed up, and I sincerely apologize. Reply to this note if you have any questions. 
 I can shitpost from a new key if it ever gets compromised. What about ecash users? 
 Yep 
 Honorable disclosure 
 I've been dreading this day tbh 
 it happens... truly it's the most nightmarish thing about being a programmer, how many people can get messed up by your mistake

good that it's found and fixed and move on and don't forget... we live in a world where many clearly bad things are said to be "ok" when they are not 
 If you’ve been dreading it then it’s been an ongoing issue. 

Why didn’t you tell everyone initially when you found it? Genuinely? 

Not judging you, seeking to understand.  
 Thanks for disclosing. Would this affect nostr browser extension logins through nos-2x or Spring Browser? 
 Nope, the worst that would happen would be your pubkey would be shared with me. Not ideal, but also not sensitive. 
 whats the latest build? 
 `686f8dbd` 
 thanks 👍🙏 
 This is why we need to be vigilant with signing apps. Only give your nsec to a signing app, that way you never share it with anything else. 
 Agreed, I've been very lax with this myself. Will have to be more careful going forward. 
 Serious question:  Are signing apps considered standard best practice ATM?

Frankly, as long as I'm going to be pasting my nsec into any app - even if I know it's only ever going to be pasted into that one app - I'm still not going to trust that nsec with anything important. 
 Were the keys ever stored (not just transmitted) in plain text on bugsnag, like could you login to that platform and see them? 
 The stringified json of the session object was used as the user ID, so yes, stored in plaintext and visible via the admin UI. 😭 
 Amber 
 Yep 
 What technically makes something like Amber more secure? I’ve never used it, so not familiar, but isn’t it just as vulnerable as anywhere else you stick your keys? 
 My advice is have a module that reads the keys from storage and turns the keys into Signer objects​ when the app starts, then never directly access the keys in your code.​ Make the Signer object compatible with NIP-07 so you can use it interchangeably.

 
 Worth taking note if you use Coracle. 

nostr:nevent1qqsrz6g5ds3dfht4a6zgdt7k593ujhnrz4njn6mke2fmpwxjc3sgafcpzdmhxue69uhhwmm59e6hg7r09ehkuef0qgsf03c2gsmx5ef4c9zmxvlew04gdh7u94afnknp33qvv3c94kvwxgsrqsqqqqqpahkpn0 
 I assume this is a good reason to always use signing extensions yes? That would avert issues like this, unless the extension itself was somehow compromised or had a bug, is that right? 
 Yep, remote signers and browser extensions are a great solution for this, and have been around for years now. 
 Perhaps it would make sense to post a list of signing extensions on the login page, and recommend that people use those rather than entering an nsec, or perhaps you already do that? 
 Your last sentence is important--what you're really asking (or assuming) is that we can "trust" the code more in signing extensions (and frankly that may not be the case).

This is one of the weaknesses in the open source community. We all assume that because the code is available to all, it's "good".

But what really happens (in more cases that we might want to admit) is the only "audit" the code receives is from the original developer--I'd even dare to say that most projects out on git hub probably receive very little (if any) code review prior to being released. 
 Yes, I guess I am hoping (!) that the code for a signing extension would be rigorously reviewed.. and even then, I am aware it could have a vulnerability (but any code could have that, so at some point we (esp us non-coders) have to *trust* the code 😅) 
 Well, there's the rub...unless you go in and review the code yourself, you must end up trusting others...

And when someone like  @hodlbod posts "hey, we have an issue" I automatically trust that developer even more.

What I *really* worry about is dishonest projects / developers, and you see it all the time. Someone releases an app on the Play Store that does something nefarious...happens more often that most realize.

And look at all the data breaches out there--those are code mistakes that ARE audited (heavily) and still they happen... 
 I hear you. What do you see as the solution?
I don’t have one, though I do see it is probably a good idea to let new users know that this issue has not been solved, and that they need to be aware that there is a chance their nsec could be compromised.
Of course, that would cause friction too, but my approach with onboarding people to both #bitcoin and #nostr is to remind them that this is all a big experiment, and we are part of it, part of creating the potential for freedom, even as we move into a digital age. 
 Agreed.  Unless you've diligently ensured your nsec has continuously remained isolated from the Internet (which might be nobody), it's prudent to operate as if your nsec has already been compromised. 
 1. I'm lucky to have always used nostr apps with key signing extensions on both phone and laptop.

2. I didn't know Coracle had an apk...

nostr:nevent1qqsrz6g5ds3dfht4a6zgdt7k593ujhnrz4njn6mke2fmpwxjc3sgafcpzpmhxue69uhkummnw3ezumt0d5hsygyhcu9ygdn2v56uz3dnx0uh865xmlwz675emfsccsxxguz6mx8rygpsgqqqqqqskwmfdf 
 good on you for informing users of the breach.  🙏 not an easy choice.  I think many devs would just cover it up.

I hope others that see this realize that this makes coracle more trustable and not less.. 🎇 
 Damn, too bad. That must really suck. Good luck and I hope you get this all figured out. 
 It's a good thing he disclosed it. It definitely makes Coracle a bit more trustable in my mind knowing that even in the case of a mistake it will be disclosed.

Definitely reinforces the fact that you should never raw dog your private key into any application, no matter what. I don't really think most people do that nowadays, but its a good reminder. 

nostr:nevent1qqsrz6g5ds3dfht4a6zgdt7k593ujhnrz4njn6mke2fmpwxjc3sgafcpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsygyhcu9ygdn2v56uz3dnx0uh865xmlwz675emfsccsxxguz6mx8rygpsgqqqqqqshj8ft2 
 Thanks for the announcement.

Do you plan to deprecate raw nsec login in future versions?  Signing extensions and remote signers are the security habits we should be encouraging users to adopt. 
 Not necessarily...there's nothing that ensures remote signers and extensions don't have similar issues... 
 the complexity of clients makes it more likely however

the point of isolating it in a simple, single purpose thing is to reduce the chances of there being a vulnerability

it's a point lost on many programmers these days, the reason why the Unix philosophy talks about small, single purpose, modular applications. Security is a big part of why, but a small part of the broader problem of bugs, which also cause other inconveniences 
 Agree...(in theory). 

How many times to devs pull from a library of "trusted" code, only to find at some point in the future that "oops, we found a bug in library x"...

Often it's no one's fault--but it happens. 

So modular applications / libraries come with potentially even a greater risk... 😃  
 Unfortunately I don't think you can get simpler than nsec login. It's also the easiest way to create an account. Anything more is very confusing for normal people. You either have server-side custody, a different browser app like nsec.app, or a new app on your phone, all of which can have the same problems. A key rotation scheme would be an improvement worth having, and educating users to reduce key exposure and not use their main key for storing ecash or secret communications or whatnot seems like the way forward in the short term at least. 
 Requiring an extra signer app or extension is not much different from a service like Gmail requiring a two-factor authentication scheme when you create an account.

We should work to create a "pit of success" for users to fall into, and I'm concerned that raw nsec signing doesn't do that.

UX research and future development in the Nostr space could probably produce low-friction identity creation that guides users into creating an nsec and storing it securely in just a few clicks/taps.  It's not an easy problem to solve, but could provide huge value to users. 
 I agree. More work is needed in this area.  
 i think there should be more than one signer... and some thought needs to be put into how to do it on desktop with browsers

you can recommend people install nos2x or amber, and remove it from your web and desktop versions...

i agree with the principle of it... the more complex an app, the more likely it is to have a bug and if it's a security feature, potentially a vulnerability

people should also be wary not to make these signers into all singing all dancing omni-apps also 
 So this is perfect--and what should happen.

We find a bug, and it's now opening up a great dialog on potential ways to improve Nostr and the log-in / account creation and maintenance processes.

"Making a mistake is a gift...you now get to fix it AND make things better!" 😃 

Love this thread!! 
 Agreed, it's a profitable conversation 
 Thanks for letting us know.  I appreciate your openness and disclosure.  All good.  🫡 
 Do not enter your private key into a web app! Why are there Nostr apps that are doing this?

Second, a dependency supply chain attack could make even signer apps leak passwords.

nostr:nevent1qqsrz6g5ds3dfht4a6zgdt7k593ujhnrz4njn6mke2fmpwxjc3sgafcprdmhxue69uhhyetvv9ujuam9wd6x2unwvf6xxtnrdakj7q3qjlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qxpqqqqqqzxjp2yu 
 This is how bug should be handled--openly and honestly.

Kudos to you. 😃 We all make mistakes...we're not God, and while we try to be perfect...well...

And (frankly) at some point everyone on Nostr needs to understand their nsec is effectivley not private, as AI will be able to dox any of us (so long as you have enough posts to begin developing a "profile"). Sorry, but it's true...

In fact, I've been thinking that perhaps a good practice would be to abandon a profile (nsec) periodically and start over...thinking about how that might (or might not) help...

Regardless,  @hodlbod you've gone up a few notches in my book.

Thanks for all you do, and for updating us.


 
 Normalizing using many keys for different use cases might be an improvement as well. 
 Agree...I use "browser isolation" for most of my surfing, where I use different browsers and different extensions for different purposes (e.g., I only sign into Google on Chrome, and I only surf using Chrome at websites that I'm ok with Google knowing about). I can envision doing something similar with Nostr...

Nostr is so new, we're still on the bleeding edge--things will evolve and get better...

Right now we're driving Nostr's "Model T" - transformational at the time, but quickly evolving as technology and development leaps ahead...

Just wait until we develop the twin-turbo V8 Nostr apps... 😃 
 Genuinely thought that was normalized already. Majority of entities have sock puppets. Even me. Mine are currently used for me to look back & analyze in chronological order. 

Many are better about using multiple alts to express different parts of their personality or for narrative purposes. 🫂 
 Using signing extensions and signing applications are paramount. 
nostr:nevent1qqsrz6g5ds3dfht4a6zgdt7k593ujhnrz4njn6mke2fmpwxjc3sgafcpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsygyhcu9ygdn2v56uz3dnx0uh865xmlwz675emfsccsxxguz6mx8rygpsgqqqqqqshj8ft2 
 Thanks for being honest, but holy shit.  
 The response we wish to see everywhere on the web, that we don't!
nostr:nevent1qqsrz6g5ds3dfht4a6zgdt7k593ujhnrz4njn6mke2fmpwxjc3sgafcpz9mhxue69uhkummnw3ezuamfdejj7q3qjlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qxpqqqqqqzj20gnn 
 based honesty. keep doing what you do hodlbod; we appreciate you. 🫂 
 MY NSEC WILL NEVER LEAVE THE VAULT
https://github.com/vnuge/nvault

Users using uBlock origin would likely have been protected by default, I know I am. You should always be using blocking tools such as script blocking extensions or DNS blocking to disallow apps from sending YOUR data to 3rd party servers. I encourage other developers to avoid even the slightest possibility that you could be responsible for compromising user's identities.  

For web applications I think it's time to deprecate nsec login. 

nostr:nevent1qvzqqqqqqypzp978pfzrv6n9xhq5tvenl9e74pklmskh4xw6vxxyp3j8qkke3cezqqsrz6g5ds3dfht4a6zgdt7k593ujhnrz4njn6mke2fmpwxjc3sgafcd2e3vt
 
 Some fuck up was bound to happen with using nsecs to login

nostr:nevent1qqsrz6g5ds3dfht4a6zgdt7k593ujhnrz4njn6mke2fmpwxjc3sgafcpzemhxue69uhhyetvv9ujucm0d9hx7uewd9hj7q3qjlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qxpqqqqqqz3l4dcc 
 Thank you for letting us know.🙏 
 Honest devs should be Zapped! Thank you 
 🫂 
 This is why I use nos2x :-) 
 Thank you for the disclosure. 👍 👍  
 I remember someone proposed to unlock btc wallets with nsec nostr key.
Mmmm bad idea. 
 Thank you for the transparency & if anything else … a nice reminder that private keys need to be kept private. 

Secondary question. Can ppl rotate their nsec? And generate  new private public key to a Nostr account? #askNostr 
 There's no standard way to do it, but lots of people have success with social key rotation. Just make a new key and tell your follows you've moved. I'm sure we'll eventually come up with something more streamlined. 
 Respect for the full disclosure 
 Pretty sure I've always used a browser extension. I was not able to use amber on the mobile app on android, so I never signed into it.

3rd party data holdings always seem to be a big security  issue. Even if you're honest as a dev, they may not be. Many stories of 3rd party services being the cause of data leaks the past few years too. 
 Yeah, this is actually a good thing. It will push us to fix these security/UX issues. 
 can you ask bugsnag to ensure data is wiped and not softdeleted? 
 I've asked them to, we'll see what they say 
 Ah man, that's shitty! But the way how you handling this is an example for other. I'm 100% sure you did not do this on purpose ;) It takes courages to be such open and honest about this.

It reminds me of this note too ;)
note1n2tksh06q93fqvj25xrumfavw2va3k9nyz5jsves2jawukj2fl9sgum268 
 😅 
 Why not use a self-hosted error tracking system? 
 I use https://glitchtip.com/ for all my projects 
 I started that way, but ran into performance issues with my home baked solution. I'll take a look at glitchtip, I would definitely prefer self-hosted. 
 youre a good man. 👍 
 Imagine if we had institutional transparency like this.

nostr:note1x953gmpz6nwhtm5ys6hadgtre90xx9t8984hdj5nkzud93rq36nsuf0saj  
 Honestly it shows a lot about your character to voluntarily disclose this. Good on ya fren. 🫂 
 not your keys not your korn 
 Respect for the transparency, I have so much to learn here, keep building 
 That's an honest days work my guy  
 Sorry to hear that. Is there any way to check when one signed into corracke giving nsec? 
 I have no idea what Coracle is 
 Can’t know much about Nostr apps then 
 Cool 
 Was in a rush when I wrote that. Could’ve worded it better 😂 
 Thanks for the transparency! Keep up the hard work.
Might be my ignorance to the tech but I thought all signing was done on the front end and so signing in (with an extension for example) was just a client side session and that the nsec never got shared server side. 
 Thank you for letting us know. But I guess at this stage, almost everyone’s keys is compromised 😅 I don’t know if I ever logged in with my nsec, but there is a chance I did. I personally don’t believe anything gets deleted ever, so I’m going to guess all the data on bugsnag are still there. 

Have you contacted bugsnag about this to make sure they “full format” your data, or will that cause even more attention?

Finally, I would suggest that nsec login to be not only discouraged, but not be possible. Like primal. 
 Thank you for being honest and open about this. I used Coracle so I'm using this as an opportunity to see what migrating to a new nsec is like. 
 Props for the disclosure. I used Coracle so I think now is a good opportunity to see what migrating to a new npub is like.  
 This is why I burned my doxed/ compromised key to start fresh with this one. Don't be afraid to start over. We are still early. It's easier to rebuild 600 follows now then 1000000 in 10 years. 
nostr:nevent1qqsrz6g5ds3dfht4a6zgdt7k593ujhnrz4njn6mke2fmpwxjc3sgafcpzdmhxue69uhhwmm59e6hg7r09ehkuef0qgsf03c2gsmx5ef4c9zmxvlew04gdh7u94afnknp33qvv3c94kvwxgsrqsqqqqqpahkpn0 
 I used alby, but Is there a way to check if my key was compromised with my npub? 
 You should be fine, that's exactly the point of using signer extensions: You don't give your private key to 3rd party websites, but websites instead request signatures from an extension. 
 If you used alby, you're safe. 
 I’m safe. I don’t understand most of the words in this note. 
 > Users who triggered an error in Coracle while signed in with their private key, since December 5th 2023.

User login with extensions are not impacted? 
 Correct 
 Thanks for confirming this
I feel a little bit better 
  @hodlbod Does this note imply someone else had your bugsnap API key a couple of weeks ago? https://primal.net/e/note1fkehz0eskqs0et9t524vrwudulxt056kqgekqkdscqx7lakspm3sgmgk5d

"Would whoever is running whatagent.net please remove my bugsnag api key from your deployment, it's clogging up my error reporting." 
 The API key is public, because it's client side. So not privileged, however forks of coracle that are not up to date and havenct removed the bugsnag key may still be vulnerable. 
 🫂 
 thank you for the responsible disclosure and transparency. shit happens, glad you found it and fixed it. 
 

That's why you should always use an extension signer like Nos2x-Fox when signing up on different web clients... 

"The bottom line is that if you signed in to Coracle with your private key, it has been shared with me and with bugsnag. In practical terms, your keys should still be secure, since they were sent over TLS, and have been deleted. But there is no guarantee I can offer that they are in fact gone."

nostr:nevent1qqsrz6g5ds3dfht4a6zgdt7k593ujhnrz4njn6mke2fmpwxjc3sgafcprdmhxue69uhksctkv4hzuctrvd5k7mre9eek7cmfv9kz7q3qjlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qxpqqqqqqzmw2l0n 
 https://gitlab.com/soapbox-pub/nostrify/-/blob/main/packages/nostrify/NSecSigner.ts?ref_type=heads 

It's missing a conversation key cache. `#secretKey` prevents property access. 
 Why have it even as an option? 
 Keys are simple, external 3rd party dependencies aren't (and, as you note, may not be any more secure). It's all about ease of use for non-technical users. But the days of nsec login are numbered, we just need really solid flows for secure custody. nsec.app comes close. 
 Entering a private key into a web app is much less secure than a signer app or extension. However, a signer app still can have its issues, just less.

A few of the issues:
- Phishing attempts from similar looking domains.
- Hot loading code from a remote server, not signed releases from the maintainer.
- Encourages entering nsec somewhat carelessly into more than one web app. It could be entered into a clipboard, which as been another vector of attack.
- Users habits of this type of behavior from passwords on every other web app. Passwords can be reset via email resets, a private key can not be reset. It can thus not communicate the importance of it not leaking, and thus careless backups and storage.

None of that is good for non-technical users. 
 What are your thoughts on https://app.nsecbunker.com/? 
 It's a good start, but ultimately a custodial honeypot. Self-hosted bunkers are much better, but hard for normies. Multisig could be a great way to solve this, I know it's been worked on some. 
 start establishing the self hosted bunker paradigm now. its going to be necessary for the internet of the future 
 I am guessing two possibilities:
1. The friction to onboard new users would be pretty high as it currently stands, if they have to go and figure out using a key extension.
2. The developer, in this case @hodlbod, would need to trust that the signing extension options are excellent, and have been audited rigorously.
I can imagine that as a developer, if one knows one is acting in good faith, it might be easier to trust oneself and one’s  intentions, than those of others?

Curious to hear thoughts, esp from developers @hodlbod  @jb55  @Vitor Pamplona  @miljan   @Martti Malmi @Kieran @brugeman 
 Very well put 
 Nsec login definitely doesn't make much sense, aside from "bunkers are high friction for now so Damus users should just paste nsec". This will improve as bunkers improve, I will share a significant step forward in this area next week.

Local nsec signup makes total sense - let users start asap but then let them export nsec to a bunker. Nostr-login widget has this option built-in, only works with nsec.app for now but will be proposed as NIP upgrade when we are confident it's good enough.
 
 I agree, nsec.app is the smoothest experience I've seen so far. Thinking about seeing if I can integrate it into the onboarding experience in Coracle, friction notwithstanding. 
 Awesome! I'm sure there's a lot to improve there, please let me know if you have ideas or issues. 
 I have taken a very unusual and extreme approach, but I think it's a good one: do not allow users to export their private key. If they generate a key through my client, I show it to them exactly once, and then don't allow them to access it again. 

I have even taken it a step further, and prevent _scripts_ from being able to access the key in localStorage after the page has loaded.

nostr:nevent1qvzqqqqqqypzqprpljlvcnpnw3pejvkkhrc3y6wvmd7vjuad0fg2ud3dky66gaxaqydhwumn8ghj7emvv4shxmmwv96x7u3wv3jhvtmjv4kxz7gqyze0remyxj4we2n2jwsjzpwalpem7287apkvjpktxa4pdr42lcxdydl6nx5

(See: https://gitlab.com/soapbox-pub/weblock/-/blob/main/src/StoragesLock.ts )

However, I don't have any red text that says "Do not use this, it's insecure". My wife says this is a "Dead dove do not eat" moment: https://www.youtube.com/watch?v=YUKmq7UMJys

In my case I am actually expecting users to paste private keys as an acceptable part of the flow. So I had to take all these precautions.

If you want to let people export their key, then keep the red warning text, don't lock the storage, and then only access the storage directly when people are on that specific part of the UI where they need to export their key. 
 Keys are simple, external 3rd party dependencies aren't (and, as you note, may not be any more secure). It's all about ease of use for non-technical users. But the days of nsec login are numbered, we just need really solid flows for secure custody. nsec.app comes close. 
 Entering a private key into a web app is much less secure than a signer app or extension. However, a signer app still can have its issues, just less.

A few of the issues:
- Phishing attempts from similar looking domains.
- Hot loading code from a remote server, not signed releases from the maintainer.
- Encourages entering nsec somewhat carelessly into more than one web app. It could be entered into a clipboard, which as been another vector of attack.
- Users habits of this type of behavior from passwords on every other web app. Passwords can be reset via email resets, a private key can not be reset. It can thus not communicate the importance of it not leaking, and thus careless backups and storage.

None of that is good for non-technical users. 
 What are your thoughts on https://app.nsecbunker.com/? 
 It's a good start, but ultimately a custodial honeypot. Self-hosted bunkers are much better, but hard for normies. Multisig could be a great way to solve this, I know it's been worked on some. 
 start establishing the self hosted bunker paradigm now. its going to be necessary for the internet of the future 
 I am guessing two possibilities:
1. The friction to onboard new users would be pretty high as it currently stands, if they have to go and figure out using a key extension.
2. The developer, in this case @hodlbod, would need to trust that the signing extension options are excellent, and have been audited rigorously.
I can imagine that as a developer, if one knows one is acting in good faith, it might be easier to trust oneself and one’s  intentions, than those of others?

Curious to hear thoughts, esp from developers @hodlbod  @jb55  @Vitor Pamplona  @miljan   @Martti Malmi @Kieran @brugeman 
 Very well put 
 Nsec login definitely doesn't make much sense, aside from "bunkers are high friction for now so Damus users should just paste nsec". This will improve as bunkers improve, I will share a significant step forward in this area next week.

Local nsec signup makes total sense - let users start asap but then let them export nsec to a bunker. Nostr-login widget has this option built-in, only works with nsec.app for now but will be proposed as NIP upgrade when we are confident it's good enough.
 
 I agree, nsec.app is the smoothest experience I've seen so far. Thinking about seeing if I can integrate it into the onboarding experience in Coracle, friction notwithstanding. 
 Awesome! I'm sure there's a lot to improve there, please let me know if you have ideas or issues. 
 yeah, the problem was relays

and the reason was complicated, ugly languages used to implement most of them, that make changes difficult to reason about 
 start establishing the self hosted bunker paradigm now. its going to be necessary for the internet of the future 
 nostr:nevent1qvzqqqqqqypzp978pfzrv6n9xhq5tvenl9e74pklmskh4xw6vxxyp3j8qkke3cezqqsrz6g5ds3dfht4a6zgdt7k593ujhnrz4njn6mke2fmpwxjc3sgafcd2e3vt 
 This week on #nostr.

@Vitor Pamplona wrote a piece on relay management
nostr:naddr1qvzqqqr4gupzq3svyhng9ld8sv44950j957j9vchdktj7cxumsep9mvvjthc2pjuqythwumn8ghj7anfw3hhytnwdaehgu339e3k7mf0qy88wumn8ghj7mn0wvhxcmmv9uqqkun9d3shjttnv4682uqzpvyjz

#AlbyGo 1.7 dropped
nostr:nevent1qvzqqqqqqypzpaxm2fctmxgmz7l2reksxh69mm3e9yvu99r5hwkpqdpdyg78fcxsqyghwumn8ghj7mn0wd68ytnhd9hx2tcpr9mhxue69uhhqmr9vfhkuefwdehhxarjxyhxxmmd9uqzqv8fjxrxy05khyxfwsz7t4lc07ywg99wyc9en8mvc3w2v0dhtknkag7kgv

#Yakihonne introduces smart widgets with 2.0. @Derek Ross instantly jumped on it.
nostr:nevent1qvzqqqqqqypzq0mhp4ja8fmy48zuk5p6uy37vtk8tx9dqdwcxm32sy8nsaa8gkeyqqsv74nqt80s36u8h7n00zyfx9efuqmg7240qq40fyfk8n6tu4x7ksgvdf4yg

@The Nostr Review got some stats for us.
nostr:nevent1qvzqqqqqqypzqavxnnavfdqnx0p29h8vxtstenmds0wy5n0etkm6fs7sjdmgrxv8qqs2lx9kv9cf5fzg4ct3u86mr5k8fcucw75u0p08z45hkfxp3q39uxcv0fjpx

#YakiHonne 2.0 is live
nostr:nevent1qvzqqqqqqypzqgycd7urua6ajmgc3jjunhcseekkz0swkljhdzs0pvftxlx6cgdnqqstx408pfrueymeufqu3mk59g0q6ruxtykxr4dkg24zau2pm9ywexsrd045t

@utxo the webmaster 🧑‍💻 announces Haven 1.0
nostr:nevent1qvzqqqqqqypzpckv7l8jqspl8u4y54dn9rcduwlrs4v2040nxce0m2h0cunvrj8tqqsqqqp4xn5xl46mfvr6sj6ddjpmgdwt2yln5rwge85za0urckn7kqqwgmcup

@iefan 🕊️ with a NostrHub update
nostr:nevent1qvzqqqqqqypzp3hhqal3dxw4pnuj49jjhl4lltq9l35y9w0w8yggnk2ehzk46j8aqqsdqe0235323pyjj9pkngvsaeevrpazfctqk03jjnttxme5agf98es6mv8fc

#BTCPay 2.0 has landed
nostr:nevent1qvzqqqqqqypzpffk4v0h70qpxwa2m005w2c6c7k5ka6w6sevrxyjssvn2unc309qqqswn7777tyj706e2zh7jg0puls67tydarugyr48yrjmaudhtw5jrdgu7prcn

@walker goes all-in on #zapstream with the Bitcoin Podcast.
nostr:nevent1qvzqqqqqqypzq7q8pqp9qg6mz0y0keaw4u6q7fxr8pzmy3cw0hw8asx5psqxsfj9qqsvmcu7zqlhwzajdv880lr20g6ykdueqy83vrgytjfqchyx5923jlcm9rk8g

@Alex Gleason 🐍🚬 is working on a new r3emote signer and nsec bunker
nostr:nevent1qvzqqqqqqypzqprpljlvcnpnw3pejvkkhrc3y6wvmd7vjuad0fg2ud3dky66gaxaqqs86zudq30r63ty7tft8vna94ufu85jtjsw5cafntwkdla8dzs67vqafy655

Multi-million dollar NGO planning to use GrapheneOS
nostr:nevent1qvzqqqqqqypzpwvda4xw463q0yxmev7rzsqxjgqf6dx8lxf8c2rgxk5ekayp5hpzqqsdmjfz308yxqgywjvjns3lrh0n8dkkx5xwq5ha92xz65kuzhqyfeqfrv25d

@MeA_BzZz talking about using nostr in Surianame
nostr:nevent1qvzqqqqqqypzq0nwqu6m3ghfd7x0vclkf5zth882jvd0e3tl2snuxkaksk0ftj9zqqs2axt6z58ta763qr8s2rrw2k2ymfzw8ayqqt5p5sy3pyux73trvpgzd0zpd

Amazing drone show in Lugano.
nostr:nevent1qvzqqqqqqypzpeq5d5whlvhh7mnt83ueat4t5mm5gm7j3n82ykfxw89j8xsn7nvpqqsrwqtud25q64hme6r9ng7kzknutqcg8peg2rs7l55gyglpd4hawyghh057q

#Coracle security issue, reported fixed by @hodlbod 
nostr:nevent1qvzqqqqqqypzp978pfzrv6n9xhq5tvenl9e74pklmskh4xw6vxxyp3j8qkke3cezqqsrz6g5ds3dfht4a6zgdt7k593ujhnrz4njn6mke2fmpwxjc3sgafcd2e3vt

@YEGHRO pushed an update to his inactive user tool. It now has bling!
nostr:nevent1qvzqqqqqqypzp7ppz7dat453ccd5x43nvwy2mtwresfsfay7wudg0sudulk5l5pzqqsdqlps3mw94507ttgajfghcfdhawvryuvez2jztnjwwx8575eyt7cn5hh8w

@fiatjaf merged something into #nostter
nostr:nevent1qvzqqqqqqypzqwlsccluhy6xxsr6l9a9uhhxf75g85g8a709tprjcn4e42h053vaqqsqqq84rcushjlhfkpg8xfve83fqpdccly46nmgncl4xncjkx73m3q8nwa8h

/thread, Happy Weekend