I actually really liked it, but my optimism outstripped my actual willingness to spend the time to get fast on it.

It's insanely programmable and has a really nice tool for doing the programming in a browser.


"Grayscale Bitcoin Trust saw the strongest outflows on record"

There, fixed it for you. The other 9 were either up or flat. 😉

It's amazing that this is world level news now though, right!?

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


📣 Calling the nerds out there.

I have a zsa moonlander keyboard for sale. It's in basically new condition, I used it for a few months on and off but it's mostly been in it's box.

Asking 490,000 sats + shipping.

https://www.zsa.io/moonlander/


Because it’s pretty complicated to do right. nostr:npub1l2vyh47mk2p0qlsku7hg0vn29faehy9hy34ygaclpn66ukqp3afqutajft did us all a huge favor by adding it to NDK but even that implementation could probably improve.

Soon though. Soon.


🤯 So good.


tbh, I always aim for 7-8 but often am just awake in the middle of the night for a while. I used to stress about it but I've learned to just let it go and now I just let my mind think on whatever it wants to or I read for a while. 🤷♂


🤙 aloha Valerie!


Yes. 😅 but you also realize you don’t need as much.


GM Nostr! 🌞

It might look like a broken camera but it’s actually the shadow of the mountains projected out into the space above me.

Love this view. 🏔
https://m.primal.net/HmeY.jpg


This is 🍆🧈 all over again. 🤣🤣


Wow. That makes me feel old.

That album still kills it though. So at least younger me had good taste. 🤙


Love to see it! ❤ Grant programs for great projects that push humanity forward.

nostr:note1427apc7j7es8s5te9n6us9jt4fnpdze2h7g7xmnnnw9ye309jwds7kdre5


Insane that it’s only been 1 year. 🤯

nostr:note126azht93g04u74vrqwsypr2j5fqng6ytprqts9lhrjrcgcct7kzqqf9mje


Yes, I've thought about it quite a bit. I think  nostr:npub1l2vyh47mk2p0qlsku7hg0vn29faehy9hy34ygaclpn66ukqp3afqutajft's recent strategy for building co-created wiki pages is probably the best path forward for lists as well. I'll probably take a look at implementing that soon.


Art -  nostr:npub17nd4yu9anyd3004pumgrtazaacujjxwzj36thtqsxskjy0r5urgqf6950x

Food -  nostr:npub153xmex42x4chdf757hp3q6zxagykkek7pdgwuwd074964dkyha9s82ryu8 (wine)

Human Rights -  nostr:npub1rscuek38p87xeawmpg9ssump8cjkgmz2j3rhnha4artvh0xjacwq9upeqk, nostr:npub1szpa7cypmyd59083qs3pte9lez22lzfu6pl2guhgqx7q09x68y6qquh3td , nostr:npub1y2st7rp54277hyd2usw6shy3kxprnmpvhkezmldp7vhl7hp920aq9cfyr7 , nostr:npub13ajk3hhvqys2ev4y68jwxywgs8fsdsuk4y5gkzs874jdyrccvf5qak2yd9

Music -  nostr:npub1fnn2h0tgm2mwnl0kar5ez25wztum2w0q0rrrf326n0ljn999znwsqf4xnx

Travel -  nostr:npub1qy2tkywa36ufh76qv62snv4953eayufxufav4evz2le06lxe2amqpxavna

Bitcoin -  nostr:npub1rd0wwn037yltsh256d4urxjpsr6ye6dva6azaggsl848nwc64ehq60r3ys


Hmm, yeah now I see what you mean. It’s the type of humility that limits what they try and do rather than simply tempering their ego.


Classic. 🤙


Good question.


I know they're actually working on a ground-up rebuild of their onboarding including the suggested follows lists.

It's always a question of choosing priorities from the list of good ideas (too many) to fit into the time available (too little).


GM Nostr! 🌞

This morning I read a really beautifully written piece of writing about how to break through limitations and plateaus. Aside from being filled with good advice, the writing is some of the best I've seen in a long time. It's worth 10 minutes of your life.

And yes, I've already emailed him about Nostr. 🤙

https://www.henrikkarlsson.xyz/p/limitatons


The deep mystery.

In 10 years it’ll be lore and conspiracy theory. 😂


Such an interesting thought experiment...

nostr:note1y20n3afvkd9nzyvaw9j9xhyv6q9f2535fmyhv09v2kpd8phk07wq5w5q2w


I’m not sure I’ve ever met a real type 2. I have definitely met super smart people who act dumb but I think most/all know they’re very smart and it’s a social cope to not show that for some reason.


So it's just for speed?

https://m.primal.net/HmBS.gif


Yo! Bitcoiner here. 🤙


But why!?!? What's wrong with cooking the eggs?


GM Nostr! 🌞

Not going to lie, this sounds awful.

But we're all for freedom here so... more power to you  nostr:npub16c0nh3dnadzqpm76uctf5hqhe2lny344zsmpm6feee9p5rdxaa9q586nvr! 😅

nostr:note10xzt5zkrd978959ptsy5np6d34jlz5rkxsqxsv0ayhv4vhsd2kgqtt2eas


highly entertaining! 😄


Something meta. 😉


Bless you for trying.


💯💯 seems like all the good stuff is coming back around into favor though.


Yeah. Completely. Not sure I don’t live in a simulation.


It was super fun.


What a nice weekend. 🏔❤
https://m.primal.net/HluF.jpg


While you’re at it, get the primal app/client and set up your lightning wallet so I can zap you sats!


✨✨ congrats!!


Agree with many comments. Primal is a great client that handles uploads for you. I also pay for Nostr.build for bigger stuff.


I’ll DM you


Dublin!


GM Nostr! 🏔 stay humble, stack sats, and remember that time is the only thing more scarce than bitcoin. Enjoy it.
https://m.primal.net/HlGQ.jpg


🙏 very grateful for nostr:npub10pensatlcfwktnvjjw2dtem38n6rvw8g6fv73h84cuacxn4c28eqyfn34f and for the generosity of people in this community.

nostr:note1z6tjpn28hnfa6zc4c8zl9ew2ef33g5vfqjs2ldx6tthu59a7tw6qv6ahzm


Yes. Definitely has felt slow today.


Welcome Jackie!


Where can you ship to?


Yes! More beekeeping content!

We had a hive at the house for two seasons but the bees sadly died and we haven't been able to bring ourselves to try again. I really enjoyed it though, very zen and gave me a new appreciation and respect for honeybees.


Trainspotting.


This is dope.

Feels like an old school poster.


Zaps are the new retirement account.


Man, I do love having orders filled while I’m doing other stuff.

My trading strategy: Slow, long timeframe, low time preference.

Slow is smooth and smooth is fast. nostr:note1wtkc562dysr54m8l3c2wam32ezrenyz3reqkr0ls0ulfu5s6p3ksz49tsw


Times 2.


Dip bought. 🫡


I echo what the others have said. I built  nostr:npub1lstr2kmdthkgfuzne8e4cn2nhr646x8jt25szdj7t4wr6xemtuuq3lczsj to be a management tool so that social (and other) clients could just display feeds based on your lists but wouldn't have to build all the management aspects. This is what Amethyst takes advantage of. I'd love to see something similiar in  nostr:npub12vkcxr0luzwp8e673v29eqjhrr7p9vqq8asav85swaepclllj09sylpugg or  nostr:npub18m76awca3y37hkvuneavuw6pjj4525fw90necxmadrvjg0sdy6qsngq955


Glad to hear it!


Every now and then, justice does prevail. ⚖

CSW is not the author of the whitepaper
CSW is not satoshi
CSW is not the creator of Bitcoin
CSW did not author the Bitcoin software

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


The talk starts at 06:03:30 (youtube was supposed to handle that)


For all the Nostr newbies out there, I gave a talk a few weeks ago at #BitcoinAtlantis about Nostr's superpowers. I believe it's a great primer on a few of the main characteristics that set Nostr apart and give it a good chance of succeeding.

https://www.youtube.com/live/lRAM6bwS8mU?si=qa24-gm4sGBlY6gU&t=21810


Yup. Just before Baltic Honeybadger (the bitcoin conf)


There's Nostriga in Riga in late August. That one is going to be huge!


Another choice quote from the article:

"At their core, the psychedelic movement and the bitcoin movement have an ethos of liberation, sovereignty, and voluntary cooperation. Today they are viewed as taboo because they represent a fundamental departure from the constant societal turmoil most people consider normal."

Amen. 🙏

https://www.forbes.com/sites/digital-assets/2024/03/13/the-converging-interest-between-psychedelic-therapy-and-bitcoin/?sh=1f7ddc1c4971


100% accurate in my experience. ✨

nostr:note1gvmdpjjm25zdc6lk2se2rfclnm8u6a9nls4pwkchch8vszdmx89swvu4p4


We're doing monthly Bitcoin meetups with Bitcoin Chiavenna but we need to plan a Nostr only meetup for sometime soon, don't we!

Maybe early May?


It also needs to work.

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


What if I need to get funds off the lnbits instance in the old app? Not many sats there but would love to get them back if possible? Sounds like that mint won't be there in 3 months time...


GM nostr! I've loved interacting with so many new folks here over the last 24 hours. I'm seeing lots of new content too; gardening, education, cooking, homesteading, physics, etc.

For all new people, please don't hesitate to ask questions (even if you think they're dumb questions) – Nostr is a different paradigm, it's not always easy to grok. Everyone here is happy to answer questions.


Hey  nostr:npub1dx5q2el8nd4eh3eg9t2e25fd7zuqg7zxz6ldkc3uzgh66ss2yc6st288sj,

Looks like I've been removed from test flight beta so I can access the app anymore and I don't see a version on the app store.

Suggestions?


You're welcome! Not sure I got to them all but keep the questions coming, love to see it.


This would need to be implemented in different ways for different platforms. e.g. iOS, Andriod, Web (all the various flavors).

I could add something like this to NDK Svelte Components library fairly quickly though...


None. Regular password manager is very good. Just means that you have to put your nsec into the client (on mobile) or in an extension (on browser)


Doesn’t exist yet. Probably in the works.


Zaps all have an event attached to them that points to the post/person zapped. Many clients don’t show what was zapped the way primal does in a list but the data is there.


Agree. It’s sad but true. The worst part is that there are probably good people so caught up and controlled by the machine.


I feel like this is timely given the discourse in Washington DC at the moment.

They never learn. 🤦♂

nostr:note1llvdrfmmfuv4qrnn7yej4umfa4t908nx3tdstd2u8zxy6lhvcvpsnus8nz


No void here. Only good humans, bots, and DVMs.


Great photo! 👏✨


Remember kids. Math. nostr:note1ar5gl4xl3w22fgfa4meywhwuley46h9w65280dmwhq0rgh2y2a5qg0yw98


Is this his 14th mortgage on the biz? 😅

What a legend.


Oh shit. It’s happening!


💯💯 nostr:note14zpfgrgrtmdzrr2k53wkl375n87dhs5gnggarhg9uecqq48ycwjshdnrvj


Love the labels!


Very solid reading list.

And welcome. It’s amazing to hear that you’ve had a great start here on Nostr!


Welcome! I think you’ve found the place!


Yes. There are. Check out nostr:npub1stemstrls4f5plqeqkeq43gtjhtycuqd9w25v5r5z5ygaq2n2sjsd6mul5 in particular. It’s a music focused Nostr client.

And welcome!


Let’s go! Welcome to Nostr!


Nice! Welcome to Nostr!


Music and festivals ++

Let’s goooo!!


It’s a totally free (and ad free) version of Twitter.

It’s actually waaaaay more than that but your dementia will make the rest hard to understand Joe.


Welcome! 🤙

Yes please! Bring all your unpopular opinions.


Love it! We need more of this content here. There are a good few #permaculture folks here like nostr:npub1fdhjvx4kwxrw8gtxzqef8e4573ftxlx5g25ynln4096js979qvlqnlglhr and others.


And so are we! 🤙


Welcome! 🤙


You’re doing it right however you do it. Just post, have fun, and stay positive.

Also, if you use nostr:npub12vkcxr0luzwp8e673v29eqjhrr7p9vqq8asav85swaepclllj09sylpugg you’ll get a lighting wallet and we can all zap you some sats.


Welcome!


💯💯 I’m here for it.


There is no second best!


Took a stroll through #introductions just now… there are a lot of gardeners joining recently. Can’t wait to see the growing season here in a few months!


Test received!


Welcome back!


Nice view! Welcome! ✨


Test received.


Let’s goooooo! 🤙


Welcome! With you cooking!

We have a lot of painters here too. Check out nostr:npub17nd4yu9anyd3004pumgrtazaacujjxwzj36thtqsxskjy0r5urgqf6950x


Welcome to the party!


Room not found. Does that mean the chat is over?


A very good point. 🤣🤣


No, we should use the money on something useful.


Meanwhile, on the bird app... shitcoiners are torching $650k to put a dog wearing a hat on the Vegas sphere.

What the actual F. 😑 That's multiple freedom tech devs for multiple years. Only it's being spent on a dog, wearing a hat, projected on a big screen, in the desert.

I'm revising down my projections about the probability that humanity makes it.

https://twitter.com/blknoiz06/status/1767938938109415801


We overestimate what we can accomplish in a day but vastly underestimate what we can accomplish in a year.

Let's gooooooo!


I'll always remember riding in that random van with you in Costa Rica and you telling me all about what you had planned with Primal.

It's insane and inspiring to see the progress you and the team have made in just 1 year! 🤯

Here's to many more years! 🚀


Radical Candor is one of the best books for learning how to manage people well.

The extension here about being less precious definitely resonates with me as well.

https://world.hey.com/dhh/be-less-precious-b20bf8c3


ahhh... it's going to be super popular. 😂


is there any way to connect BTCPayServer? Really hunting for a non-custodial way to do lightning for merchants...


LOL. Europe doing what Europe does best... again. Ensuring that they fall behind even faster and their population suffers as a result.

Also, if they have to tell you "it's for your protection", it's almost certainly not...

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

nostr:note1egejze206vpa82undg940utlw7w9m4zksupm68d8u8tcy99k8dtqeltc66


Airpods that take your heart rate, breathing rate, etc.?


Yes. It basically snowed the whole time I was gone. 😅


GM Nostr. 🏔
https://m.primal.net/HkOw.jpg


F that. Stomp on toes where needed. 😅 better to help move things forward than worry about someone’s potentially hurt feelings


What’s the setup? Greenlight? Breez SDK?


I’m glad you keep sharing this stuff here. I agree it’s important that we learn from as many sources as possible.

That said, it’s really saying something about the open mindedness of the blue sky community that they dismiss any mention of bitcoin outright.

🤷♂ their loss.


I believe there are people working on the core gui right now actually.


Both situations are such a shitty waste of time, energy, and money. 😩


💯 it’s fucking disgusting.


💯 Very worrying. Hopefully they can appeal and get a judge that can actually use reason and logic properly.

nostr:note1f57sgytqwg03scl37ueflm7dptj4y8s2llefvsjz9rm86kc0guhqmywk94


Informative, for sure. 😂


 nostr:npub1zach44xjpc4yyhx6pgse2cj2pf98838kja03dv2e8ly8lfr094vqvm5dy5 will this be you soon? 🤣

nostr:note1ucq3y6wkg9rjc2535wf3k29ly30hxg3mt3fj8mpxu0n7n7f80sss5xcmw9


Yeah – I mean, it is fiat so... I guess that makes it free?


That feeling when you receive email updates from founders of startups you just know are complete zombie's from the ZIRP era. 💔

I feel for them, but I wish more were able to call a spade a spade and shut their companies down. 🪓

Working on the wrong thing is a waste of precious human energy. And we have too many important problems to solve for some of our brightest and most driven to be pouring their time and effort into stuff that's never going to work (and often isn't a big enough problem).


GM Nostr. 🌞

You know that feeling when you sleep 10 hours, but still wake up feeling dazed and confused? Yeah, that's me this morning.


Thanks! You too!


Interesting. Would love to catch up sometime and hear your thoughts on tap assets.


I felt very lucky to have the chance to speak last week about open source development and Nostr at the Bitcoin Ski Summit in Jackson, WY.

It was such a unique event; combining folks from mining, policy, and finance with developers, builders, and even pro athletes.

Skiing at Jackson Hole has been a bucket list item of mine for many years, but the overwhelming highlight of the week for me was hearing that the conference raised $200,000+ for open source projects to be funded through nostr:npub10pensatlcfwktnvjjw2dtem38n6rvw8g6fv73h84cuacxn4c28eqyfn34f, Brink, and HRF! 🚀

Thank you nostr:npub158mxap4gsexqeutj5sws2pfkngyq3lh726gex8wa7flt28tzhytq4jy85z for organizing and for everything else you do for the space! 🙏


yes!


I don't believe you!


What have you done to support open source today, anon?


Amazing to see that OpenSats is extending the LTS program to Nostr! 🙏👏🚀

LET'S GOOOOOO!

nostr:note17a5m86wcx7szqzy0z9nv9n60zn348qtfrhxzutacmd0u7qr2rzpsk23pct


Some incredible images in this collection...

https://www.historydefined.net/old-school-cool/


Depends on if you want to adjust ATH for inflation.


For all you youngins out there, if you haven't seen Office Space, watch it tonight.

nostr:note10udlt2jt0d6ag7rhec7lt8n2qkw4srth9rse82rsu557kpzkenzqn4egz9


Also, if your dedication to the cause ever wavers, remember that your taxes paid for the bureaucratic committees that decided this was a good idea...

nostr:note1zjcut0jpwhxh98nhg0t9340fd567thjtnzftkmcas3q6v7crcf8sapujjh


Look, I didn't make the rules... 😂


GM Nostr! You know what time it is...

https://m.primal.net/HjjG.gif


Bitcoin is a mirror reflection of that which we already are and will always will be, no matter what, if we consciously choose that. Remember that. 🧡 https://image.nostr.build/6d2c7899ac05d7ead94ffadb5221b209b609ea313cf73dde8e69515f3b58fc4b.jpg


Nice! Correct use of the legal system.


Nostr is a hive mind. How else do you explain these two notes side by side.
https://m.primal.net/HjZW.png


Can we sue them?


😵💫 USD is devaluing so quickly.


There are a lot of us standing here in that void though 😅


My time preference just keeps going down as the price goes up.

Is this what freedom feels like?


And patience. 🧘♂


IYKYK. 🤝


Oh hai there old friend. It’s been a while. 🙂
https://m.primal.net/HjPh.jpg


Absolutely, but 17 bucks for two bits of bread and a few slices of turkey is next level.


Didn’t want to name names, but… 🤣


Most people don’t aim high enough or think big enough.

You are capable of way more than you think.

nostr:note1ntj4yusag6nq3nz04w3pzmypfvexwtpknwc46jkle9hasf8kqh8szessfn


Insane. Didn’t even look that good.


Just went to buy a premade sandwich in the airport. $16.99! WTF America!?

I guess my fast will go a bit longer today.


I don’t know. I’m just repeating something a miner told me.

What? Do you expect me to actually check my facts? 😅


🫂 so glad you came brother.


1, obviously.


Love to see this so much. It reflects my own experiences over the last year. The space is so positive and supportive when you show proof of work and an optimistic attitude. 🫂

See you in Riga in August?


Sure. Very true but heat pumps don’t have any secondary outputs the way that miners do.

It’s also a very unoptimized space that needs to be explored.


Nice!!


Bitcoin can convert 95% of electrical energy into heat.

Let that sink in a moment.

How many uses of energy right now are just simply used to heat things?


GM Nostr! 🌞

Deep in the weeds with a lot of smart miners and pool operators here at the Bitcoin Ski Summit this morning.

It’s a part of the network I’m fascinated by and still have so much to learn.


💯 such a fun way to DJ with a group of people!


Let’s goooo!!!


Morning!


This is what I’m here for. More freedom, less autocracy.

nostr:note1mznefxjjh8vy3uyt5nvhsqlxgh8yytnqtzlcpn80wjdng6jpjg9sd9hykn


A dip for ants.
https://m.primal.net/HiNd.jpg


What are you eating to get 175g protein. That’s the part I always struggle with.


Nice!! Subscription donations for projects you want to support makes so much sense.

Gives project creators reassurance that they have ongoing funding to keep working.

nostr:note1r7vmzwf5ckehwt6ukm5lckcxr7gdxmh4ppw5sz3s7xumlqvfezjsntkf9s


GM!


It’s snowed more than 2m in the last week in Jackson Hole. 🤯

🚠⛷🤿
Pray for me.


Are you using something similar to what nostr:npub1l2vyh47mk2p0qlsku7hg0vn29faehy9hy34ygaclpn66ukqp3afqutajft did with the wiki?


Whoa! Is this Amethyst? nostr:npub1gcxzte5zlkncx26j68ez60fzkvtkm9e0vrwdcvsjakxf9mu9qewqlfnj5z


Doesn’t exist. 😅 it is hard to keep up with though, even for devs.

The nice thing is that you don’t have to memorize it all. The basic concepts apply across all the nips, just specific details that nearly everyone has to look up regularly.


Another day, another airport. ✈


💯 I was averaging over 20k steps per day and there isn’t a flat spot on the island. 😅

nostr:note1erjrkhzhvtz4euc7yj4eae3cuw8mqfya5ddq04cx32tdkwx04ehswnrg8h


Experiences are always worth it.

nostr:note1njkjq4mhrxjzklreru9347uzprnnsef7qwtj3ntclel98hw64m0qzvkajr


All the adventures!! 🤙


Wow. Thank you Madeira and nostr:npub1tdc9um9kqfp9cqvjqtwswzsvqzdsgzkpn9swamed3286kfwpaljsrr8r0y for the wonderful week.

My brain is broken from all the amazing conversations I had. Going to take me days to unpack it all.
https://m.primal.net/HhuT.jpg


Encourage the things you want to see in the world.

Shitcoiners shitcoin. Nostriches nostr. We have free money and free speech on our side. Shitcoiners only have scams.


Was an absolute pleasure to hang and talk. 🫂🤙 already looking forward to the next time


Fastest way to dump tokens on retail and turn a profit on your investment. A16Z have mastered this particular scam.


Never been so bullish on Nostr. And that’s saying something.

All the Nostr content (and quite a bit of the bitcoin content) here at #BitcoinAtlantis really highlighted how more and more people are starting to see what I originally saw when I first found Nostr. A way to rebuild the internet in a decentralized, user centric way.

LFG! 🤙⚡


Well done! 🤙


Get your lightning wallet connected so we can zap you!!


Let’s go!! 🤙⚡


Let’s go!! 🤙


Yes!! Well done and welcome. 🤙


Welcome!


Absolutely! Thank you for so much support of the ecosystem! 🙏


💯💯 next level!

nostr:note1tk3lwdqpeca68sm553hzyq83rdlq3gr8ep0sw98nwsl7tq9806hsyy8xed


Packed room for the #SovEng cohort demos. 🤙


It’s so impressive what Free Madeira has done building the Bitcoin community here. ⚡
https://m.primal.net/HhIO.jpg


#BitcoinAtlantis 🤦♂


#protip

nostr:note174c72y9equdsw6v2380604uy593rq8s7akyy8mqlgmxppuyl27us4zhh0t


GM Nostr. 🌞

Last day of #BitcoinAtlantic and kicking off with a panel about the recent #SovEng program. Inspiring stuff!
https://m.primal.net/HhHY.jpg


DVM maximalist


Yea please! Make tech fun again!


Ah yeah. Now I remember. It wouldn’t be all that hard. You’d probably need a new kind to denote a book and then  forms to create, edit, and comment on books


Which one is good reads again?


NDK


Damn… ain’t it good to be a gangsta


nostr:npub16c0nh3dnadzqpm76uctf5hqhe2lny344zsmpm6feee9p5rdxaa9q586nvr breaking down several early monetization models on Nostr here at #BitcoinAtlantis
https://m.primal.net/Hgan.jpg


nostr:npub16c0nh3dnadzqpm76uctf5hqhe2lny344zsmpm6feee9p5rdxaa9q586nvr just asked how many people in the crowd are already on Nostr and 60%+ out their hands up. 🤩
https://m.primal.net/Hgah.jpg


GN beautiful humans. Keep being super weird and messy and moody and brilliant and thoughtful and kind and angry and generally incredible. 🫂


You can sleep when you’re dead.


Wrong answer!


Walking home at 3am after an entire night of good conversations…

Is there anything better?


Would love something more interactive, like a stemstr or zap.stream clip or a long-form article. Something that isn't just a preview card.


Sometimes Damus, sometimes Primal, but yes, iOS.


🚨 Help wanted!

 I need a screenshot of "other stuff" showing in the feed in Amethyst for my talk at Bitcoin Atlantis.

Can someone with Amethyst send me a few shots?


🤣🤣🤣 nostr:note1un63qppajgl53tdkcynw25rnf4z5wp6avsz46jgpnd7g24avff4qx0dpv5


nostr:npub12rv5lskctqxxs2c8rf2zlzc7xx3qpvzs3w4etgemauy9thegr43sf485vg apparently the time is now!
https://m.primal.net/HgNw.jpg


I’d come!


GM Nostr! A good reminder that perspective is reality, but also isn’t exclusive.

nostr:note17efju2pegsh5klex3clkup3eqshas3xhracakmrapymth2ym2swq25fgrw


Ideally we’ll just get nostr:npub1mygerccwqpzyh9pvp6pv44rskv40zutkfs38t0hqhkvnwlhagp6s3psn5p sent to prison 😅


AND DON’T GO TO JAIL


💯💯💯 super magical.

The SovEng group has significantly advanced the thinking in Nostr.


Come do it in the alps. 😁 I know a place you can stay.


How to behave as a CEO... 💪 LFG!

nostr:note1u67u7cw3je5lj7mn6cex5nm0kxv3j8wnpnfmwg6mmejvq7awelmq8fs346


nostr:npub180cvv07tjdrrgpa0j7j7tmnyl2yr6yr7l8j4s3evf6u64th6gkwsyjh6w6 when do we get our two trust & safety leads? 🤣

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


#SovEng hike today was a blast! So many good conversations and plenty of laughs.
https://m.primal.net/Hfxk.jpg
https://m.primal.net/Hfxl.jpg
https://m.primal.net/Hfxm.jpg


You are not ready for #Basil.

nostr:note1n54fugcyszl496trgqexr0dxxm89hxrg7dre4u5q54hsa2vdtsmsneu6vx


GM Knut 🌅


lol. Yes.


🫡 let’s go!


This basically sums up all that is wrong with the world in one image.
https://m.primal.net/HfTu.jpg


The bolt cards are the trickiest part of the setup. But btcpay server + pos machines is an awesome combo already for normie merchants and their staff.


Primal iOS users, we need your input! 🫡

Assuming you’ve already upgraded to the latest 1.2 build, what are your top requests for the next release? Which new features would you like to see in Primal? What are the most annoying bugs that still need to get fixed?


⚡Zap nostr:npub1cf3zeytdnwgwzz5pk2ax0vvmmlzad03xcft4d50ejrfhsh8pxcdsefx7gk's post below 👇 nostr:note1332ahrdz760c7j0m37sp9s2rwvjsm5a7twll9f9gs7sth87sfa7q9e7j4x


GM Nostr! ✨

Feeling really grateful today to have so many good humans in my life. And yet to still be meeting more all the time!


# PAUL'S NSEC IS LIVE!


Not bad Madeira. Not bad at all. 😍
https://m.primal.net/Heer.jpg


Ooh this would be epic. nostr:note1np9dnycfmcshaf3f0tpwua3rackkgvyk2e3frc6edy4u8mef3wxqp6hqfd


Definitely done that before. It’s about the same look as when you pull out a sleeping bag in an airport to spend the night. 🤣


Reading some Ray I see.


Would be awesome. I’d pay for that much faster than a lounge.


Amazing! How close to the original landing sites are they?


Airports should have low key gyms with basic equipment.


Those are the worst. 😩 good luck.


Abandoned ignition?

What’s the difference here?


😂 sliding into your DMs too I see.


Mostly I just liked how short the domain was and how it indexed PRs as well as published NIPs


Alpine start this morning for Madeira.

LFG! 🔥 https://i.nostr.build/O3EY.jpg


Getting a lot of spam DMs again recently. Did we pop again? 😅


I wonder if anyone has ever tried this in court?


In all seriousness, this is such an amazingly sick setup for conferences and local communities. Experienced at Baltic Honeybadger last autumn and it’s only getting better.

Hats off to nostr:npub1j8y6tcdfw3q3f3h794s6un0gyc5742s0k5h5s2yqj0r70cpklqeqjavrvg nostr:npub13ljnkd633c7maxatymv3y2fqq8vt3qk7j3tt0vytv90eztwgha9qmfcfhw nostr:npub155m2k8ml8sqn8w4dhh689vdv0t2twa8dgvkpnzfggxf4wfughjsq2cdcvg nostr:npub1y24gz5gwucl79vtv4ctwpysl0r5m4xyzu2rgulnr44ks3t5mt92q4nz2ad nostr:npub1y67n93njx27lzmg9ua37ce7csvq4awvl6ynfqffzfssvdn7mq9vqlhq62h nostr:npub1zu5tdnq7w63fgmsfz85te7e6zeg7y2lt8q8r9jp5zcg68jfy73jqraqtgz and many others who worked hard to get so many devices and bolts cards ready for merchants. 👏 nostr:note1kyuqth94yf0xzkhxtynp0gduw46lkh0rl4x25mk5avawgkh49krsxwdxkj


https://i.nostr.build/A3z6.gif  nostr:note1kyuqth94yf0xzkhxtynp0gduw46lkh0rl4x25mk5avawgkh49krsxwdxkj


Just noticed one of the most satisfying animations in nostr:npub12vkcxr0luzwp8e673v29eqjhrr7p9vqq8asav85swaepclllj09sylpugg's iOS app.

When you tap a transaction the list animates away and the details animate in. It’s beautiful! 🥹


So far…. We need more.


Want to stop fiat mining and work in Bitcoin?

nostr:npub1dhvlm7aumyhy60mlv3lemk4newny4uwkdc9ahcskk4lvatytq4vq60lcq6 has laid it all out for you! You have no excuses now. Get after it!

nostr:note1st7e3zthta6m7taaqyxly5f6vzkhh39at083grejkaw7mjckx7esnzgkne


GM Nostr! Today is filled with last minute prep before flying to Madeira tomorrow morning! Can't wait.


Wow. This one brings me back.


😂 love it! I’m imagining everything from guitars, to bongos, to cellos right now and the varying degrees of difficulty in the negotiation.


Things are going to get really wild over the next several years. nostr:note10d8ek4n39ztwxwtvwtkg2nn4d67wgphxg3409gs90tfyrguf4xaqrhlceg


God that looks incredible.


That can certainly be arranged 😉


Very reasonable.


Bar Vicini

Bar Vicini is a bar and restaurant. They accept Bitcoin.

This event represents a place. View it on https://go.yondar.me/place/naddr1qq9yyctjyptxjcmfde5szrthwden5te0dehhxtnvdakqzymhwden5te0wp6hyurvv4cxzeewv4ej7qg5waehxw309aex2mrp0yhxgctdw4eju6t0qgspwwwexlwgcrrnwz4zwkze8rq3ncjug8mvgsd96dxx6wzs8ccndmcrqsqqpy5t6h2ajc


Hotel Crimea

Hotel Crimea is a bar, restaurant, and hotel in Chiavenna. They accept Bitcoin.

This event represents a place. View it on https://go.yondar.me/place/naddr1qqxysmm5v4kzqsmjd9kk2cgpp4mhxue69uhkummn9ekx7mqpzdmhxue69uhhqatjwpkx2urpvuhx2ue0qy28wumn8ghj7un9d3shjtnyv9kh2uewd9hsygqh88vn0hyvp3ehp238tpvn3sgeufwyrakygxjaxnrd8pgruvfkaupsgqqqj29s0pnzth


C2 Coworking

Co-working and unofficial home of Bitcoin Chiavenna

This event represents a place. View it on https://go.yondar.me/place/naddr1qqxyxv3qgdhhwmmjdd5kuecpp4mhxue69uhkummn9ekx7mqpzdmhxue69uhhqatjwpkx2urpvuhx2ue0qy28wumn8ghj7un9d3shjtnyv9kh2uewd9hsygqh88vn0hyvp3ehp238tpvn3sgeufwyrakygxjaxnrd8pgruvfkaupsgqqqj29sy3gq2d


When you guys come to chiavenna for my future conf we can brew a batch.

Of course, you’d have to come back a month later to drink it…


Nice!! Is it an extract kit or grain?


One Nostr service that I really miss is https://nips.be

I don't know what happened to the domain but it was sooo useful to get to Nips repo files quickly.


Science & Technology/Internet Technology


Today I am the “the meaning of life, the universe, and everything”.


Never enough builders…


Oh nice! Hadn’t seen this yet!


nostr:npub1l2vyh47mk2p0qlsku7hg0vn29faehy9hy34ygaclpn66ukqp3afqutajft (who else) had one that I’m not sure was ever merged but is in use. It involves creating an event defining a future key you might need to rotate to and then open timestamping that event to “notarize” the time.

I have some sort of odd mental block on remembering the number or the site on this one but I’m sure Pablo can fill in the blanks.


Website and identity design for a project / conference


Don’t need any dev work. Just design. Mostly visual and graphic design.


Thanks. Going to sift through replies more tomorrow. I’ll let you know.


Simple website. Looking for someone strong on the visual side. UX/UI not as much.


Only certain types of lists are mergable at this moment. What are you trying to merge?


Thanks! Looking forward to the dev stuff landing!


Thank you!!! 🙏


I need a web and graphic designer for some paid projects. Doesn’t have to be the same person but you’ve got to have incredible taste and the ability to start ASAP.

Please send me links to your previous work if you’re interested.

Also, Nostriches, please spread this one around! 🙏


Feb 17?? 🤨 https://i.nostr.build/XZWd.jpg


Who is fiatjaf?


GM Nostr! 🌞

Does anyone else get a lot of pleasure from donating things to second hand shops and trips to the dump?


I see you’re now converted too 😂


dem bull vibes starting early


GM Nostr! 🌞

Build the future you want to live in.

Also, I've heard it's a good idea to stay humble and stack sats.


It's just slightly different ways of encoding the same data.

Hex keys all look roughly the same, the NIP-19 encoded values help you quickly know what you're looking at.


no, the markdown is so painful.

haha, ok

I'll update it and send it over. Actaully, I'm going to put it up on the NIPs r


no, the markdown is so painful.

haha, ok

I'll update it and send it over. Actaully, I'm going to put it up on the NIPs re


no, the markdown is so painful.

haha, ok

I'll update it and send it over. Actaully, I'm going to put it up on the NIPs rp


no, the markdown is so painful.

haha, ok

I'll update it and send it over. Actaully, I'm going to put it up on the NIPs rpe


no, the markdown is so painful.

haha, ok

I'll update it and send it over. Actaully, I'm going to put it up on the NIPs rpeo


no, the markdown is so painful.

haha, ok

I'll update it and send it over. Actaully, I'm going to put it up on the NIPs rpeoo


no, the markdown is so painful.

haha, ok

I'll update it and send it over. Actaully, I'm going to put it up on the NIPs


no, the markdown is so painful.

haha, ok

I'll update it and send it over. Actaully, I'm going to put it up on the NIP


no, the markdown is so painful.

haha, ok

I'll update it and send it over. Actaully, I'm going to put it up on the NI


no, the markdown is so painful.

haha, ok

I'll update it and send it over. Actaully, I'm going to put it up on the


no, the markdown is so painful.

haha, ok

I'll update it and send it over. Actaully, I'm going to put it up on the nI


no, the markdown is so painful.

haha, ok

I'll update it and send it over. Actaully, I'm going to put it up on the n


no, the markdown is so painful.

haha, ok

I'll update it and send it over. Actaully, I'm going to put it up on the nIP


no, the markdown is so painful.

haha, ok

I'll update it and send it over. Actaully, I'm going to put it up on


no, the markdown is so painful.

haha, ok

I'll update it and send it over. Actaully, I'm going to put it up


no, the markdown is so painful.

haha, ok

I'll update it and send it over. Actaully, I'm going to put i


no, the markdown is so painful.

haha, ok

I'll update it and send it over. Actaully, I'm going to put it


no, the markdown is so painful.

haha, ok

I'll update it and send it over. Actaully, I'm going to put


no, the markdown is so painful.

haha, ok

I'll update it and send it over. Actaully, I'm going to p


no, the markdown is so painful.

haha, ok

I'll update it and send it over. Actaully, I'm going


no, the markdown is so painful.

haha, ok

I'll update it and send it over. Actaully, I


no, the markdown is so painful.

haha, ok

I'll update it and send it over. Actaully, I'm


no, the markdown is so painful.

haha, ok

I'll update it and send it over. Actaully, I'm going to


no, the markdown is so painful.

haha, ok

I'll update it and send it over. Actaully, I'm go


no, the markdown is so painful.

haha, ok

I'll update it and send it over. Actaully, I'm goin


no, the markdown is so painful.

haha, ok

I'll update it and send it over. Actau


no, the markdown is so painful.

haha, ok

I'll update it and send it over. A


no, the markdown is so painful.

haha, ok

I'll update it and send it over. Actaully


no, the markdown is so painful.

haha, ok

I'll update it and send it over. Act


no, the markdown is so painful.

haha, ok

I'll update it and send it over. Actaul


no, the markdown is so painful.

haha, ok

I'll update it and send it over. Ac


no, the markdown is so painful.

haha, ok

I'll update it and send it over


no, the markdown is so painful.

haha, ok

I'll update it and send i


no, the markdown is so painful.

haha, ok

I'll update it and send it


no, the markdown is so painful.

haha, ok

I'll update it and sen


no, the markdown is so painful.

haha, ok

I'll update it and send it ov


no, the markdown is so painful.

haha, ok

I'll update it and send it o


no, the markdown is so painful.

haha, ok

I'll update it an


no, the markdown is so painful.

haha, ok

I'll update it and


no, the markdown is so painful.

haha, ok

I'll update


no, the markdown is so painful.

haha, ok

I'll update it


no, the markdown is so painful.

haha, ok

I'll upd


no, the markdown is so painful.

haha, ok

I'll update i


no, the markdown is so painful.

haha, ok

I'll upda


no, the markdown is so painful.

haha, ok

I'll


no, the markdown is so painful.

haha, ok

I


no, the markdown is so painful.

haha, ok

I'l


no, the markdown is so painful.


no, the markdown is so painful


no, the markdown is so pain


no, the markdown is so p


no, the markdown is so painfu


no, the markdown is so pai


no, the markdown is so


no, the markdown


no, the markdown i


no, the markdown is


no, the markdo


no, the markd


no, the mark


no, the m


no, the mar


no, the marke


no, the


no


no, th


# NIP-46 - Nostr Remote Signing

## Rationale

Private keys should be exposed to as few systems - apps, operating systems, devices - as possible as each system adds to the attack surface.

This NIP describes a method for 2-way communication between a remote signer and a Nostr client. The remote signer could be, for example, a hardware device dedicated to signing Nostr events, while the client is a normal Nostr client.

Currently, NIP-46 uses a JSON-RPC style flow where you pass encrypted commands in `kind:24133` events. This rewrite strives to remove as much of the JSON-RPC as possible and uses new event kinds that correspond to each command a client might send and the three types of responses that remote signers can send back.

This also allows us to incorporate [NIP-44](https://github.com/nostr-protocol/nips/blob/master/44.md) encryption in a way that doesn't break current NIP-46 implementations.

## Terminology

-   **Local keypair**: A local public and private key-pair used to encrypt content and communicate with the remote signer.
-   **Remote pubkey**: The public key that the user wants to sign as. The remote signer has control of the private key that matches this public key.

## The flow

### Client-side

1. Clients need two things to start: a local keypair and the pubkey that the user wants to use for signing events.
    - The local keypair is roughly disposable. E.g. - it's ok to store it locally (ideally encrypted) for some period of time. Once authenticated, remote signers can choose to trust this local keypair for a period of time. This local keypair can be deleted/rotated at will by the client and will only trigger a new auth challenge for the user.
    - The remote pubkey is the pubkey that the user is trying to sign in / sign as. This can be fetched with an NIP-05 or entered directly by the user.
2. Clients use the local keypair for encrypting request events that they send to remote signers.

### Remote signer-side

1. Remote signers manage the private key of the user that will be used for signing. There are many different remote signers out there (e.g. Nsecbunker, Amber, etc.) that operate in different ways and have different features.
2. Remote signers wait for request events and then act.

### Example flow for signing an event

Coming soon...

### Example Oauth-like flow to create a new user account with Nsecbunker

Coming soon...

## Request Events `Multiple kinds`

Request events take the following form. In order simplify requests and payloads as much as possible, there are different event kinds for each command which help remote signers to understand the request and process the content properly.

Clients use the `req` tag (containing a unique request id value) to listen for the response to their command.

```json
{
    "id": <id>,
    "kind": <kind for command>, // Each command has it's own kind
    "pubkey": <local pubkey of the user>,
    "content": <nip44(<request>)>,
    "tags": [["p", <remote pubkey>]],
    "created_at": <unix timestamp in seconds>,
}
```

| Kind    | Command                  | Content field (always NIP-44 encrypted)     | Data Type               |
| ------- | ------------------------ | ------------------------------------------- | ----------------------- |
| `24140` | `create_account`         | [username, domain, email (optional)]        | JSON stringified array  |
| `24141` | `connect`                | -                                           | null                    |
| `24142` | `sign_event`             | nostr event to sign                         | JSON stringified object |
| `24143` | `ping`                   | -                                           | null                    |
| `24144` | `get_relays`             | -                                           | null                    |
| `24145` | `nip04_encrypt`          | [third_party_pubkey, plaintext to encrypt]  | JSON stringified tuple  |
| `24146` | `nip04_decrypt`          | [third_party_pubkey, ciphertext to decrypt] | JSON stringified tuple  |
| `24147` | `nip44_conversation_key` | third_party_pubkey                          | string                  |
| `24148` | `nip44_encrypt`          | [third_party_pubkey, plaintext to encrypt]  | JSON stringified tuple  |
| `24149` | `nip44_decrypt`          | [third_party_pubkey, ciphertext to decrypt] | JSON stringified tuple  |

## Response Event `kind: 24136`

```json
{
    "id": <id>,
    "kind": 24136,
    "pubkey": <pubkey of the remote signer>,
    "content": <nip44(<response>)>,
    "tags": [["p", <local keypair pubkey>], ["e", <id of the request event>]],
    "created_at": <unix timestamp in seconds>,
}
```

#### Response content to various kinds of requests. Response kind is always `24136`

| Request kind | Command                  | Response Content field (always NIP-44 encrypted) | Response Data Type      |
| ------------ | ------------------------ | ------------------------------------------------ | ----------------------- |
| `24140`      | `create_account`         | newly created pubkey                             | string                  |
| `24141`      | `connect`                | "ack"                                            | string                  |
| `24142`      | `sign_event`             | nostr event with signature                       | JSON stringified object |
| `24143`      | `ping`                   | "pong"                                           | string                  |
| `24144`      | `get_relays`             | array of relay objects                           | JSON stringified object |
| `24145`      | `nip04_encrypt`          | ciphertext                                       | string                  |
| `24146`      | `nip04_decrypt`          | plaintext                                        | string                  |
| `24147`      | `nip44_conversation_key` | conversation key                                 | string                  |
| `24148`      | `nip44_encrypt`          | ciphertext                                       | string                  |
| `24149`      | `nip44_decrypt`          | plaintext                                        | string                  |

## Auth Challenge Event `kind: 24137`

All requests / commands can potentially trigger an auth challenge, which is a special kind of repsonse event that tells the client that the user needs to provide a password or another form of authentication before the remote signer will process their request. The response content is always a URL that the client should display to the user. This URL is a page that is created/controlled by the remote signer in a way that allows the signer to collect the needed data before proceeding.

```json
{
    "id": <id>,
    "kind": 24137,
    "pubkey": <pubkey of the remote signer>,
    "content": <nip44(<auth_url>)>,
    "tags": [["p", <local keypair pubkey>], ["e", <id of the request event>]],
    "created_at": <unix timestamp in seconds>,
}
```

## Error Event `kind: 24138`

Error response (a separate kind in order to make errors easier to handle on the client side).
Content is NIP-44 encrypted and uses the following format: `CODE: Error message text`. [Error codes](#error-codes) are detailed below.

```json
{
    "id": <id>,
    "kind": 24138,
    "pubkey": <pubkey of the remote signer>,
    "content": <nip44(<error>)>,
    "tags": [["p", <local keypair pubkey>], ["e", <id of the request event>]],
    "created_at": <unix timestamp in seconds>,
}
```

### Error Codes

-   `UNAUTHORIZED`: Returned if the user fails the auth challenge.
-   `NOT FOUND`: Returned if the remote signer doesn't have access to the remote pubkeys corresponding private key.
-   `UNPROCESSABLE`: Returned if a request is malformed (e.g. incorrect request content).
-   `OTHER`: Other error.

## TODO

-   [ ] Create diagrams showing the flow for normal requests and for create_account
-   [ ] Describe/Show the various client-side checks needed (NIP-05 of bunker, availability of usernames, etc.)

## Feedback & Buy in

Who else has implemented NIP-46 in it's current form?

-   [ ] fiatjaf
-   [ ] pablof7z
-   [ ] hodlbod
-   [ ] hazrd149
-   [ ] Kieran
-   [ ] Zach from Flare
-   [ ] Mike D
-   [ ] Reya
-   [ ] Alex Gleason
-   [ ] Monlovesmango

## References

-   [NIP-44 - Encryption](https://github.com/nostr-protocol/nips/blob/master/44.md)


kind: `create_account`
params:

{
 "kind": <create-account>
  content: nip44_encrypt({
    username: "bal",
  domain: "example.com",
  email: "foo@bar.com"
  })
}

I'm so blown away that this works as well as it does

😂 WEBSOCKET BEAR!!!!

I invited people to watch us type on nostr 😂

The one thing that dosen't seem to work is that we can't type at the same time. Early prototype issue I guess. You'd have to have a changes queue to apply things at the same time

Yup, I wrote it very quickly last night; it's very stupid and inefficient, it's not even doing diffs, literally each keystroke is signing the ENTIRE content 😂

😂 love it

https://github.com/pablof7z/collab

fun. Going to definitely have a look at using this in a few places.

right, back to NIP-46, I'm going to change these arrays to objects. What do you think about the bunker:// url, needs to stay? Or can we just use NIP-89 to look up bunkers

the NIP-89 part is a different flow though; we need the bunker:// stuff still for login

you go to coracle, watch the spinners

what about using NIP-05 for that though. If you gave the NIP-05 you're using on the bunker you should sign in as that remote pubkey right?

what if you don't have a NIP-05 or if you don't have NIP-46 entries on the nip-05? nah, we need the bunker:// stuff

ok, fine 🙄

hahaha

paste your NIP-46 as is and we can collab in this one

actually, let's make a new NIP-23 for it; I'll drop the URL here


kind: `create_account`
params:

{
 "kind": <create-account>
  content: nip44_encrypt({
    username: "bal",
  domain: "example.com",
  email: "foo@bar.com"
  })
}

I'm so blown away that this works as well as it does

😂 WEBSOCKET BEAR!!!!

I invited people to watch us type on nostr 😂

The one thing that dosen't seem to work is that we can't type at the same time. Early prototype issue I guess. You'd have to have a changes queue to apply things at the same time

Yup, I wrote it very quickly last night; it's very stupid and inefficient, it's not even doing diffs, literally each keystroke is signing the ENTIRE content 😂

😂 love it

https://github.com/pablof7z/collab

fun. Going to definitely have a look at using this in a few places.

right, back to NIP-46, I'm going to change these arrays to objects. What do you think about the bunker:// url, needs to stay? Or can we just use NIP-89 to look up bunkers

the NIP-89 part is a different flow though; we need the bunker:// stuff still for login

you go to coracle, watch the spinners

what about using NIP-05 for that though. If you gave the NIP-05 you're using on the bunker you should sign in as that remote pubkey right?

what if you don't have a NIP-05 or if you don't have NIP-46 entries on the nip-05? nah, we need the bunker:// stuff

ok, fine 🙄


kind: `create_account`
params:

{
 "kind": <create-account>
  content: nip44_encrypt({
    username: "bal",
  domain: "example.com",
  email: "foo@bar.com"
  })
}

I'm so blown away that this works as well as it does

😂 WEBSOCKET BEAR!!!!

I invited people to watch us type on nostr 😂

The one thing that dosen't seem to work is that we can't type at the same time. Early prototype issue I guess. You'd have to have a changes queue to apply things at the same time

Yup, I wrote it very quickly last night; it's very stupid and inefficient, it's not even doing diffs, literally each keystroke is signing the ENTIRE content 😂

😂 love it

https://github.com/pablof7z/collab

fun. Going to definitely have a look at using this in a few places.

right, back to NIP-46, I'm going to change these arrays to objects. What do you think about the bunker:// url, needs to stay? Or can we just use NIP-89 to look up bunkers

the NIP-89 part is a different flow though; we need the bunker:// stuff still for login

you go to coracle, watch the spinners

what about using NIP-05 for that though. If you gave the NIP-05 you're using on the bunker you should sign in as that remote pubkey right?

what if you don't have a NIP-05 or if you don't have NIP-46 entries on the nip-05? nah, we need the bunker:// stuff

ok, fin


kind: `create_account`
params:

{
 "kind": <create-account>
  content: nip44_encrypt({
    username: "bal",
  domain: "example.com",
  email: "foo@bar.com"
  })
}

I'm so blown away that this works as well as it does

😂 WEBSOCKET BEAR!!!!

I invited people to watch us type on nostr 😂

The one thing that dosen't seem to work is that we can't type at the same time. Early prototype issue I guess. You'd have to have a changes queue to apply things at the same time

Yup, I wrote it very quickly last night; it's very stupid and inefficient, it's not even doing diffs, literally each keystroke is signing the ENTIRE content 😂

😂 love it

https://github.com/pablof7z/collab

fun. Going to definitely have a look at using this in a few places.

right, back to NIP-46, I'm going to change these arrays to objects. What do you think about the bunker:// url, needs to stay? Or can we just use NIP-89 to look up bunkers

the NIP-89 part is a different flow though; we need the bunker:// stuff still for login

you go to coracle, watch the spinners

what about using NIP-05 for that though. If you gave the NIP-05 you're using on the bunker you should sign in as that remote pubkey right?

what if you don't have a NIP-05 or if you don't have NIP-46 entries on the nip-05? nah, we need the bunker:// stuff

ok, fine


kind: `create_account`
params:

{
 "kind": <create-account>
  content: nip44_encrypt({
    username: "bal",
  domain: "example.com",
  email: "foo@bar.com"
  })
}

I'm so blown away that this works as well as it does

😂 WEBSOCKET BEAR!!!!

I invited people to watch us type on nostr 😂

The one thing that dosen't seem to work is that we can't type at the same time. Early prototype issue I guess. You'd have to have a changes queue to apply things at the same time

Yup, I wrote it very quickly last night; it's very stupid and inefficient, it's not even doing diffs, literally each keystroke is signing the ENTIRE content 😂

😂 love it

https://github.com/pablof7z/collab

fun. Going to definitely have a look at using this in a few places.

right, back to NIP-46, I'm going to change these arrays to objects. What do you think about the bunker:// url, needs to stay? Or can we just use NIP-89 to look up bunkers

the NIP-89 part is a different flow though; we need the bunker:// stuff still for login

you go to coracle, watch the spinners

what about using NIP-05 for that though. If you gave the NIP-05 you're using on the bunker you should sign in as that remote pubkey right?

what if you don't have a NIP-05 or if you don't have NIP-46 entries on the nip-05? nah, we need the bunker:// stuff

ok, fi


kind: `create_account`
params:

{
 "kind": <create-account>
  content: nip44_encrypt({
    username: "bal",
  domain: "example.com",
  email: "foo@bar.com"
  })
}

I'm so blown away that this works as well as it does

😂 WEBSOCKET BEAR!!!!

I invited people to watch us type on nostr 😂

The one thing that dosen't seem to work is that we can't type at the same time. Early prototype issue I guess. You'd have to have a changes queue to apply things at the same time

Yup, I wrote it very quickly last night; it's very stupid and inefficient, it's not even doing diffs, literally each keystroke is signing the ENTIRE content 😂

😂 love it

https://github.com/pablof7z/collab

fun. Going to definitely have a look at using this in a few places.

right, back to NIP-46, I'm going to change these arrays to objects. What do you think about the bunker:// url, needs to stay? Or can we just use NIP-89 to look up bunkers

the NIP-89 part is a different flow though; we need the bunker:// stuff still for login

you go to coracle, watch the spinners

what about using NIP-05 for that though. If you gave the NIP-05 you're using on the bunker you should sign in as that remote pubkey right?

what if you don't have a NIP-05 or if you don't have NIP-46 entries on the nip-05? nah, we need the bunker:// stuff

ok


kind: `create_account`
params:

{
 "kind": <create-account>
  content: nip44_encrypt({
    username: "bal",
  domain: "example.com",
  email: "foo@bar.com"
  })
}

I'm so blown away that this works as well as it does

😂 WEBSOCKET BEAR!!!!

I invited people to watch us type on nostr 😂

The one thing that dosen't seem to work is that we can't type at the same time. Early prototype issue I guess. You'd have to have a changes queue to apply things at the same time

Yup, I wrote it very quickly last night; it's very stupid and inefficient, it's not even doing diffs, literally each keystroke is signing the ENTIRE content 😂

😂 love it

https://github.com/pablof7z/collab

fun. Going to definitely have a look at using this in a few places.

right, back to NIP-46, I'm going to change these arrays to objects. What do you think about the bunker:// url, needs to stay? Or can we just use NIP-89 to look up bunkers

the NIP-89 part is a different flow though; we need the bunker:// stuff still for login

you go to coracle, watch the spinners

what about using NIP-05 for that though. If you gave the NIP-05 you're using on the bunker you should sign in as that remote pubkey right?

what if you don't have a NIP-05 or if you don't have NIP-46 entries on the nip-05? nah, we need the bunker:// stuff


kind: `create_account`
params:

{
 "kind": <create-account>
  content: nip44_encrypt({
    username: "bal",
  domain: "example.com",
  email: "foo@bar.com"
  })
}

I'm so blown away that this works as well as it does

😂 WEBSOCKET BEAR!!!!

I invited people to watch us type on nostr 😂

The one thing that dosen't seem to work is that we can't type at the same time. Early prototype issue I guess. You'd have to have a changes queue to apply things at the same time

Yup, I wrote it very quickly last night; it's very stupid and inefficient, it's not even doing diffs, literally each keystroke is signing the ENTIRE content 😂

😂 love it

https://github.com/pablof7z/collab

fun. Going to definitely have a look at using this in a few places.

right, back to NIP-46, I'm going to change these arrays to objects. What do you think about the bunker:// url, needs to stay? Or can we just use NIP-89 to look up bunkers

the NIP-89 part is a different flow though; we need the bunker:// stuff still for login

you go to coracle, watch the spinners

what about using NIP-05 for that though. If you gave the NIP-05 you're using on the bunker you should sign in as that remote pubkey right?


kind: `create_account`
params:

{
 "kind": <create-account>
  content: nip44_encrypt({
    username: "bal",
  domain: "example.com",
  email: "foo@bar.com"
  })
}

I'm so blown away that this works as well as it does

😂 WEBSOCKET BEAR!!!!

I invited people to watch us type on nostr 😂

The one thing that dosen't seem to work is that we can't type at the same time. Early prototype issue I guess. You'd have to have a changes queue to apply things at the same time

Yup, I wrote it very quickly last night; it's very stupid and inefficient, it's not even doing diffs, literally each keystroke is signing the ENTIRE content 😂

😂 love it

https://github.com/pablof7z/collab

fun. Going to definitely have a look at using this in a few places.

right, back to NIP-46, I'm going to change these arrays to objects. What do you think about the bunker:// url, needs to stay? Or can we just use NIP-89 to look up bunkers

the NIP-89 part is a different flow though; we need the bunker:// stuff still for login

you go to coracle, watch the spinners

what about using NIP-05 for that though. If you gave the NIP-05 you're using on the bunker you should sign in as that remote pubkey right


kind: `create_account`
params:

{
 "kind": <create-account>
  content: nip44_encrypt({
    username: "bal",
  domain: "example.com",
  email: "foo@bar.com"
  })
}

I'm so blown away that this works as well as it does

😂 WEBSOCKET BEAR!!!!

I invited people to watch us type on nostr 😂

The one thing that dosen't seem to work is that we can't type at the same time. Early prototype issue I guess. You'd have to have a changes queue to apply things at the same time

Yup, I wrote it very quickly last night; it's very stupid and inefficient, it's not even doing diffs, literally each keystroke is signing the ENTIRE content 😂

😂 love it

https://github.com/pablof7z/collab

fun. Going to definitely have a look at using this in a few places.

right, back to NIP-46, I'm going to change these arrays to objects. What do you think about the bunker:// url, needs to stay? Or can we just use NIP-89 to look up bunkers

the NIP-89 part is a different flow though; we need the bunker:// stuff still for login

you go to coracle, watch the spinners

what about using NIP-05 for that though. If you gave the NIP-05 you're using on the bunker you should sign in as that remote pubkey ri


kind: `create_account`
params:

{
 "kind": <create-account>
  content: nip44_encrypt({
    username: "bal",
  domain: "example.com",
  email: "foo@bar.com"
  })
}

I'm so blown away that this works as well as it does

😂 WEBSOCKET BEAR!!!!

I invited people to watch us type on nostr 😂

The one thing that dosen't seem to work is that we can't type at the same time. Early prototype issue I guess. You'd have to have a changes queue to apply things at the same time

Yup, I wrote it very quickly last night; it's very stupid and inefficient, it's not even doing diffs, literally each keystroke is signing the ENTIRE content 😂

😂 love it

https://github.com/pablof7z/collab

fun. Going to definitely have a look at using this in a few places.

right, back to NIP-46, I'm going to change these arrays to objects. What do you think about the bunker:// url, needs to stay? Or can we just use NIP-89 to look up bunkers

the NIP-89 part is a different flow though; we need the bunker:// stuff still for login

you go to coracle, watch the spinners

what about using NIP-05 for that though. If you gave the NIP-05 you're using on the bunker you should sign in as that remote pubkey righ


kind: `create_account`
params:

{
 "kind": <create-account>
  content: nip44_encrypt({
    username: "bal",
  domain: "example.com",
  email: "foo@bar.com"
  })
}

I'm so blown away that this works as well as it does

😂 WEBSOCKET BEAR!!!!

I invited people to watch us type on nostr 😂

The one thing that dosen't seem to work is that we can't type at the same time. Early prototype issue I guess. You'd have to have a changes queue to apply things at the same time

Yup, I wrote it very quickly last night; it's very stupid and inefficient, it's not even doing diffs, literally each keystroke is signing the ENTIRE content 😂

😂 love it

https://github.com/pablof7z/collab

fun. Going to definitely have a look at using this in a few places.

right, back to NIP-46, I'm going to change these arrays to objects. What do you think about the bunker:// url, needs to stay? Or can we just use NIP-89 to look up bunkers

the NIP-89 part is a different flow though; we need the bunker:// stuff still for login

you go to coracle, watch the spinners

what about using NIP-05 for that though. If you gave the NIP-05 you're using on the bunker you should sign in as that remote pubke


kind: `create_account`
params:

{
 "kind": <create-account>
  content: nip44_encrypt({
    username: "bal",
  domain: "example.com",
  email: "foo@bar.com"
  })
}

I'm so blown away that this works as well as it does

😂 WEBSOCKET BEAR!!!!

I invited people to watch us type on nostr 😂

The one thing that dosen't seem to work is that we can't type at the same time. Early prototype issue I guess. You'd have to have a changes queue to apply things at the same time

Yup, I wrote it very quickly last night; it's very stupid and inefficient, it's not even doing diffs, literally each keystroke is signing the ENTIRE content 😂

😂 love it

https://github.com/pablof7z/collab

fun. Going to definitely have a look at using this in a few places.

right, back to NIP-46, I'm going to change these arrays to objects. What do you think about the bunker:// url, needs to stay? Or can we just use NIP-89 to look up bunkers

the NIP-89 part is a different flow though; we need the bunker:// stuff still for login

you go to coracle, watch the spinners

what about using NIP-05 for that though. If you gave the NIP-05 you're using on the bunker you should sign in as that remote pubkey


kind: `create_account`
params:

{
 "kind": <create-account>
  content: nip44_encrypt({
    username: "bal",
  domain: "example.com",
  email: "foo@bar.com"
  })
}

I'm so blown away that this works as well as it does

😂 WEBSOCKET BEAR!!!!

I invited people to watch us type on nostr 😂

The one thing that dosen't seem to work is that we can't type at the same time. Early prototype issue I guess. You'd have to have a changes queue to apply things at the same time

Yup, I wrote it very quickly last night; it's very stupid and inefficient, it's not even doing diffs, literally each keystroke is signing the ENTIRE content 😂

😂 love it

https://github.com/pablof7z/collab

fun. Going to definitely have a look at using this in a few places.

right, back to NIP-46, I'm going to change these arrays to objects. What do you think about the bunker:// url, needs to stay? Or can we just use NIP-89 to look up bunkers

the NIP-89 part is a different flow though; we need the bunker:// stuff still for login

you go to coracle, watch the spinners

what about using NIP-05 for that though. If you gave the NIP-05 you're using on the bunker you should sign in as that remote


kind: `create_account`
params:

{
 "kind": <create-account>
  content: nip44_encrypt({
    username: "bal",
  domain: "example.com",
  email: "foo@bar.com"
  })
}

I'm so blown away that this works as well as it does

😂 WEBSOCKET BEAR!!!!

I invited people to watch us type on nostr 😂

The one thing that dosen't seem to work is that we can't type at the same time. Early prototype issue I guess. You'd have to have a changes queue to apply things at the same time

Yup, I wrote it very quickly last night; it's very stupid and inefficient, it's not even doing diffs, literally each keystroke is signing the ENTIRE content 😂

😂 love it

https://github.com/pablof7z/collab

fun. Going to definitely have a look at using this in a few places.

right, back to NIP-46, I'm going to change these arrays to objects. What do you think about the bunker:// url, needs to stay? Or can we just use NIP-89 to look up bunkers

the NIP-89 part is a different flow though; we need the bunker:// stuff still for login

you go to coracle, watch the spinners

what about using NIP-05 for that though. If you gave the NIP-05 you're using on the bunker you should sign in as that remot


kind: `create_account`
params:

{
 "kind": <create-account>
  content: nip44_encrypt({
    username: "bal",
  domain: "example.com",
  email: "foo@bar.com"
  })
}

I'm so blown away that this works as well as it does

😂 WEBSOCKET BEAR!!!!

I invited people to watch us type on nostr 😂

The one thing that dosen't seem to work is that we can't type at the same time. Early prototype issue I guess. You'd have to have a changes queue to apply things at the same time

Yup, I wrote it very quickly last night; it's very stupid and inefficient, it's not even doing diffs, literally each keystroke is signing the ENTIRE content 😂

😂 love it

https://github.com/pablof7z/collab

fun. Going to definitely have a look at using this in a few places.

right, back to NIP-46, I'm going to change these arrays to objects. What do you think about the bunker:// url, needs to stay? Or can we just use NIP-89 to look up bunkers

the NIP-89 part is a different flow though; we need the bunker:// stuff still for login

you go to coracle, watch the spinners

what about using NIP-05 for that though. If you gave the NIP-05 you're using on the bunker you should sign in as that remote pub


kind: `create_account`
params:

{
 "kind": <create-account>
  content: nip44_encrypt({
    username: "bal",
  domain: "example.com",
  email: "foo@bar.com"
  })
}

I'm so blown away that this works as well as it does

😂 WEBSOCKET BEAR!!!!

I invited people to watch us type on nostr 😂

The one thing that dosen't seem to work is that we can't type at the same time. Early prototype issue I guess. You'd have to have a changes queue to apply things at the same time

Yup, I wrote it very quickly last night; it's very stupid and inefficient, it's not even doing diffs, literally each keystroke is signing the ENTIRE content 😂

😂 love it

https://github.com/pablof7z/collab

fun. Going to definitely have a look at using this in a few places.

right, back to NIP-46, I'm going to change these arrays to objects. What do you think about the bunker:// url, needs to stay? Or can we just use NIP-89 to look up bunkers

the NIP-89 part is a different flow though; we need the bunker:// stuff still for login

you go to coracle, watch the spinners

what about using NIP-05 for that though. If you gave the NIP-05 you're using on the bunker you should sign in as that remote p


kind: `create_account`
params:

{
 "kind": <create-account>
  content: nip44_encrypt({
    username: "bal",
  domain: "example.com",
  email: "foo@bar.com"
  })
}

I'm so blown away that this works as well as it does

😂 WEBSOCKET BEAR!!!!

I invited people to watch us type on nostr 😂

The one thing that dosen't seem to work is that we can't type at the same time. Early prototype issue I guess. You'd have to have a changes queue to apply things at the same time

Yup, I wrote it very quickly last night; it's very stupid and inefficient, it's not even doing diffs, literally each keystroke is signing the ENTIRE content 😂

😂 love it

https://github.com/pablof7z/collab

fun. Going to definitely have a look at using this in a few places.

right, back to NIP-46, I'm going to change these arrays to objects. What do you think about the bunker:// url, needs to stay? Or can we just use NIP-89 to look up bunkers

the NIP-89 part is a different flow though; we need the bunker:// stuff still for login

you go to coracle, watch the spinners

what about using NIP-05 for that though. If you gave the NIP-05 you're using on the bunker you should sign in as that


kind: `create_account`
params:

{
 "kind": <create-account>
  content: nip44_encrypt({
    username: "bal",
  domain: "example.com",
  email: "foo@bar.com"
  })
}

I'm so blown away that this works as well as it does

😂 WEBSOCKET BEAR!!!!

I invited people to watch us type on nostr 😂

The one thing that dosen't seem to work is that we can't type at the same time. Early prototype issue I guess. You'd have to have a changes queue to apply things at the same time

Yup, I wrote it very quickly last night; it's very stupid and inefficient, it's not even doing diffs, literally each keystroke is signing the ENTIRE content 😂

😂 love it

https://github.com/pablof7z/collab

fun. Going to definitely have a look at using this in a few places.

right, back to NIP-46, I'm going to change these arrays to objects. What do you think about the bunker:// url, needs to stay? Or can we just use NIP-89 to look up bunkers

the NIP-89 part is a different flow though; we need the bunker:// stuff still for login

you go to coracle, watch the spinners

what about using NIP-05 for that though. If you gave the NIP-05 you're using on the bunker you should sign in as that rem


kind: `create_account`
params:

{
 "kind": <create-account>
  content: nip44_encrypt({
    username: "bal",
  domain: "example.com",
  email: "foo@bar.com"
  })
}

I'm so blown away that this works as well as it does

😂 WEBSOCKET BEAR!!!!

I invited people to watch us type on nostr 😂

The one thing that dosen't seem to work is that we can't type at the same time. Early prototype issue I guess. You'd have to have a changes queue to apply things at the same time

Yup, I wrote it very quickly last night; it's very stupid and inefficient, it's not even doing diffs, literally each keystroke is signing the ENTIRE content 😂

😂 love it

https://github.com/pablof7z/collab

fun. Going to definitely have a look at using this in a few places.

right, back to NIP-46, I'm going to change these arrays to objects. What do you think about the bunker:// url, needs to stay? Or can we just use NIP-89 to look up bunkers

the NIP-89 part is a different flow though; we need the bunker:// stuff still for login

you go to coracle, watch the spinners

what about using NIP-05 for that though. If you gave the NIP-05 you're using on the bunker you should sign in as that remo


kind: `create_account`
params:

{
 "kind": <create-account>
  content: nip44_encrypt({
    username: "bal",
  domain: "example.com",
  email: "foo@bar.com"
  })
}

I'm so blown away that this works as well as it does

😂 WEBSOCKET BEAR!!!!

I invited people to watch us type on nostr 😂

The one thing that dosen't seem to work is that we can't type at the same time. Early prototype issue I guess. You'd have to have a changes queue to apply things at the same time

Yup, I wrote it very quickly last night; it's very stupid and inefficient, it's not even doing diffs, literally each keystroke is signing the ENTIRE content 😂

😂 love it

https://github.com/pablof7z/collab

fun. Going to definitely have a look at using this in a few places.

right, back to NIP-46, I'm going to change these arrays to objects. What do you think about the bunker:// url, needs to stay? Or can we just use NIP-89 to look up bunkers

the NIP-89 part is a different flow though; we need the bunker:// stuff still for login

you go to coracle, watch the spinners

what about using NIP-05 for that though. If you gave the NIP-05 you're using on the bunker you should sign in


kind: `create_account`
params:

{
 "kind": <create-account>
  content: nip44_encrypt({
    username: "bal",
  domain: "example.com",
  email: "foo@bar.com"
  })
}

I'm so blown away that this works as well as it does

😂 WEBSOCKET BEAR!!!!

I invited people to watch us type on nostr 😂

The one thing that dosen't seem to work is that we can't type at the same time. Early prototype issue I guess. You'd have to have a changes queue to apply things at the same time

Yup, I wrote it very quickly last night; it's very stupid and inefficient, it's not even doing diffs, literally each keystroke is signing the ENTIRE content 😂

😂 love it

https://github.com/pablof7z/collab

fun. Going to definitely have a look at using this in a few places.

right, back to NIP-46, I'm going to change these arrays to objects. What do you think about the bunker:// url, needs to stay? Or can we just use NIP-89 to look up bunkers

the NIP-89 part is a different flow though; we need the bunker:// stuff still for login

you go to coracle, watch the spinners

what about using NIP-05 for that though. If you gave the NIP-05 you're using on the bunker you should sign in as


kind: `create_account`
params:

{
 "kind": <create-account>
  content: nip44_encrypt({
    username: "bal",
  domain: "example.com",
  email: "foo@bar.com"
  })
}

I'm so blown away that this works as well as it does

😂 WEBSOCKET BEAR!!!!

I invited people to watch us type on nostr 😂

The one thing that dosen't seem to work is that we can't type at the same time. Early prototype issue I guess. You'd have to have a changes queue to apply things at the same time

Yup, I wrote it very quickly last night; it's very stupid and inefficient, it's not even doing diffs, literally each keystroke is signing the ENTIRE content 😂

😂 love it

https://github.com/pablof7z/collab

fun. Going to definitely have a look at using this in a few places.

right, back to NIP-46, I'm going to change these arrays to objects. What do you think about the bunker:// url, needs to stay? Or can we just use NIP-89 to look up bunkers

the NIP-89 part is a different flow though; we need the bunker:// stuff still for login

you go to coracle, watch the spinners

what about using NIP-05 for that though. If you gave the NIP-05 you're using on the bunker you should sign in a


kind: `create_account`
params:

{
 "kind": <create-account>
  content: nip44_encrypt({
    username: "bal",
  domain: "example.com",
  email: "foo@bar.com"
  })
}

I'm so blown away that this works as well as it does

😂 WEBSOCKET BEAR!!!!

I invited people to watch us type on nostr 😂

The one thing that dosen't seem to work is that we can't type at the same time. Early prototype issue I guess. You'd have to have a changes queue to apply things at the same time

Yup, I wrote it very quickly last night; it's very stupid and inefficient, it's not even doing diffs, literally each keystroke is signing the ENTIRE content 😂

😂 love it

https://github.com/pablof7z/collab

fun. Going to definitely have a look at using this in a few places.

right, back to NIP-46, I'm going to change these arrays to objects. What do you think about the bunker:// url, needs to stay? Or can we just use NIP-89 to look up bunkers

the NIP-89 part is a different flow though; we need the bunker:// stuff still for login

you go to coracle, watch the spinners

what about using NIP-05 for that though. If you gave the NIP-05 you're using on the bunker you should sign in as th


kind: `create_account`
params:

{
 "kind": <create-account>
  content: nip44_encrypt({
    username: "bal",
  domain: "example.com",
  email: "foo@bar.com"
  })
}

I'm so blown away that this works as well as it does

😂 WEBSOCKET BEAR!!!!

I invited people to watch us type on nostr 😂

The one thing that dosen't seem to work is that we can't type at the same time. Early prototype issue I guess. You'd have to have a changes queue to apply things at the same time

Yup, I wrote it very quickly last night; it's very stupid and inefficient, it's not even doing diffs, literally each keystroke is signing the ENTIRE content 😂

😂 love it

https://github.com/pablof7z/collab

fun. Going to definitely have a look at using this in a few places.

right, back to NIP-46, I'm going to change these arrays to objects. What do you think about the bunker:// url, needs to stay? Or can we just use NIP-89 to look up bunkers

the NIP-89 part is a different flow though; we need the bunker:// stuff still for login

you go to coracle, watch the spinners

what about using NIP-05 for that though. If you gave the NIP-05 you're using on the bunker you should si


kind: `create_account`
params:

{
 "kind": <create-account>
  content: nip44_encrypt({
    username: "bal",
  domain: "example.com",
  email: "foo@bar.com"
  })
}

I'm so blown away that this works as well as it does

😂 WEBSOCKET BEAR!!!!

I invited people to watch us type on nostr 😂

The one thing that dosen't seem to work is that we can't type at the same time. Early prototype issue I guess. You'd have to have a changes queue to apply things at the same time

Yup, I wrote it very quickly last night; it's very stupid and inefficient, it's not even doing diffs, literally each keystroke is signing the ENTIRE content 😂

😂 love it

https://github.com/pablof7z/collab

fun. Going to definitely have a look at using this in a few places.

right, back to NIP-46, I'm going to change these arrays to objects. What do you think about the bunker:// url, needs to stay? Or can we just use NIP-89 to look up bunkers

the NIP-89 part is a different flow though; we need the bunker:// stuff still for login

you go to coracle, watch the spinners

what about using NIP-05 for that though. If you gave the NIP-05 you're using on the bunker you should sign


kind: `create_account`
params:

{
 "kind": <create-account>
  content: nip44_encrypt({
    username: "bal",
  domain: "example.com",
  email: "foo@bar.com"
  })
}

I'm so blown away that this works as well as it does

😂 WEBSOCKET BEAR!!!!

I invited people to watch us type on nostr 😂

The one thing that dosen't seem to work is that we can't type at the same time. Early prototype issue I guess. You'd have to have a changes queue to apply things at the same time

Yup, I wrote it very quickly last night; it's very stupid and inefficient, it's not even doing diffs, literally each keystroke is signing the ENTIRE content 😂

😂 love it

https://github.com/pablof7z/collab

fun. Going to definitely have a look at using this in a few places.

right, back to NIP-46, I'm going to change these arrays to objects. What do you think about the bunker:// url, needs to stay? Or can we just use NIP-89 to look up bunkers

the NIP-89 part is a different flow though; we need the bunker:// stuff still for login

you go to coracle, watch the spinners

what about using NIP-05 for that though. If you gave the NIP-05 you're using on the bunker you shou


kind: `create_account`
params:

{
 "kind": <create-account>
  content: nip44_encrypt({
    username: "bal",
  domain: "example.com",
  email: "foo@bar.com"
  })
}

I'm so blown away that this works as well as it does

😂 WEBSOCKET BEAR!!!!

I invited people to watch us type on nostr 😂

The one thing that dosen't seem to work is that we can't type at the same time. Early prototype issue I guess. You'd have to have a changes queue to apply things at the same time

Yup, I wrote it very quickly last night; it's very stupid and inefficient, it's not even doing diffs, literally each keystroke is signing the ENTIRE content 😂

😂 love it

https://github.com/pablof7z/collab

fun. Going to definitely have a look at using this in a few places.

right, back to NIP-46, I'm going to change these arrays to objects. What do you think about the bunker:// url, needs to stay? Or can we just use NIP-89 to look up bunkers

the NIP-89 part is a different flow though; we need the bunker:// stuff still for login

you go to coracle, watch the spinners

what about using NIP-05 for that though. If you gave the NIP-05 you're using on the bunker


kind: `create_account`
params:

{
 "kind": <create-account>
  content: nip44_encrypt({
    username: "bal",
  domain: "example.com",
  email: "foo@bar.com"
  })
}

I'm so blown away that this works as well as it does

😂 WEBSOCKET BEAR!!!!

I invited people to watch us type on nostr 😂

The one thing that dosen't seem to work is that we can't type at the same time. Early prototype issue I guess. You'd have to have a changes queue to apply things at the same time

Yup, I wrote it very quickly last night; it's very stupid and inefficient, it's not even doing diffs, literally each keystroke is signing the ENTIRE content 😂

😂 love it

https://github.com/pablof7z/collab

fun. Going to definitely have a look at using this in a few places.

right, back to NIP-46, I'm going to change these arrays to objects. What do you think about the bunker:// url, needs to stay? Or can we just use NIP-89 to look up bunkers

the NIP-89 part is a different flow though; we need the bunker:// stuff still for login

you go to coracle, watch the spinners

what about using NIP-05 for that though. If you gave the NIP-05 you're using on the bunker you


kind: `create_account`
params:

{
 "kind": <create-account>
  content: nip44_encrypt({
    username: "bal",
  domain: "example.com",
  email: "foo@bar.com"
  })
}

I'm so blown away that this works as well as it does

😂 WEBSOCKET BEAR!!!!

I invited people to watch us type on nostr 😂

The one thing that dosen't seem to work is that we can't type at the same time. Early prototype issue I guess. You'd have to have a changes queue to apply things at the same time

Yup, I wrote it very quickly last night; it's very stupid and inefficient, it's not even doing diffs, literally each keystroke is signing the ENTIRE content 😂

😂 love it

https://github.com/pablof7z/collab

fun. Going to definitely have a look at using this in a few places.

right, back to NIP-46, I'm going to change these arrays to objects. What do you think about the bunker:// url, needs to stay? Or can we just use NIP-89 to look up bunkers

the NIP-89 part is a different flow though; we need the bunker:// stuff still for login

you go to coracle, watch the spinners

what about using NIP-05 for that though. If you gave the NIP-05 you're using on the bunker you should


kind: `create_account`
params:

{
 "kind": <create-account>
  content: nip44_encrypt({
    username: "bal",
  domain: "example.com",
  email: "foo@bar.com"
  })
}

I'm so blown away that this works as well as it does

😂 WEBSOCKET BEAR!!!!

I invited people to watch us type on nostr 😂

The one thing that dosen't seem to work is that we can't type at the same time. Early prototype issue I guess. You'd have to have a changes queue to apply things at the same time

Yup, I wrote it very quickly last night; it's very stupid and inefficient, it's not even doing diffs, literally each keystroke is signing the ENTIRE content 😂

😂 love it

https://github.com/pablof7z/collab

fun. Going to definitely have a look at using this in a few places.

right, back to NIP-46, I'm going to change these arrays to objects. What do you think about the bunker:// url, needs to stay? Or can we just use NIP-89 to look up bunkers

the NIP-89 part is a different flow though; we need the bunker:// stuff still for login

you go to coracle, watch the spinners

what about using NIP-05 for that though. If you gave the NIP-05 you're using on the


kind: `create_account`
params:

{
 "kind": <create-account>
  content: nip44_encrypt({
    username: "bal",
  domain: "example.com",
  email: "foo@bar.com"
  })
}

I'm so blown away that this works as well as it does

😂 WEBSOCKET BEAR!!!!

I invited people to watch us type on nostr 😂

The one thing that dosen't seem to work is that we can't type at the same time. Early prototype issue I guess. You'd have to have a changes queue to apply things at the same time

Yup, I wrote it very quickly last night; it's very stupid and inefficient, it's not even doing diffs, literally each keystroke is signing the ENTIRE content 😂

😂 love it

https://github.com/pablof7z/collab

fun. Going to definitely have a look at using this in a few places.

right, back to NIP-46, I'm going to change these arrays to objects. What do you think about the bunker:// url, needs to stay? Or can we just use NIP-89 to look up bunkers

the NIP-89 part is a different flow though; we need the bunker:// stuff still for login

you go to coracle, watch the spinners

what about using NIP-05 for that though. If you gave the NIP-05 you're using on the bunke


kind: `create_account`
params:

{
 "kind": <create-account>
  content: nip44_encrypt({
    username: "bal",
  domain: "example.com",
  email: "foo@bar.com"
  })
}

I'm so blown away that this works as well as it does

😂 WEBSOCKET BEAR!!!!

I invited people to watch us type on nostr 😂

The one thing that dosen't seem to work is that we can't type at the same time. Early prototype issue I guess. You'd have to have a changes queue to apply things at the same time

Yup, I wrote it very quickly last night; it's very stupid and inefficient, it's not even doing diffs, literally each keystroke is signing the ENTIRE content 😂

😂 love it

https://github.com/pablof7z/collab

fun. Going to definitely have a look at using this in a few places.

right, back to NIP-46, I'm going to change these arrays to objects. What do you think about the bunker:// url, needs to stay? Or can we just use NIP-89 to look up bunkers

the NIP-89 part is a different flow though; we need the bunker:// stuff still for login

you go to coracle, watch the spinners

what about using NIP-05 for that though. If you gave the NIP-05 you're using on


kind: `create_account`
params:

{
 "kind": <create-account>
  content: nip44_encrypt({
    username: "bal",
  domain: "example.com",
  email: "foo@bar.com"
  })
}

I'm so blown away that this works as well as it does

😂 WEBSOCKET BEAR!!!!

I invited people to watch us type on nostr 😂

The one thing that dosen't seem to work is that we can't type at the same time. Early prototype issue I guess. You'd have to have a changes queue to apply things at the same time

Yup, I wrote it very quickly last night; it's very stupid and inefficient, it's not even doing diffs, literally each keystroke is signing the ENTIRE content 😂

😂 love it

https://github.com/pablof7z/collab

fun. Going to definitely have a look at using this in a few places.

right, back to NIP-46, I'm going to change these arrays to objects. What do you think about the bunker:// url, needs to stay? Or can we just use NIP-89 to look up bunkers

the NIP-89 part is a different flow though; we need the bunker:// stuff still for login

you go to coracle, watch the spinners

what about using NIP-05 for that though. If you gave the NIP-05 you're using


kind: `create_account`
params:

{
 "kind": <create-account>
  content: nip44_encrypt({
    username: "bal",
  domain: "example.com",
  email: "foo@bar.com"
  })
}

I'm so blown away that this works as well as it does

😂 WEBSOCKET BEAR!!!!

I invited people to watch us type on nostr 😂

The one thing that dosen't seem to work is that we can't type at the same time. Early prototype issue I guess. You'd have to have a changes queue to apply things at the same time

Yup, I wrote it very quickly last night; it's very stupid and inefficient, it's not even doing diffs, literally each keystroke is signing the ENTIRE content 😂

😂 love it

https://github.com/pablof7z/collab

fun. Going to definitely have a look at using this in a few places.

right, back to NIP-46, I'm going to change these arrays to objects. What do you think about the bunker:// url, needs to stay? Or can we just use NIP-89 to look up bunkers

the NIP-89 part is a different flow though; we need the bunker:// stuff still for login

you go to coracle, watch the spinners

what about using NIP-05 for that though. If you gave the NIP-05 you're using on the bu


kind: `create_account`
params:

{
 "kind": <create-account>
  content: nip44_encrypt({
    username: "bal",
  domain: "example.com",
  email: "foo@bar.com"
  })
}

I'm so blown away that this works as well as it does

😂 WEBSOCKET BEAR!!!!

I invited people to watch us type on nostr 😂

The one thing that dosen't seem to work is that we can't type at the same time. Early prototype issue I guess. You'd have to have a changes queue to apply things at the same time

Yup, I wrote it very quickly last night; it's very stupid and inefficient, it's not even doing diffs, literally each keystroke is signing the ENTIRE content 😂

😂 love it

https://github.com/pablof7z/collab

fun. Going to definitely have a look at using this in a few places.

right, back to NIP-46, I'm going to change these arrays to objects. What do you think about the bunker:// url, needs to stay? Or can we just use NIP-89 to look up bunkers

the NIP-89 part is a different flow though; we need the bunker:// stuff still for login

you go to coracle, watch the spinners

what about using NIP-05 for that though. If you gave the NIP-05 you're usi


kind: `create_account`
params:

{
 "kind": <create-account>
  content: nip44_encrypt({
    username: "bal",
  domain: "example.com",
  email: "foo@bar.com"
  })
}

I'm so blown away that this works as well as it does

😂 WEBSOCKET BEAR!!!!

I invited people to watch us type on nostr 😂

The one thing that dosen't seem to work is that we can't type at the same time. Early prototype issue I guess. You'd have to have a changes queue to apply things at the same time

Yup, I wrote it very quickly last night; it's very stupid and inefficient, it's not even doing diffs, literally each keystroke is signing the ENTIRE content 😂

😂 love it

https://github.com/pablof7z/collab

fun. Going to definitely have a look at using this in a few places.

right, back to NIP-46, I'm going to change these arrays to objects. What do you think about the bunker:// url, needs to stay? Or can we just use NIP-89 to look up bunkers

the NIP-89 part is a different flow though; we need the bunker:// stuff still for login

you go to coracle, watch the spinners

what about using NIP-05 for that though. If you gave the NIP-05


kind: `create_account`
params:

{
 "kind": <create-account>
  content: nip44_encrypt({
    username: "bal",
  domain: "example.com",
  email: "foo@bar.com"
  })
}

I'm so blown away that this works as well as it does

😂 WEBSOCKET BEAR!!!!

I invited people to watch us type on nostr 😂

The one thing that dosen't seem to work is that we can't type at the same time. Early prototype issue I guess. You'd have to have a changes queue to apply things at the same time

Yup, I wrote it very quickly last night; it's very stupid and inefficient, it's not even doing diffs, literally each keystroke is signing the ENTIRE content 😂

😂 love it

https://github.com/pablof7z/collab

fun. Going to definitely have a look at using this in a few places.

right, back to NIP-46, I'm going to change these arrays to objects. What do you think about the bunker:// url, needs to stay? Or can we just use NIP-89 to look up bunkers

the NIP-89 part is a different flow though; we need the bunker:// stuff still for login

you go to coracle, watch the spinners

what about using NIP-05 for that though. If you gave the NIP-05 you're


kind: `create_account`
params:

{
 "kind": <create-account>
  content: nip44_encrypt({
    username: "bal",
  domain: "example.com",
  email: "foo@bar.com"
  })
}

I'm so blown away that this works as well as it does

😂 WEBSOCKET BEAR!!!!

I invited people to watch us type on nostr 😂

The one thing that dosen't seem to work is that we can't type at the same time. Early prototype issue I guess. You'd have to have a changes queue to apply things at the same time

Yup, I wrote it very quickly last night; it's very stupid and inefficient, it's not even doing diffs, literally each keystroke is signing the ENTIRE content 😂

😂 love it

https://github.com/pablof7z/collab

fun. Going to definitely have a look at using this in a few places.

right, back to NIP-46, I'm going to change these arrays to objects. What do you think about the bunker:// url, needs to stay? Or can we just use NIP-89 to look up bunkers

the NIP-89 part is a different flow though; we need the bunker:// stuff still for login

you go to coracle, watch the spinners

what about using NIP-05 for that though. If you gave the NIP-05 you'


kind: `create_account`
params:

{
 "kind": <create-account>
  content: nip44_encrypt({
    username: "bal",
  domain: "example.com",
  email: "foo@bar.com"
  })
}

I'm so blown away that this works as well as it does

😂 WEBSOCKET BEAR!!!!

I invited people to watch us type on nostr 😂

The one thing that dosen't seem to work is that we can't type at the same time. Early prototype issue I guess. You'd have to have a changes queue to apply things at the same time

Yup, I wrote it very quickly last night; it's very stupid and inefficient, it's not even doing diffs, literally each keystroke is signing the ENTIRE content 😂

😂 love it

https://github.com/pablof7z/collab

fun. Going to definitely have a look at using this in a few places.

right, back to NIP-46, I'm going to change these arrays to objects. What do you think about the bunker:// url, needs to stay? Or can we just use NIP-89 to look up bunkers

the NIP-89 part is a different flow though; we need the bunker:// stuff still for login

you go to coracle, watch the spinners

what about using NIP-05 for that though. If you gave the NIP-05 you're u


kind: `create_account`
params:

{
 "kind": <create-account>
  content: nip44_encrypt({
    username: "bal",
  domain: "example.com",
  email: "foo@bar.com"
  })
}

I'm so blown away that this works as well as it does

😂 WEBSOCKET BEAR!!!!

I invited people to watch us type on nostr 😂

The one thing that dosen't seem to work is that we can't type at the same time. Early prototype issue I guess. You'd have to have a changes queue to apply things at the same time

Yup, I wrote it very quickly last night; it's very stupid and inefficient, it's not even doing diffs, literally each keystroke is signing the ENTIRE content 😂

😂 love it

https://github.com/pablof7z/collab

fun. Going to definitely have a look at using this in a few places.

right, back to NIP-46, I'm going to change these arrays to objects. What do you think about the bunker:// url, needs to stay? Or can we just use NIP-89 to look up bunkers

the NIP-89 part is a different flow though; we need the bunker:// stuff still for login

you go to coracle, watch the spinners

what about using NIP-05 for that though. If you gave the NIP-05 you'r


kind: `create_account`
params:

{
 "kind": <create-account>
  content: nip44_encrypt({
    username: "bal",
  domain: "example.com",
  email: "foo@bar.com"
  })
}

I'm so blown away that this works as well as it does

😂 WEBSOCKET BEAR!!!!

I invited people to watch us type on nostr 😂

The one thing that dosen't seem to work is that we can't type at the same time. Early prototype issue I guess. You'd have to have a changes queue to apply things at the same time

Yup, I wrote it very quickly last night; it's very stupid and inefficient, it's not even doing diffs, literally each keystroke is signing the ENTIRE content 😂

😂 love it

https://github.com/pablof7z/collab

fun. Going to definitely have a look at using this in a few places.

right, back to NIP-46, I'm going to change these arrays to objects. What do you think about the bunker:// url, needs to stay? Or can we just use NIP-89 to look up bunkers

the NIP-89 part is a different flow though; we need the bunker:// stuff still for login

you go to coracle, watch the spinners

what about using NIP-05 for that though. If you gave the NIP-05 you


kind: `create_account`
params:

{
 "kind": <create-account>
  content: nip44_encrypt({
    username: "bal",
  domain: "example.com",
  email: "foo@bar.com"
  })
}

I'm so blown away that this works as well as it does

😂 WEBSOCKET BEAR!!!!

I invited people to watch us type on nostr 😂

The one thing that dosen't seem to work is that we can't type at the same time. Early prototype issue I guess. You'd have to have a changes queue to apply things at the same time

Yup, I wrote it very quickly last night; it's very stupid and inefficient, it's not even doing diffs, literally each keystroke is signing the ENTIRE content 😂

😂 love it

https://github.com/pablof7z/collab

fun. Going to definitely have a look at using this in a few places.

right, back to NIP-46, I'm going to change these arrays to objects. What do you think about the bunker:// url, needs to stay? Or can we just use NIP-89 to look up bunkers

the NIP-89 part is a different flow though; we need the bunker:// stuff still for login

you go to coracle, watch the spinners

what about using NIP-05 for that though. If you gave the NIP-05 of


kind: `create_account`
params:

{
 "kind": <create-account>
  content: nip44_encrypt({
    username: "bal",
  domain: "example.com",
  email: "foo@bar.com"
  })
}

I'm so blown away that this works as well as it does

😂 WEBSOCKET BEAR!!!!

I invited people to watch us type on nostr 😂

The one thing that dosen't seem to work is that we can't type at the same time. Early prototype issue I guess. You'd have to have a changes queue to apply things at the same time

Yup, I wrote it very quickly last night; it's very stupid and inefficient, it's not even doing diffs, literally each keystroke is signing the ENTIRE content 😂

😂 love it

https://github.com/pablof7z/collab

fun. Going to definitely have a look at using this in a few places.

right, back to NIP-46, I'm going to change these arrays to objects. What do you think about the bunker:// url, needs to stay? Or can we just use NIP-89 to look up bunkers

the NIP-89 part is a different flow though; we need the bunker:// stuff still for login

you go to coracle, watch the spinners

what about using NIP-05 for that though. If you gave the NIP-05 of the


kind: `create_account`
params:

{
 "kind": <create-account>
  content: nip44_encrypt({
    username: "bal",
  domain: "example.com",
  email: "foo@bar.com"
  })
}

I'm so blown away that this works as well as it does

😂 WEBSOCKET BEAR!!!!

I invited people to watch us type on nostr 😂

The one thing that dosen't seem to work is that we can't type at the same time. Early prototype issue I guess. You'd have to have a changes queue to apply things at the same time

Yup, I wrote it very quickly last night; it's very stupid and inefficient, it's not even doing diffs, literally each keystroke is signing the ENTIRE content 😂

😂 love it

https://github.com/pablof7z/collab

fun. Going to definitely have a look at using this in a few places.

right, back to NIP-46, I'm going to change these arrays to objects. What do you think about the bunker:// url, needs to stay? Or can we just use NIP-89 to look up bunkers

the NIP-89 part is a different flow though; we need the bunker:// stuff still for login

you go to coracle, watch the spinners

what about using NIP-05 for that though. If you gave the NIP-0


kind: `create_account`
params:

{
 "kind": <create-account>
  content: nip44_encrypt({
    username: "bal",
  domain: "example.com",
  email: "foo@bar.com"
  })
}

I'm so blown away that this works as well as it does

😂 WEBSOCKET BEAR!!!!

I invited people to watch us type on nostr 😂

The one thing that dosen't seem to work is that we can't type at the same time. Early prototype issue I guess. You'd have to have a changes queue to apply things at the same time

Yup, I wrote it very quickly last night; it's very stupid and inefficient, it's not even doing diffs, literally each keystroke is signing the ENTIRE content 😂

😂 love it

https://github.com/pablof7z/collab

fun. Going to definitely have a look at using this in a few places.

right, back to NIP-46, I'm going to change these arrays to objects. What do you think about the bunker:// url, needs to stay? Or can we just use NIP-89 to look up bunkers

the NIP-89 part is a different flow though; we need the bunker:// stuff still for login

you go to coracle, watch the spinners

what about using NIP-05 for that though. If you gave the NIP


kind: `create_account`
params:

{
 "kind": <create-account>
  content: nip44_encrypt({
    username: "bal",
  domain: "example.com",
  email: "foo@bar.com"
  })
}

I'm so blown away that this works as well as it does

😂 WEBSOCKET BEAR!!!!

I invited people to watch us type on nostr 😂

The one thing that dosen't seem to work is that we can't type at the same time. Early prototype issue I guess. You'd have to have a changes queue to apply things at the same time

Yup, I wrote it very quickly last night; it's very stupid and inefficient, it's not even doing diffs, literally each keystroke is signing the ENTIRE content 😂

😂 love it

https://github.com/pablof7z/collab

fun. Going to definitely have a look at using this in a few places.

right, back to NIP-46, I'm going to change these arrays to objects. What do you think about the bunker:// url, needs to stay? Or can we just use NIP-89 to look up bunkers

the NIP-89 part is a different flow though; we need the bunker:// stuff still for login

you go to coracle, watch the spinners

what about using NIP-05 for that though. If you gave the NI