I’m hacking on a personalized newletter prototype and using openai to generate a summary of the various conversations i’m following so i can keep up. I just noticed the latest version started generating urls like this: https://satshoot.com/npub1xtscya34g58tk0z605fvr788k263gsu6cy9x0mhnm87echrgufzsevkk5s
I honestly was TRYING to get it to to just do nostr:npub1xtscya34g58tk0z605fvr788k263gsu6cy9x0mhnm87echrgufzsevkk5s but it was making it in to a url… turns out satshoot.com IS a real thing, i’d never seen it… and the links openai was generating worked. Does the AI know more about Nostr than I do?
I posted tickets on satshoot to call for contributions to the project for sats. Shared as kind1s for more reach.
People solved these tickets using ChatGPT. Hence the inference, probably.
Bitcoin is the token of time.
The idea behind putting handlers with nprofile and such might be that there are clients that don't render profile metadata(rarer case perhaps) or even kind1s like in my case.
My app creates a feed of freelance tickets instead of a kind1 feed.
However, I could implement mechanics to jump to a different client to render kind1s under certain conditions or an iframe to render any event that references my freelance ticket/offer.
Not sure, just thinking out loud.
My app has special kinds for freelance Ticket(32767) and Freelance Offer(32768).
A nip89 handler would only be meaningful for naddr.
In this case:
```https://satshoot.com/
### Hey Cashu enthusiasts,
Questions on Cashu wallet and Nutzaps (nip60-61):
#### Question1: Swaps
1. User monitors for nutzap events
2. Nutzap event is found with Proof
3. Nutzap is redeemed. ALWAYS.
Why is default redemption important? What about the case when token is already in a mint that user trusts, p2pk locked anyway? Is it necessary in that case too? Why?
#### Question 2: P2PK
- NDK wallet has this nice function to parse P2PK pubkeys [here](https://github.com/nostr-dev-kit/ndk/blob/master/ndk/src/events/kinds/nutzap/index.ts#L96) . Why does this splicing remove first 2 and last 1 byte from the P2PK?
cc nostr:nprofile1qqs9pk20ctv9srrg9vr354p03v0rrgsqkpggh2u45va77zz4mu5p6ccpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsz9thwden5te0dehhxarj9ehhsarj9ejx2a30qyg8wumn8ghj7mn0wd68ytnddakj7xph5zr nostr:nprofile1qqsdmup6e2z6mcpeue6z6kl08he49hcen5xnrc3tnpvw0mdgtjemh0spzemhxue69uhhyetvv9ujuvrcvd5xzapwvdhk6qg5waehxw309aex2mrp0yhxgctdw4eju6t0qyt8wumn8ghj7un9d3shjtnwdaehgu3wvfskueqgxmmun nostr:nprofile1qqs04xzt6ldm9qhs0ctw0t58kf4z57umjzmjg6jywu0seadwtqqc75sprfmhxue69uhhq7tjv9kkjepwve5kzar2v9nzucm0d5hsz9thwden5te0wfjkccte9ejxzmt4wvhxjme0qythwumn8ghj7un9d3shjtnswf5k6ctv9ehx2ap0y8qdrm
PS: See you in Berlin
#asknostr #cashu #ndk #ecash
nostr:nprofile1qqs04xzt6ldm9qhs0ctw0t58kf4z57umjzmjg6jywu0seadwtqqc75sprfmhxue69uhhq7tjv9kkjepwve5kzar2v9nzucm0d5hsz9thwden5te0wfjkccte9ejxzmt4wvhxjme0qythwumn8ghj7un9d3shjtnswf5k6ctv9ehx2ap0y8qdrm can you confirm this p2pk last byte removal bug?
And what do you think of the swapping of tokens topic?
You can't read from blastr type of relays. They are proxies, talking to other relays.
I write the type of data you mention to blastr relays in addition to user write relays and, for extra safety, "bootstrap" relays like purplepages.
But I don't read this metadata from relay proxies, only from bootstrap and user write relays.
Digging holes fascinates me.
It seems so simple yet has so many aspects to it:
- How you save your energy.
- Technique. The right tools.
- Where you you put the dirt.
- How you won't get injured but get the job done in time.
- Stick to the right dimensions while working
- ...
It always seems easier than the reality. Can you last till the end?
Dig holes. Learn real work.
And by endurance we conquer.
#sec
I wonder that this is because the user might want to get the proofs in the preferred unit or denomination.
So best to avoid checking a bunch of stuff about the Proofs and just get a new Token with said proofs according to exact receiver preferences.
Thank you for the info!
It does remove the last byte btw, I'll just fix it.
### Hey Cashu enthusiasts,
Questions on Cashu wallet and Nutzaps (nip60-61):
#### Question1: Swaps
1. User monitors for nutzap events
2. Nutzap event is found with Proof
3. Nutzap is redeemed. ALWAYS.
Why is default redemption important? What about the case when token is already in a mint that user trusts, p2pk locked anyway? Is it necessary in that case too? Why?
#### Question 2: P2PK
- NDK wallet has this nice function to parse P2PK pubkeys [here](https://github.com/nostr-dev-kit/ndk/blob/master/ndk/src/events/kinds/nutzap/index.ts#L96) . Why does this splicing remove first 2 and last 1 byte from the P2PK?
cc nostr:nprofile1qqs9pk20ctv9srrg9vr354p03v0rrgsqkpggh2u45va77zz4mu5p6ccpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsz9thwden5te0dehhxarj9ehhsarj9ejx2a30qyg8wumn8ghj7mn0wd68ytnddakj7xph5zr nostr:nprofile1qqsdmup6e2z6mcpeue6z6kl08he49hcen5xnrc3tnpvw0mdgtjemh0spzemhxue69uhhyetvv9ujuvrcvd5xzapwvdhk6qg5waehxw309aex2mrp0yhxgctdw4eju6t0qyt8wumn8ghj7un9d3shjtnwdaehgu3wvfskueqgxmmun nostr:nprofile1qqs04xzt6ldm9qhs0ctw0t58kf4z57umjzmjg6jywu0seadwtqqc75sprfmhxue69uhhq7tjv9kkjepwve5kzar2v9nzucm0d5hsz9thwden5te0wfjkccte9ejxzmt4wvhxjme0qythwumn8ghj7un9d3shjtnswf5k6ctv9ehx2ap0y8qdrm
PS: See you in Berlin
#asknostr #cashu #ndk #ecash
Removing the last byte of the p2pk seems to be a bug caused by the tricky splice(start, end) fn, start being inclusive, end being _exclusive_ . Removal of the padding is '02' is fair enough.
### Hey Cashu enthusiasts,
Questions on Cashu wallet and Nutzaps (nip60-61):
#### Question1: Swaps
1. User monitors for nutzap events
2. Nutzap event is found with Proof
3. Nutzap is redeemed. ALWAYS.
Why is default redemption important? What about the case when token is already in a mint that user trusts, p2pk locked anyway? Is it necessary in that case too? Why?
#### Question 2: P2PK
- NDK wallet has this nice function to parse P2PK pubkeys [here](https://github.com/nostr-dev-kit/ndk/blob/master/ndk/src/events/kinds/nutzap/index.ts#L96) . Why does this splicing remove first 2 and last 1 byte from the P2PK?
cc nostr:nprofile1qqs9pk20ctv9srrg9vr354p03v0rrgsqkpggh2u45va77zz4mu5p6ccpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsz9thwden5te0dehhxarj9ehhsarj9ejx2a30qyg8wumn8ghj7mn0wd68ytnddakj7xph5zr nostr:nprofile1qqsdmup6e2z6mcpeue6z6kl08he49hcen5xnrc3tnpvw0mdgtjemh0spzemhxue69uhhyetvv9ujuvrcvd5xzapwvdhk6qg5waehxw309aex2mrp0yhxgctdw4eju6t0qyt8wumn8ghj7un9d3shjtnwdaehgu3wvfskueqgxmmun nostr:nprofile1qqs04xzt6ldm9qhs0ctw0t58kf4z57umjzmjg6jywu0seadwtqqc75sprfmhxue69uhhq7tjv9kkjepwve5kzar2v9nzucm0d5hsz9thwden5te0wfjkccte9ejxzmt4wvhxjme0qythwumn8ghj7un9d3shjtnswf5k6ctv9ehx2ap0y8qdrm
PS: See you in Berlin
#asknostr #cashu #ndk #ecash
### Nostr is Signal
We live in a world where noise dominates most people's lives through social media and Big-Tech services. So they divide us and conquer. They sell our data and attention to the highest bidder. Interestingly, bidders aren't better off for this deal. Quite the opposite.
Bringing products and services to the right audience is hard.
Companies struggle to find their customers and so they succumb to the attention-harvesting Big-Tech. They play the ad game. They also add to the noise level exacerbating the situation.
"It's for survival, it's do or die" - they say.
Really, it's just short-term hopium that tightens their bond to their master.
The vicious cycle continues.
Subvertising.
Nostr solves this. I firmly believe that.
It destroys greedy middle-men and HELPS FIND SIGNAL. Your reputation on nostr cannot be stopped or destroyed. It lives on as long as those signed nostr notes can be broadcasted from anywhere in the world and your web of trust is listening.
They just fetch your relay list and the magic happens. It's so simple.
Back to history:
Discovery went from word of mouth to newspapers and billboards, then TV and now it is captured by Big-Tech search and social media platforms. It is the same path fiat took:
1. Word of mouth was the golden era
2. Paper was introduced, enhancing reach, but lessening the need for the personal touch, diluting our connections
3. We started living in small apartments in big cities, isolated, staring at the TV all day, watching commercials, filling our brain with clutter. This can be compared to the Telegraph era of money, in the early 20th century. The slope steepens.
4. The advent of the internet and smart phones cut the last ties of real connections people had: You take the noise with you even when you venture outside your tiny pod. It's the 1971-style fiat rug. It was inevitable. The slope was there and we stepped on it and slid.
We needed to go down the painful path I believe. It's the meaning crisis. It's the ideological zombie hordes. It's the unbearable noise of all this, with now AI on top. Perfect storm. If Nostr had a blockchain(lol) it should inscribe something like this in the genesis block:
"ELON MUSK INTRODUCING NEW AI ON X, FORMERLY TWITTER"
But we know what happens when it's darkest. That's when heroes arise.
We can't go back to just physical word of mouth anymore, just like we can't go back on a Gold Standard. Even if we tried it's unfeasible, and we come to understand that all these deformed, perverted ways like fiat and Big-Tech platforms solved real problems initially. Those problems don't go away just because we go back to stone age. However, we can learn from mistakes made in the past. We can come clean. We can start over. It's never too late.
It's time to embrace nostr. It's hard at first encounter. You don't know wtf you are doing. What are relays? What do you mean by "signed notes"? And most importantly, why doesn't this shit work like a decent app? If you read so far I can tell you a story: My name is Five because as a software engineer I was fking clueless about how to even use clients back when I started. The name comes from an accidental profile setting in whatever broken client. Don't let your path to truth and signal be a flash in the pan. By endurance we conquer(a tagline of Sovereign Engineering).
I believe through nostr we can go back to the idea of word-of-mouth in the digital era. Some call it the localized internet. We can create experiences that come as close as we can get to physical interactions. Nostr is the language of freedom. The identity that serves you instead of exploiting you.
And it's cool as fuck.
Keep going.
Cheers
Cannot confirm nor deny ...
I see a lot of opportunities in feed curation services with DVMs but looking at the current active feeds in Amethyst, there isn't great supply in this area.
Have DVM people moved on to other use-cases?
#dvm #dvms #asknostr
#Nostr is becoming something truly beautiful.
A diverse ecosystem of specs, apps, relays and most importantly: people.
I love it because it's just like nature:
Simple yet chaotic: Strong primitives with unbound room for creativity.
People with an open mind will thrive here because just like in nature, many decisions are pushed to the margins:
- The spec should leave as much room for the app developer as possible
- The app developer should give the user as much freedom and agency as possible
The Cathedral-builder mindset will not thrive in nostr but can thrive building on #bitcoin.
Nostr and Bitcoin are Yin and Yang.
They together form a better world.
Money was the first to be captured. Identity is next.
Also, money was saved first with bitcoin. Identities are now saved by nostr. Grateful for it.
In the process of getting ecash payments into SatShoot!
nostr:nprofile1qqs04xzt6ldm9qhs0ctw0t58kf4z57umjzmjg6jywu0seadwtqqc75sprfmhxue69uhhq7tjv9kkjepwve5kzar2v9nzucm0d5hsz9thwden5te0wfjkccte9ejxzmt4wvhxjme0qythwumn8ghj7un9d3shjtnswf5k6ctv9ehx2ap0y8qdrm If I remember correctly, an earlier version of the spec had a section about encrypting privkey with passphrase.
Now it's just nip44 which is just encrypting to my own nsec.
Guess I can still double-encrypt but what is the threat model in this version of the spec?
If app has access to nsec directly or indirectly via nsecbunker it can basically steal the ecash right?
I am thinking of ways to communicate caveats to users effectively in SatShoot.
Posted my first note with #rustnostr today(with a test account)
For an absolute beginner in rust I think the process was straightforward.
Excited about the features I am about to explore!
Has someone built #dvm -s in rust without bindings before?
Would be interested in the experience!
#asknostr
My problem with geyser:

Can I just support the nostr booth by zapping nostr:nprofile1qqst32wlsgvqsnjfpkygxs4f6jyt0nc0kg935xdevwlv668dd26uh0gprfmhxue69uhkummnw3e8qatz9euk2emgwfhjuumfw3jsz9rhwden5te0wfjkccte9ejxzmt4wvhxjmcpzamhxue69uhhyetvv9ujumrpwaskcmr9wshxzusncjj8x or some nostr-native way?
I don't know how the crowd-sourcing stuff works on nostr but should have a way to do this here.
cc nostr:nprofile1qqsr7acdvhf6we9fch94qwhpy0nza36e3tgrtkpku25ppuu80f69kfqpramhxue69uhkummnw3ez6un9d3shjtnyv4ex26mjdaehxtndv5hsz9mhwden5te0wfjkccte9ehx7um5wghxyctwvshszxthwden5te0wfjkccte9ekk7mt0wd68ytnsd9hxktc79dllq nostr:nprofile1qqsx45yrjtgm4glklaafgz0z4309gs6cwfja3d99s8rqvlvgagcptpqppemhxue69uhkummn9ekx7mp00lrnle
It's done.
