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 :(
Login to reply
Replies (104)
Shits fucked mane
What about NIP-05? Is any client using Relay list from NIP-05 or is it obsolete?
Bad luck. I Don't have iphone.
@jb55
I think this is a byproduct of a free and open protocol. There will be good clients and bad clients because there is no authority to stop them.
It will be incumbent on the user to do their research on whether a client is good or bad.
That being said other then word of mouth is their a rating database for Nostr clients. A place where users can give feedback so new users can pick the best clients?
@Derek Ross @PABLOF7z
I second this, lists will always result in race conditions
agree
What about this scenario. I experimented in adding relays to my profile network, but after a while, I decidet I'm done experimenting, and clikced on "reset to default" and ended up with original set of relays. What happened, as a result, I lost all people I followed. Ups...
No idea
Not OP, but several have done it to me. Often because the new client hasn’t pulled all my stuff yet, so if I edit it in another client and click save, it’s overwriting my list.
99% of my issues went away when I started only using one client to make relay list changes, and only used other clients for viewing/interacting.
yes i never have any of these issues, I never let other clients touch my contact list.
One of my oldest nostr memes.
"not your backup, not your following list".
Thankfully we have sites like and for kind-wiped events.
Thankfully we have sites like nostryfied.online - Coming Soon
Nostr Profile Manager
yes its a good idea worth exploring
Same started using my test account for other clients and my main on Damus..no issues
Yep. It can be as simple as the new client hasn’t gotten the lists cached yet, or the default relay set for the client doesn’t include one with my list.
Some of this might be alleviated by allowing users to make temporary changes to their relay list in clients, without saving them as an event.
That way, i open new client X, temporarily add TheSameCat relay, and know the client can find my real lists.
Not sure how to make that a good UX though.
Great. It’s the shitcoin explosion 2.0.
One possible solution could be to standardize the way that data is fetched or at least offer a translation layer that allows different clients to understand each other's assumptions. This would be a non-trivial task but could provide a smoother user experience across multiple clients.
There is an old discussion on this topic:
IMO some kind of generic data model for building lists or merged state could be helpful so we don't make the same mistake in multiple places
GitHub
Add kinds 10 and 11 to prevent race conditions when updating contact lists by staab · Pull Request #349 · nostr-protocol/nips
A very common experience on Nostr is that of "losing follows" due to race conditions when sending kind 3 events. Earlier this week someon...
yeah, this is fundamental and if a client is causing this I'm sure its developer will want to know!
Yeah, Coracle used to do this but it's mostly fixed since I wait for a relay/contact list when logging in. It is still possible to not find them though.
I originally generated my stuff using Damus desktop client. Then I moved to mobile Amethyst on phone. What happens with my combo kinds ( I have been using other clients, but I have been adding/removing relays only using Amethyst)
Good to know. I’ll stick to Damus for now, hopefully devs find a solution soon 🤞
I've started using to back up/keep track of relays and follows so I can restore them if they get messed with.
Nostr Profile Manager
Good advice, tnx 👍
Maybe a solution could be to define a set of tests for nostr clients handling of accounts and a public website where test results on available nostr apps are published ?
😭😅😎🤙
It happened to me with primal. Not sure if they fixed it. View quoted note →
Good to know!
damn, sorry 😞. Will try to make damus more robust to these problems.
Could Damus auto-post your follow list somewhere that it can be reimported if wiped?
Growing pains. We'll get it ironed out! 💜🫂
It will cache versions locally. We will then be able to detect corruption and self heal.
That should work in most cases
nah, create another profile to explore with
nostr waits for no one
The problem is most of these bugs are non deterministic
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!
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 🫂
Mutable data should not be interop in my opinion
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 →
I am on android so no worries 🤗
if anyone reading this thread is struggling with 'accounts breaking while switching clients', you can always backup your data here:
Nostr Profile Manager
One of the most fascinating things that existed in the protocol… 😔
Good thing I never was stupid enough to by a crapple.
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.
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.
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
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 🙂
This kind of thing makes it really difficult for people like me who want out of places like IG but don't even know what the right questions are in order to participate here properly without having things break. I use Damus on my phone but can't zap anyone. I use Iris and Primal on the desktop but both of those aren't as good as Damus. I'm still here bc I believe in what Nostr is doing (the overall picture) but looking forward to an easier experience.
This is why it's called "bleeding edge".
View quoted note →
just growing pains. All of these things are fixable. Im just pointing it out so people know what the problems are so we can work on fixing them.
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.
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.
Yep, had a few bad experiences doing this. I’m being much more careful now.
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”.
Definitely more careful now. I make burner nsec to try out new client.
Gotta practice safe nsecs 🤷🏾♂️
What a good smell #Amethyts
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
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
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
It happened to me after my first month here on #nostr. I started in June, btw. I used to edit relays on one client only. One day I started editing them on other clients and views suddenly changed from less than a hundred to less than 5, like literally! So I went back to doing it on one client only, again, and it's starting to pick up now
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.
My pitchfork is ready, who are we lynching?
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.
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.
Damus could easily fix that by saving relay lists locally like Nostur.
Not for 99% of users, only for the crazy early adopters.
This conviction is the best thing about you.
Probably Primal.
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.
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.
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?
I had same issue and try use this website to roll back, however it says it cannot find my profile
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.
No ... it's a bug
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 ?