We’re at the state in nostr clients where “you can move between clients “ with the same key is no longer true. Logging into other clients can easily break your account on damus because many will wipe your relay list. Damus strictly follows your relay list when pulling data so that you have ultimate authority of what is received in your feed.
This is not the only way to do it, the gossip model model will pull data based on what other users define in their relay read/write descriptors, but then the user has less control on what is displayed and from where, as it becomes a decision that other users make on your behalf. This is actually good for decentralization but it doesn’t mean its the best or only way to fetch notes.
because this is not defined by the protocol, many clients make assumptions about how data is pulled. Many just used a fixed set of relays or use their own cache relay. Some use gossip model. This means logging into different clients might give different views of the data.
So if your damus account is broken by another client, sorry. All i can say is “warranty is voided if you put your nsec into another client”. And that is pretty sad :(
Thread
Login to reply
Replies (64)
Could Damus auto-post your follow list somewhere that it can be reimported if wiped?
It will cache versions locally. We will then be able to detect corruption and self heal.
That should work in most cases
Growing pains. We'll get it ironed out! 💜🫂
Integration of log-in via things like nsec bunker fix this by allowing granular permissions control. Would like to see more clients integrate even on mobile for just this reason. I want a new client to explicitly ask me before overwriting my data. Of course this isn’t necessarily good ui for newbies!
Someone should make a FIDO2 login. I love my yubikey. I wish I'd got one a lot sooner.
I'd trade it for a tapsigner that can do it tho. PV and tapsigner are functionally the identical thing.
I've been fucked few times by client switch and I don't see a problem with this. Different clients, different implementation - solutions? The users must be aware about the this , this is the descentralization and must back up!
#damus rocks 💪 and you you don't need to apologize 🫂
I've never had any problems, between amethyst, plebstr, coracle, iris, snort and idkwtf else.
It sounds like apple cope to me.
I did tested many clients with my main account and my relays & following list got messed up. Since then I do back up regularly and when I do test clients I use a burner npub.
What is your main client? Damus?
My diagnosis is Damus is the problem. I don't have this issue at all and I've used everything except an iOS device or Windows.
I’m guessing other clients use a fallback set of relays then. Damus is pretty strict when it comes to following your relay set. Damus could do this too but it would only hide the problem
Well, there's the problem right there.
Nobody else is having this problem, apart from Damus users.
IMO, the real problem is Nostr has no countermeasures against spam, or relay failure. Damus' strategy is very brittle. Do you think Bitcoin would work if you only had like 10 peers and it didn't run off on its own looking for more?
Correct
Personally, I like it. This is how we educate people to take care of their own shit.
its brittle because it is strict and is detecting bad stuff. Other clients accepting silent data corruption isn’t very good either.
dont use it then 🙂
For spam we have mute, and for relay failure..you can easily run your own relay.
I’ve been looking at how clients manage user relay preferences and I see a lot of “common public relay” constants being used as a fall back if they can’t find a kind 3 contact list with relays on it.
I think clients unifying on publishing and using kind 10002 relay lists for users would help. But as you already know that requires everyone being more strict and folks tend to not do that.
By tomorrow I’m going to make it so that on https://relay.guide you can create, publish, and manage relay lists for all the clients that respect it. Hopefully more clients move towards using it.
It would be nice if freedom tech people would recognise how utterly unfree their iChains are.
I like the fact that it can fall offline, also.
I always imagined in the future a p2p social network system where eventually people would charge for access to their fat cache. There is uses for this in the context of dispute resolution too, in that these archives could have a system that mutually certifies each other's set and distributes everything between them, acting like a backbone does for the internet.
I think that Crapple users are a special kind of brainwashed, extra double plus than the rest of the population. They are used to highly reliable everything that they don't realise is why they pay so much more. It's to fund their surveillance.
This is very evident to me.
The problem I anticipate in the future is not being able to delete content. There should also be an expiry date field on notes so compliant relays purge it. This also saves on complexity for cache culling.
Clients that don't use kind-3 contact lists should preserve the content when altering that contact list. Gossip itself does. I will repost this and make that point.
If there were a NIP somewhere stating this, I'd bet people would have done it already.
Client devs: If you edit the user's contact list, please preserve the contents of the previous contact list (even though the NIP says the contents should be empty, ignore that, preserve whatever they were).
View quoted note →
if anyone reading this thread is struggling with 'accounts breaking while switching clients', you can always backup your data here:
Nostr Profile Manager
I had same issue and try use this website to roll back, however it says it cannot find my profile
One of the most fascinating things that existed in the protocol… 😔
Good thing I never was stupid enough to by a crapple.
Is there a good way to show users which clients implement which parts of the protocol correctly and whiparts they break? Something as official as the NIPs repo maybe
This is why it's called "bleeding edge".
View quoted note →
Wait, damus doesn't use nip-65 kind 10002 yet? It'd be nice if it did, one step closer to managing relays better. All clients I know of already made the switch.
Damus has been storing relays in the same way relays have been stored since the beginning of clients. Damus doesn’t implement the gossip model and does not implement nip65. I can only use damus on my account, most other clients don’t work and are unreliable. I’m going to keep going with what works instead of what people say “is better”.
Nip65 is the new standard tho. Seems kinda stubborn to be against using it even without the gossip part. Loosing contacts was always problematic right, so why not upgrade? If every client looks for 10002 that's what makes nostr client switching seamless (and has been working quite nicely for me in gossip, snort, coracle, amethyst, primal, habla news, yakihonne, flycat).
Ignoring contact list corruption and overwriting isn’t really a solution to the problem
problem with nip65 is that its not just a relay list spec, it prescribes a specific way to pull data from these relays which damus isn’t really setup to do (yet).
Are you talking about the read and write optional tags on the specified relays?
Yes to me that NIP is more a signal that the client uses the gossip model than anything else. Doesn’t add anything otherwise.
I’d love to understand how you’d prefer users set and publish their preferred relays. The kind 3 contact list seems a little brittle to me
how so
I vehemently reject the idea that nostr clients have to keep implementing the “next great idea” so that it keeps working. Bcash mentality.
I agree, I don’t want that culture either. Just looking at the nip for the kind 3 event it doesn’t look like it was intended to be where people published their preferred relays.
I’d be happy to standardise on kind 3 if we updated the NIP for that expressed purpose. But in talking to some folks they thought NIP 65 would be the way to solve the preferred relay problem going forward.
I just wanna go with what people prefer I am agnostic. Just pulling for one standard and I haven’t heard consensus yet.
This conviction is the best thing about you.
Yep, had a few bad experiences doing this. I’m being much more careful now.
Definitely more careful now. I make burner nsec to try out new client.
Gotta practice safe nsecs 🤷🏾♂️
This is not ideal but hasn't it been like this from the beginning?
In the early days with nostrgram, iris, snort I would often have follows/followers/relays changed when switching clients.
yes but its worse now because there even more ways to store relay lists
Interesting, my amethyst has been acting funky lately, it seems it may be other clients I added lately on browser and desktop
Having different views in different clients is a feature, not a bug.
No ... it's a bug
Damus could easily fix that by saving relay lists locally like Nostur.
yes this is why im doing that now on the nostrdb branch
Test
nostrクライアントでは、「同じキーでクライアント間を移動できる」というのはもはや真実ではない状態だ。
View quoted note →
why dont you use the nostrmo approach?
it will run on their default relay list but offer you to switch to nip-65 list if you want
pointlessly complicated
Good to know. I’m glad I resisted using other clients when Apple banned Zaps for Damus.
Relay control is essential.
Amethhyst never gets my relays...
I know relay.damus.io has my relays corrext, and Amethyst has that... but its still not getting my latest relays
My Damus Client is broken. I can log in with my key, but nothing appears in my feed and no Relays are connected.
But I am confused. Every other client works. An in other clients, I can see my connected relays. Can I somehow fix it?
Not sure what's this problem is. The network is ok but damus cannot connect to these relay


Early adoption is fun 😅
View quoted note →
I wish I understood this better :/
Could this cause you not being able to follow people?`(been having this problem for weeks)
I understand that the current state of Nostr clients means that it is no longer possible to move between clients with the same key without breaking your account on Damus. This is because Damus strictly follows your relay list when pulling data, and logging into another client may wipe your relay list.
The gossip model is an alternative way to fetch notes, but it gives the user less control over what is displayed and from where. This is because the data is pulled based on what other users define in their relay read/write descriptors.
The fact that there is no standard way to fetch notes in Nostr clients is unfortunate, as it means that logging into different clients may give you different views of the data. This can be confusing and frustrating for users.
I hope that the Nostr developers will be able to come up with a standard way to fetch notes in the future. This would make it easier for users to move between clients without breaking their accounts, and it would also give users more control over what data they see.
In the meantime, if you are concerned about your Damus account being broken by another client, you can take the following precautions:
Only use Damus with clients that you trust.
Make sure that you have a backup of your relay list.
Be careful about what data you share on Damus.
This should not happen ... but it does.
big bug in protocol, very good to know!!
Is Damus still saving a users relay list inside kind-0 or did you switch to NIP-65 ?