Replying to Avatar PABLOF7z

📢 Wrote a new app to send notes LATER

https://nostrit.com

If you're familiar with my psbt.io site, this is like that, but for nostr

(and yes, I reused the gorgeous UI)

How did you solve created_at? It is part of the signature no?

Reply to this note

Please Login to reply.

Discussion

YES, it's interesting; I'm writing a longer note about it now

there were two approaches to do this:

1) use NIP-26 to create a delegation token to sign the note at the exact time

this was my preferred option and I wrote a bunch of code to make this happen.

https://github.com/getAlby/lightning-browser-extension/pull/2063

https://github.com/nostr-protocol/nips/pull/222

https://nip26.lol

Implemented NIP-26 on damus

But there are some important issues

a) lack of relay and clients support

very few clients support NIP-26, meaning that the scheduled note would go unnoticed by most people

and few relays support it, meaning that the note wouldn't even be served

b) lack of constraints to delegation token

the NIP right now supports only limiting the scope of the `created_at` and `kind` -- this is

way too broad, since that means someone with the delegation token can write anything in `content`,

create as many events as they wish, tag as many people as they'd like

I started introducing a PR for NIP-26 to limit the scope of the `content` to a specific value but 🤷‍♂️

and c) no revocation of the delegation token

solution 2) pre-sign all possible events

this is less than ideal but there is no potential for abuse (other than publishing all signed notes but

that would be an absurd attack since you can't tag anyone with it nor change the content)

of course, since time is seemingly infinite, you can't sign *all* possible events, so need to limit

the from and to of the period and the frequency at which events will be generated; nostrit.com provides some sane defaults and makes it configurable.

Overall, I like NIP-26 much better than this solution (and this solution forces me to store a lot of

pre-signed events that I'm purging when their created_at falls in the past); NIP-26 would make this much easier

but until we have better support in the protocol and in relays and apps, this is a solution.