Replying to Avatar purrs_for_Her

Reply to this note

Please Login to reply.

Discussion

:P

there are a few apps i use that there is no need to log in to - nostrsearch comes to mind.

but i thought that if you want to interact and publish events, then you have to "log in" or at least use your nsec.

am i missing something? i'm probably missing something. :3

You're missing that you can sign with any nsec and there are an almost infinite amount of nsecs.

ooooooooh

got it

this helped it click

*meow* :3

Some examples:

Have apps targeted to different user groups, so that the content they see there appeals to them.

Have people setup and save application settings in a signed event. That event can be called up, whenever someone logs in with their npub.

If someone wants to comment, highlight, or react anonymously, just generate an nsec on the fly. Require proof of work or a lightning payment, to get relay write-access, for private relays.

Put comments into zap notes, as most write-limited relays don't block those, especially anything over 100 sats.

Put your app or relay on an private server or behind a VPN. Let people use it anonymously.

Etc.

The only time that someone should need to login and sign something, with their own nsec, is if they want to publish a note in their own name, or if they want access to premium services.

thank you for your patience ^__^

No problem. Talking to you is helping me think this through.

And, another thing, is that all signers are also clients, and all clients are also signers. You could add a small, generic form to your browser extension, or to a native app, that just allows you to post the most-popular note kinds or replies, and then you could just write and interact from there, while reading from whatever whiz-bang app you're looking at. Just need to copy the ID of the event you're looking at.

I do this with my CLI, already. I write from Sybil, on my laptop, and read from Alexandria on my phone. Imagine if Amber or nostr:npub1qdjn8j4gwgmkj3k5un775nq6q3q7mguv5tvajstmkdsqdja2havq03fqm7's signer had a kind 01 note and reaction form.

You could even include your favorite relay and just stick to that, to keep your digital relay footprint down. That's why I always like to read and write only to theforest, and theforest spreads my notes around, and fetches my favorite npubs, on the server side.

Do you ever think about this stuff nostr:npub1wqfzz2p880wq0tumuae9lfwyhs8uz35xd0kr34zrvrwyh3kvrzuskcqsyn ?

that's interesting. i love the ability to seamlessly switch between clients and devices, but what you're describing sounds much more customizable. :3

Well, look at whichever app that you are currently using. You probably have a little button or menu, on each note, that allows you to copy the event ID. So, you would copy that, paste it into your signer, and then start typing out your note.

You could even make it smoother, so that you just double-click or press on the event ID and the signer opens.

'signers' have been severely neglected.. the most important part of nostr 😂

Chip has one, that's why I tagged him.

With signers, you need some feature, to get people to switch. Having a generic input field, would be a feature. IMO. I'd totally switch for that.

I was thinking this, while setting up our first input fields for Alexandria and the GitCitadel homepage. It's literally just a textbox with a submit button. Was thinking of forking nos2x-fox and just adding the damn textbox. 😂

Something like Amber or Citrine could add something like this. A "dumb writer".

You legit never need to login to our apps, to use them well. Because they were built without write-capabilities. They're viewers first. You can just wander onto the pages from the Internet, and read books or examine repos, or surf the social feed, or search for events, or read wiki pages or articles, or...

I'm not sure I'm tracking.

IIRC you are arguing that because the signer has the final say on the note that it acts essentially is the "client" ? NVault has no communication with nostr at all. It has a private API that the browser extension talks to it with. The web client interacts with it.

Many apps store your "preferences" in signed notes or encrypted dms. What would be the difference here?

Are you suggesting that, for example, NVault would sign the message and broadcast it to relays on your behalf? Skip the round-trip back to the client?

I'm thinking a workflow like,

See a nice article on #Alexandria.

Want to leave a comment.

Click "Copy naddr" button.

Paste into field in browser extension.

Add come comment in an input field.

Click submit.

Comment signed by extension and published to outbox relays.

Add a zap button, an emoji button, and the ability to write kind 01 or kind 1111 and you're done. 99.99% of users will never need to login to an app again, especially if they can easily login npub-only.

Then the apps compete on having features cool enough, to make signing an event with your own worthwhile. The ability to edit and publish complex documents, play video games, use a cool search engine or API, etc.

Most apps aren't actually worth logging into, but they're so badly designed, that they're hard to use, if you aren't logged in. So, don't log in.

it could be this way. this was how i used nostr in the past. clients went too hard storing all their user info with your key on your relay to avoid running a database. thats fine i guess but, maybe they should use device keys for that.

> thats fine i guess but, maybe they should use device keys for that.

Didn't even think about that yeah, but how would you transfer the device key? You'd have to keep it alongside your personal keypair so it wouldn't solve very much.

you wouldnt have to keep it unless you wanted to restore your "settings", which most clients that do this, it doesnt even work anyway for whatever reason, and it pollutes your main keyspace

How are you supposed to switch between devices though?

local area networks could keep them synced

Don't know why I should need a relay on the internet to sync the settings on my laptop on my lap and the phone in my hand.

nostr:npub1w4jkwspqn9svwnlrw0nfg0u2yx4cj6yfmp53ya4xp7r24k7gly4qaq30zp was talking about that, a while back, and I think Will is also heading in that direction.

Yup, very very slowly working on a thing. But within 10 years 🙄 I expect I shall be be able to treat at least all my Linux computers as one multi-interface machine.

Yeah that could probably be a feature. I think I'd want the relay connections to happen on the extension side, no the server side for security reasons. I'd have to think about that.

Yeah I've used nostril and nak this way when testing my API in the past

.

Could also have a client do that too. Take the event address and put it into a client I like.

I think this could really get into scope creep for the signer, then the signer just becomes another insecure client. Clients and signers NEED to have clear separation of security concerns. Signing code should be physically isolated from network code.

Main reason I don't really agree with nip46 and have aired my concerns in the past. NVault will have separate processes and remote agents for handling signing. And someday work with HWS like the one nostr:npub12262qa4uhw7u8gdwlgmntqtv7aye8vdcmvszkqwgs0zchel6mz7s6cgrkj is making :)

Well, a "signer app" can have a signer and a client. Those don't have to be one thing, it'd just be nice to be able to click on the browser extension and start typing.

Could also be a separate browser extension app, I suppose. I just thought of signers because everyone already has one and mine contains my nsec and my relay list.

Alexandria has this, now, on the event page (search for an event id, get the result, click "comment" type, submit, done). But that takes up a whole webpage, so you need to tab back and forth. An extension is more handy.

I added that, even though it kind of breaks the scope of the page, because I am fucking sick of having to login everywhere.

WHY THE FUCK DO I HAVE TO LOGIN? FUCK YOUR LOGINS, BRO.

Login once, write anywhere.

And I hate that I have to grant permissions, to do damn near anything, and way before I'd ever need it. They watch what you're reading, what you're searching, what you're writing...

Yeah there was a time when primal was polling for public keys a couple times/second which was HORRIBLE. I had to build the grant-all system just so I could use it. but if you didn't know extensions (especially when passing data between, user scripts, content scripts, then background scripts) is insanely slow. Like hundreds of MS slow. Even if it's all in memory. Primal was barely usable then but when they did that I couldn't use it. That was the end of my Primal days.

Is that why the fan comes on, when I open their web app?

One of the many XD

But bro, personalization bro. We need your relay list bro. We need your outbox relays bro.

Yeah iv wanted to suggest changes to the NIP07 api so that client's could just pull that data from my extension to be authoritative. Most clients either use hard-coded relays, or pull from nip65 (which is fine imo) but If I have an extension, that should ALWAYS be authoritative, but few clients, if any use that model.

i've thought about having the ability to shim in proxies for relay connections to intercept them on behalf of the client for user's privacy. So many clients just open shit loads of connections to hundreds of servers/relays without asking me permission. I have to use other extension like uBlock to help keep all of those requests down.

Yeah, I often have the console open, from testing Alex, and then I switch to other webpages and it's just a flood of relays. This doesn't happen with us, because our relays are aggregators, and we always look at them first, and only check other relays if we can't find something or the person is logged in and has explicitly said for us to check their preferred relays.

And the personalization thing doesn't even count, as you can just login npub-only (read-only) and I can fetch your relay list and app settings from theforest.

You only need to login, to sign, and apps should reduce their reliance upon signing.

I have to sign on Jumble, everytime I look at the notifications, as he uses events to keep track of what I've read.

I really hate that.

I probably also thought of extensions because I constantly need to switch npubs and it's a pain getting that to match with the clients, as so many forget to check. I'm constantly signing with the wrong one.

When I open the extension, it just says SILBERENGEL and if there were a little textbox below that, I'd be less-likely to accidentally sign as PURPLEKONNEKTIV.

Idiot-proof it. That's why the event signing box I made has the current profile pic and name right next to the button. LOL

There are ways to pack up web-pages into extensions :) Like extensions that you can put a URL into and it will display the page, just mini.

Can I complain briefly on the extension thing. Browser extensions are BS walled gardens too. You have to submit your extension for code review for most changes iirc, and your repository has to have a particular structure, Fuck Google btw, never going to have a chrome extension. BTW You still have to do this process to get a signing certificate to distribute the extension yourself, otherwise no one can use your extension. They can temporarily load the zip file for debugging, but that has to be done every time the window is closed, not a solution.

For NVault I inject the UI into the web-page itself so you don't have to use the dinky little popup page that resets every time to click away. I like that it feels integrated into the app you're using. Not all apps work, so I have a toggle, that opens a new popup with the same window, but i don't like that flow.

example

https://www.vaughnnugent.com/public/resources/downloads/cms/c/zok236zuqrydxugsqhkwovurhi.webp

Could you create something that I can click, that isn't a browser extension, that just pops-up, like that, with the event ID I'm responding to preloaded? Or with no eventid, if it's an op?

Probably yeah. If it's in the URL or somewhere universal it can read it, or scan the page and read it.

A DOM listener, or something.

Yup, the extension has full access to the DOM and everything running in it.

Amber follows the Nostr signer protocol by which it exchanges events to sign with the client using ephemeral events shared via relays. This requires both client and signer to be able to sign anonymous events with their own keys. Such keys can be randomly generated per session or unique to each client/signer instance.

That said, because any client that can deal with Amber needs to be able to generate its own keypair, any client could sign "anonymous" events on a throwaway npub, without ever talking to Amber.

Thus, it's no big leap to have such a client support anonymous interactions in which a user gets a temporary throwaway npub that is deleted at the end of the session.

Users who want a more persistent/permanent identity would "log in" via Amber or similar to use their own personal keypair.

^

Yeah, I got to thinking about this, when I built the gitcitadel.com login, with Npub, browser extension, Amber, and Bunker methods in it.

There are higher and lower-levels of permissions, dependent upon use case:

lurking: no permissions, just build a non-crappy client and default to a good relay

customized settings: npubread-only

casual interactions: anon logins

publishing notes under your own npub or using a write-protected relay: signer

Before performing any action, we should only ever be checking that they have the minimum level of permissions required for that action.

Make sure that someone who is lurking can zap or send emoji. Make sure someone logged in with npub can use their favorite relays and filter according to their own lists. Etc.

Until now, everyone has been doing this backward, sometimes even requiring "logging in with nsec" to see ANYTHING. So, the debate has all been about frontloading settings and sending invites, but this is actually a Nostr antipattern. You don't need to send someone an invite, for them to see what you see. Just send them your npub and tell them to login with that. Then we could have a button, "Create a new npub, with settings just like this one or define new settings." and they could click it and be done.

Or just send them a link to the website because it's a motherfucking website and you can just go there and do stuff, off the bat.

I'm probably thinking this way because we're aiming at B2B and therefore aren't trying to make money off of the website itself or selling user data or forcing everyone to only use our relays.

If Alexandria were running on a university VPN, for instance, everyone would be logged into the server, already, and the relay could be local or etc. How annoying would it be to have to sign sign sign sign sign? You're already authorized to see this stuff and write to the relay, by being on the network.

A user could even create a custom profile for throwaway npubs to use the same username consistently without having to manage keys or anything like that.

We're all used to creating accounts for everything, so that surely influences our thinking.

Could also do a NIP-05 login, akin to the npub. Then they don't have to remember anything complicated.

Like, you could be NIP-05 logged-in, and then use anon npubs to sign.

The verification with NIP-05 wouldn't work on a throwaway npub. That would be just like setting up throwaway profiles with the same username.

I meant, to login as yourself, but read-only. Then you don't need to copy-paste your npub, you can type in laeserin@...

Oh yeah that would work for read-only.

The client would need to find the profile with that NIP-05 address, then it could use that npub to construct the user's view.

Another thing you could do is pay-to-play.

Our https://theforest.nostr1.com relay accepts all zap events, as those can be spammy, but so what. We can just let anyone zap and limit display of the zaps to a minimum sat amount _or_ write-access to the relay. You have to be whitelisted or pay at least 100 sats, for instance.

But, we can then allow them to include a message in the zap event (like Nostrudel does), and display that message in the feed, as a reply with a ⚡ icon or something (nostr:npub1636uujeewag8zv8593lcvdrwlymgqre6uax4anuq3y5qehqey05sl8qpl4 ?)

So, you can pay 100 sats to the pubkey, to have your comments show up, in our app.

And you can use anon zaps instead of private ones. Get away from encryption.

If you don't pay at least 100 sats, then just the money amount gets listed, not the comment.

This solves for advertising, as well. To advertise on Alexandria, you have to pay n amount to the npub who owns the thread.

Each npub could also set a minimum amount, all the way down to 0 sats, or a maximum amount, all the way up to 100k sats.

That's the cost of having your ⚡messages show up in their thread, for the general public. Anyone who is not logged in, can only send zap messages. Anyone who is logged in, can do either, anon or not anon.

Those are like sponsored messages, but for any npub, and the money goes straight to the author of the event being zapped.

What do you think nostr:npub149p5act9a5qm9p47elp8w8h3wpwn2d7s2xecw2ygnrxqp4wgsklq9g722q ?

Communikeys (and the apps built on them) have the advantage that:

1) they have a global state (and don't need to know who you are for reading + conditional display of replies, etc...). Spam is defined by the Community.

2) they can define their publishing conditions (price list) for each content type. So if the price for publishing an Article is ⚡ 100, they don't need to know anything about you to accept that publication.

That said, there are huge benefits to signing publications with your nsec.

To me, a good daily driver = your signer

Zapchat is (becoming) such a daily driver. (although you can browse in it without adding any profile)

Zapstore, on the other hand, is an app where "adding a profile" or "spinning up an nsec in the app" probably makes less sense. It can just display the app releases of some default communities, lets you select other ones. By adding profiles (i.e. getting npub info via Android Signer, like Zapchat or Amber) the UX will still be better though. And I don't see anything wrong with that. For publishing app releases, zaps, etc... you need a signer connected. And on Android and Desktop (not web), there is very little issues with that.

Yeah, it's highly use-case dependent. Is it my daily-driver or favorite community app, setup with my favorite relays? Sign away.

Am I just exploring it, is the repo owner bit dodgy/unknown or is it closed-source? No sign.

Do I only use it, occasionally? Read-only login and I interact over my daily driver's generic event search (find an event and hit *reply*, *zap* or *react*).

And so on. But the levels only work if the app takes the different states into consideration in the design, and tries to stick to the lowest state that is practical, with an offer to "upgrade" to a higher state, during a specific action.

They should always be upgrading _for some specific reason_.

Exactly

I can't wait to show you what I did with the wiki disambiguation page. 😁

You've created a feature monster. All your fault. I was old and needed the zaps.

I don’t know if it’s possible to thread comments that are all zaps and wallets have their own rules about content length and such.

But design wise, it’s possible to go multiple ways with this. Even so far as to allow a publisher to include a min amount in the index tags and have it honored by the client.

Ooooh, yeah. Custom zap-message amounts, by client, npub, or event. Damn.

And the client can have an option, for you to share your zaps with the devs.

Well, zaps have an e tag, so they can be replies, otherwise, they default to the kind 0 replies.