A fan of Monero and distributed social sites. Currently building Nosdag.com a Nostr client (with built in XMR tipping) that uses IPFS to store your notes, Nosmero.com - a Nostr client with XMR tipping and Swarmnero.com, a true p2p social site with XMR tipping built on holepunch/pears.
Public Key
npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Profile Code
nprofile1qqsrt5u05thm0j05kxljpfxjehkhxxc49mv8rg92e8tjx3extjd59kqpz3mhxue69uhhyetvv9ujuerpd46hxtnfduqs6amnwvaz7tmwdaejumr0dsuupvy7
Show more details
Published at
2026-08-07T02:57:36Z Event JSON
{
"id": "3c685e8805007f2fe0e7e1064f51205756952c83abeac0e526aeaebb54a848f9" ,
"pubkey": "35d38fa2efb7c9f4b1bf20a4d2cded731b152ed871a0aac9d72347265c9b42d8" ,
"created_at": 1786071456 ,
"kind": 0 ,
"tags": [],
"content": "{\"name\":\"Graham O'Nero\",\"about\":\"A fan of Monero and distributed social sites. Currently building Nosdag.com a Nostr client (with built in XMR tipping) that uses IPFS to store your notes, Nosmero.com - a Nostr client with XMR tipping and Swarmnero.com, a true p2p social site with XMR tipping built on holepunch/pears.\",\"picture\":\"https://www.getmonero.org/press-kit/symbols/monero-symbol-480.png\",\"website\":\"https://www.nosmero.com\",\"nip05\":\"[email protected] \"}" ,
"sig": "5f183db555d1d8fb1dc0dcd8aeb1c39d7737783a308169efe967f0da368c1df048e1f4e34dea2d62fa5b6e88a0d69b42dd18d289458080202306ef8f650a7c81"
}
Last Notes npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero Ha, my effort at making a thread just discovered another bug. I believe no replies beyond 3/10 are visible in thread view. Oh well, fixing now. npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero 10/10 Replies from people you follow attach to your threads automatically. Replies from strangers wait in Requests until you decide, and what you endorse publishes as a curation signal others can use. That's the Nosdag view, a regular Nostr client still shows everything. Also in there: long-form articles, encrypted DMs, bookmarks, search, paywalled notes, and an importer for your pre-Nosdag timeline. It's an Electron app. Linux tested. macOS tested on Apple Silicon but unsigned, so it needs xattr -cr once. Windows completely untested, since I don't own one. Or clone the repo and run from source on any OS. npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero 9/10 There's an anonymous mode: a Tor daemon, a v3 onion service, an IPFS node that dials only over Tor, and onion relays in place of clearnet ones. If the Tor daemon dies, network access is cut. No silent fallback to clearnet. Already run a tor router or a Whonix-style gateway? Point Nosdag at it instead. One trade-off it tells you up front: without control of that Tor instance it can't publish an onion service, so you can read the network but nobody fetches from your node directly and it also means no one can pin your content on their node. npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero 8/10 Payments are Monero, because a tip on a public timeline is a public payment. Monero keeps the amount, the sender and the receiving address off a readable ledger. The wallet is built into the app to tip a note, or the author directly. It's called the Tip Jar deliberately: it's for tips, not for storing your savings. Tips are secret by default. You can choose to disclose one on-chain and earn a verified badge on it, but that's permanent and public. You can also point it at your own Monero node. npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero 7/10 Nosdag shows a trustless count of how many nodes hold your content, taken from the DHT, and marks each note as backed up or only here. What it won't do is name who hosts you. Publishing that would map the social hosting graph onto public relays, who pins whom, readable by anyone, forever. So it stays just a count. npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero 6/10 Your node isn't online all the time, so two things keep content reachable. Cloud Bridge. You can link an IPFS pinning service and your notes stay up while you sleep. Hosted Follows. The real social part. Follow someone running Nosdag and you can host them from your own machine: their notes, or their notes and media, your call, inside size caps you set. It's a way to support an author with nothing but the spare space on your disk, and it keeps their content serving when they're offline. Or run neither and accept you're reachable only while the app is open. The app tells you which of the three is actually true for you. npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero 5/10 Media goes to your own node, referenced as ipfs://. No third-party image host, nothing to rot when a service folds or decides your file is a problem. Any size too, video streams straight off disk rather than being loaded whole. Up to 10 files per note. Video and photos get metadata stripped first, and HEVC gets converted so it plays for everyone. If your node can't serve a file, Nosdag races public IPFS gateways. If those fail too you get an honest "media resting" marker instead of a broken image. npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero 4/10 Discovery is one small pointer on relays saying: newest note, right here. That's the entire mechanism. A reader resolves the pointer, fetches that note from IPFS, then walks backwards, checking every signature and confirming each link matches what you actually signed before trusting a word of it. Nobody can quietly hand a reader a doctored chain. npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero 3/10 Each note is stored as a signed Nostr event wrapped in a small object that points back at the one before it. Your notes form a chain. The useful part is that those links are real, not just references. Pick up the last link and the whole chain comes up with it. Ask for the newest note and you get the entire history, no index to fetch, nothing to keep in sync. Same trick is why your whole history exports as a single file you can back up and re-import anywhere. npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero 2/10 The problem it's aimed at: we ask relays to be permanent storage for everyone's content, forever, for free. That doesn't scale, and it quietly decides who gets to keep hosting. Storage costs someone money, and whoever's paying eventually starts having opinions about what's worth keeping. Move the payload to the people who wrote it and a relay shrinks from a terabyte content store to a kilobyte pointer database. npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero 1/10 A quick guide to Nosdag: what it is, what it's for, and how it works. Nosdag is a desktop Nostr client with an IPFS node built into it. The name is from “Nostr + Merkle DAG.” Merkle DAG is the magic behind IPFS. Your keys and relays still do identity and signaling. But your notes, media and history live on an IPFS node running on your own machine, not in a relay's database. Other Nosdag users pull your notes straight off your node while you're running the app. Everything still gets published to relays too, so people reading you in Damus or Amethyst see you exactly as before. Bring the npub you already have as the profile, follows and relays come with you. npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero Clarification: it is available to pull from github, the download builds are still building. npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero Nosdag 0.1.6 is out. -Fixed notifications bug: if someone quote-reposted your note or mentioned you without replying, Nosdag silently dropped it. Notifications are also stored locally now, so a relay being slow once no longer erases a notification permanently. -Fixed Profile update bug where profile was frozen for the same class of reason. Nosdag read your kind 0 from cache and then never checked again, so a profile edited on another client never arrived. It revalidates now, and always re-reads your own at login. It was also taking whichever relay answered first rather than the newest, so a lagging relay could pin an old profile over a current one. -A quote repost of your note can now be approved in Requests, which endorses it onto that note's thread. -Search results now apply your mute list. -There is now a banner on login to let you know a new version of Nosdag is available to download. Thanks, and please let me know if you run across any other issues. npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero Nosdag 0.1.5 is out What changed since 0.1.4: Threads actually show the thread now. The right panel could render a note with one reply or none no matter how many existed, and clicking a reply sometimes opened nothing at all. Both fixed. Replies the author hasn't endorsed now appear for everyone, slightly dimmed, below the endorsed ones. Notifications stopped missing things. Mentions and reactions that only reached the big public relays didn't show if your relay list didn't include them. Notifications now check those relays alongside your own list. The tabs look like tabs. The switches above the feed (Following / Popular / Trending Monero / Live) and inside My Node, Settings and the Tip Jar were easy to read as plain text and miss entirely. They're proper buttons now. Hosting a friend no longer depends on catching them online. Flip hosting on for someone whose machine is off and the toggle used to just shut itself back off. Now your choice sticks: the row shows "Waiting to pin" and the app keeps retrying for as long as it's running, then tells you when they're pinned. Host notes without the media. Each hosted follow has a media checkbox, untick it and only their notes get pinned, skipping the disk-heavy part. Also fixed: clicking Requests could scroll the whole app under the top bar with no way back. Downloads for Linux, macOS and Windows (untested): https://nosdag.com Thanks, and let me know if you spot any issues or if you have suggestions. npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero Nosdag update: Three bugs were fixed, notifications weren't grabbing everything, right column threads were not populating, and the Requests dropped the header. If you are pulling from github you can grab the update. Otherwise, builds will take a few hours as I'm still adding some other tweaks. npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero No, but I think that makes sense to have that option. I'll figure out how to add that. npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero There is an existing option for pinning to your node the notes and media of users you follow. It's in My Node. See attached. Are you suggesting a more specific pin-individual-notes option? https://dweb.link/ipfs/bafkreibie3om556bco4slcedsoxbujq2vrwtg2ynfd6mauwpo2sut2gm3e?filename=media.png npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero Nodag update: I'm aware of a couple of bugs I need to squash, some replies aren't showing up in thread view and the left menu is getting stuck. I should be able to get to both in the next few hours. npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero Thanks for the feedback, and you're very welcome. I'm pretty excited about this project. I'll fix this bug shortly. npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero Posted, 0.1.3 is live with the fix. npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero Ugh. Need to make and post the builds. I need sleep. npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero Fixed. No limit to media size attached to notes. npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero Nosdag update: I forgot to remove the media limit for notes. It was a carry over from some of the code I reused from nosmero. As you are doing the storing and sharing with IPFS, a limit is pointless. Working on that now. npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero Nosdag is up: https://nosdag.com It's a desktop Nostr client that keeps your notes and media on an IPFS node running inside the app. Bring the npub you already have. Same follows, same relays, your notes readable in every other client What changes is where the data lives. It's now on your machine, not somebody's image host. Your notes still go to relays as normal Nostr events, so anyone on any client reads you as usual. What's added is a small pointer to a content-addressed copy of everything on an IPFS node running inside the app: your history as a signed chain anyone can verify and walk, and media served from your machine rather than an image host. Also in there: -Monero tipping -Tor mode that runs the whole app over Tor (or through your own tor router) -whole-history export as a single file you can back up. Linux builds are up and tested: AppImage, .deb, tar.gz. For macOS or Windows it runs from source in four commands. The instructions are on the site. There's a Windows zip too, but I no longer have a Windows machine so no clue if it built correctly. If you test it, please tell me if it works or send me the error messages This is beta so any feedback is appreciated. Thanks! npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero Thanks for the idea. Everything outbound already runs through a single SOCKS endpoint internally (relays, IPFS dials, even the Monero wallet's circuits), so pointing that at an external proxy with circuit isolation via SOCKS auth instead of current torrc seems like a nominal change. npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero No, Kubo embedded as a sidecar, plus a Helia node over Tor for anonymous mode. iroh dropped CIDs, the DHT, and gateways and I needed that compatibility so that regular nostr clients could use the gateway for rendering, trustless DHT provider counts for the durability display, and compatibility with pinning services. npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero Happy Saturday Monero Fans: It's been a while since I've been on here due to work and a new Nostr project I've been working on. I'm making this note from it right now. It's called Nosdag (Nostr + Merkle DAG), and it's a desktop Electron app instead of a website. You log in with your existing nsec, so you keep your identity and your followers. I've been intrigued with IPFS for years and have been sketching out how to use it with Nostr. This project's goal is to improve the data sovereignty and privacy of Nostr users. First, Nosdag doesn't depend on relays to store your notes. Relays can wipe your notes and you lose nothing. Your notes, media, and entire history live in an IPFS node embedded in the app, on your machine. Relays are mainly used so clients can find each other and fetch the latest CID pointers because your machine serves the content itself. But every note is also automatically published to regular relays (but with media served through an IPFS gateway), so it shows up in any Nostr client. Your history is an append-only chain where one CID names all of it, so a single pin replicates everything. You can export the whole thing as a one-file backup and restore it anywhere. Second, there's an experimental anonymous mode that runs everything over Tor, relay communications, media transfers via your own onion address, even the Monero wallet traffic. In anonymous mode the relay signaling layer can run over onion relays, making fully-Tor Nostr possible. Next, you can pin the accounts you follow so their notes stay reachable when they're offline, and link a pinning service (Filebase, for example) so yours do too, with per-note indicators showing what's backed up and how many nodes actually hold it. And finally: native Monero tipping and a noncustodial tip jar, just like Nosmero, plus XMR paywalls, and tips that are verified on-chain before they earn the badge. Still refining as time allows. Beta opens soon. https://dweb.link/ipfs/bafkreiaciv4amml7pgbhgsjswhr6z3a25s7uqjjlnilti4mk65byaxaz7a?filename=media.png npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero I'm Jack's complete lack of surprise. Payment Targets is objectively awesome and should have been celebrated by the "generic" or broad-based Nostr clients if the goal was to attract everybody. But the almost universal critical response hightlights the truth that Nostr is now really just about evangelizing Lightning and being a bitcointalk clone. Fortunately, Nostr is an open protocol so anyone can make a agnostic zap client that uses Payment Targets. They'll probably be very successful. Of course, I'll keep developing Nosmero as an unapologetic monero client in support of a monero commerce ecosystem 😀 npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero As to Payment Targets, probably not. Nosmero is intentionally opinionated, I've been trying to shape it around one premise: be a XMR ecosystem for creators and their supporters. Payment Targets' "render every rail and dispatch to external handlers" approach is not Nosmero's. Payment Targets, though, is awesome for general Nostr clients. As to I2P I looked at it when I got the itch to make something on a network that is even more decentralized that Nostr, but ended up trying out the Holepunch/Hyperswarm stack with Swarmnero at https://swarmnero.com It is kind of a port of Nosmero, complete with XMR tipping. I'm still poking around I2P to see if it can support an interesting project I'd want to work on. npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero I'm really glad that there is no "you're doing it wrong" with monero. npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero 👇 This is the main reason I got into monero but it is often treated as a secondary feature by XMR fans. I'm hopeful the on-chain controversy currently raging on nostr opens some eyes to the very real problem of tainted coins. While the open ledger issue of bitcoin is mostly ignored by the bulk of bitcoin fans, the issue with on-chain zaps is providing a different scenario that does well at illustrating the need for fungibility. If it is not fungible, it is not money. Simple as. #note1agw…4ehh npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero Plot twist of the decade has to be nostriches crashing out over using bitcoin ☠️ #note1zk5…wf2v npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero I added the option of creating an account with a username and password early on to Nosmero because normies understand that process (actually just did a big refactor of this feature to harden security). Username-password requires no explanation because that is *The Official Signup Process* for social media sites. Yes, I understand people reuse passwords and usernames and all that, but acting like a "regular" social media site on this point for new accounts, I think, makes onboarding easier. Nosmero accounts created with username-password can export their nsec from localstorage to use in another client once they grok how nostr works. For anyone curious, here's how it works in Nosmero with the goal of the nsec (or password) never leaving the user's machine: 1. The browser generates the nsec locally (nostr-tools generateSecretKey). 2. The browser encrypts it with the user's password using NIP-49 (scrypt + XChaCha20-Poly1305) → produces an ncryptsec. 3. The browser derives a per-user salt deterministically from the username (SHA-256 of username + a public domain-separator). No "give me the salt for user X" round-trip. 4. The browser PBKDF2-hashes the password with that salt. 5. ONLY the ncryptsec and the PBKDF2 hash get sent to the Nosmero server. The user's nsec and the user's password both stay on their machine. 6. The Nosmero server bcrypt-wraps the incoming hash before storing it. So even if the database is leaked, the stored blob isn't a credential, it's a bcrypt(PBKDF2(password)) which still needs offline brute-forcing. Login is the same in reverse: client recomputes the deterministic salt + PBKDF2, server bcrypt.compares against the stored blob, returns the ncryptsec, browser decrypts it locally with the password. The local nsec is then used to sign events. npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero Back when the paywall feature was added to Nosmero I didn't see an NIP and missed the PR #2156 discussion. 100% agree on using a universal solution. Currently Nosmero is: per-note one-time unlock. Kind-1 events carry an ['encrypted', ciphertext] tag (AES-256-GCM); the key is custodied by our backend and released over HTTPS after we verify an on-chain Monero tx_key against the receiving subaddress. Public preview text sits in the event body so the note still renders in other clients. Source: js/paywall.js + api/paywall.js at github.com/grahamonero/nosmero. Regarding the PR discussion, I understand the current draft is focused on memberships with kind 1163 and defers individual pay-per-view content to future additions. I like the idea of subscriptions though; the goal of Nosmero has been to get content creators paid in XMR and subscriptions would be a great fit. I can share Nosmero's production data on per-content unlock on the PR, what it looks like and how on-chain proof-of-payment fits. It did get me thinking about an optional ['proof', method, data] tag for portable proof-of-payment which survives the access list being GC'd. It works cleanly for XMR (txid, tx_key) and I think it would work for Lightning too (paid invoice). npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero That was a great suggestion. Just added it. Thanks! npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero Off the top of my head I can't recall, paywalls have been implemented for a few months now. In general when I couldn't get a NIP to work well with a monero part of the site then customized code was used. Nosmero went through a bunch of interations on how monero tipping was implemented and as features were added. Not a lot was plug-in-play. I'll go through my diary and see what the issue was, but this is a timely inquiry as I want to spend the month going through the code and replacing ad hoc solutions with an NIP when possible. Standardizing the paywall is now on the roadmap. Thanks for the feedback, I appreciate it. npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero Loaded Zorin 18.1 on a 2021 17" LG Gram and it's been great. I had some trouble with pasting into terminal but a quick Brave search explained the clipboard issue and gave the command to fix. I highly recommend Zorin for anyone looking for a daily driver distro. npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero New pear address for swarmnero: pear://y3m1mm1xxrqj9jz5jpicc57rt4dem5t5g9s78j9riqft94u4j6jy npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero New pear address for swarmnero: pear://y3m1mm1xxrqj9jz5jpicc57rt4dem5t5g9s78j9riqft94u4j6jy npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero FAQ 2/2 Swarmnero **Wallet & Monero** *Is the wallet the same as my account?* No. The Monero wallet is independent from your social identity. You can use Swarmnero without ever unlocking a wallet (you just won't be able to send tips or purchase paywall unlocks). The wallet has its own 25-word seed — back it up separately from your account Secret Key. *How does tipping work?* Each post generates a fresh Monero subaddress while your wallet is unlocked. Tippers send XMR to that subaddress; the author's wallet sees the incoming transaction and can correlate it back to the specific post. Tip events are batched with a 6-hour delay and shuffled before broadcast, so the timing of an on-chain payment can't be linked to a swarm event trivially. *What's a paywalled post?* The author encrypts the post body with a random key, puts a preview + price in the clear, and publishes it. A buyer pays the price to a unique subaddress, and the author's app sees the payment, verifies it, and releases the decryption key to that buyer (encrypted with the buyer's own public key). No refunds — the payment and key exchange are both peer-to-peer and irreversible. **Network & privacy** *Does Swarmnero work over Tor?* No. Hyperswarm uses UDP (UDX) for peer discovery, and Tor only routes TCP. Even with Tor running on your machine, Swarmnero's P2P traffic bypasses it and your real IP is visible to peers. Use a VPN that routes UDP if you want IP privacy. *What data is stored on a server?* By default, nothing. All data lives on the devices of users who replicate it. There's an optional Swarmnero-run VPS feed backup for paid supporters ($12/year in XMR), which mirrors your feed so followers can still see your posts while you're offline. **Common issues** *I clicked a paywalled post and my wallet balance shows "locked pending confirmation" for a few minutes.* Monero protocol locks newly received funds for ~10 confirmations (~20 min). The balance is correct and the transaction is in the wallet — the lock is at the blockchain layer, not the app. The paywall unlock happens automatically in the background, typically within 15–30 seconds of the payment being visible to the author. *My Followers list shows a Swarm ID instead of a name.* That follower hasn't been online during any of your sessions, so Swarmnero hasn't received their profile data yet. Once their app and yours are both online at the same time, their name and avatar will cache and show on future sessions. npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero FAQ 1/2 How Swarmnero actually works — the P2P model, accounts, the wallet, and the tradeoffs. **The peer-to-peer model** *Do I need to be online to see posts?* You can always see posts you've already replicated to your device — if you've followed someone and their feed has synced in the past, those posts stay local. You don't need the original author online to read them. But new posts only arrive when either you and the author are both online at the same time, or a peer who already has their posts (a friend-of-friend who follows them, or the optional feed backup server) is online. So for a new follow who's offline, you may not see anything until the first time you're both online together or a mutual peer relays the data. *Why can't I see an account's posts after I paste their Swarm ID?* Following someone only tells your app who you're interested in — it doesn't instantly pull their data. You have to connect to a peer that has their feed (often the author themselves, or someone who follows them). If everyone involved is offline, you'll see their follow appear in your list but no posts until replication happens. Stay online for a minute after following and their content should start to arrive. *What's a Swarm ID?* It's a 64-character hex string that uniquely identifies your social feed. Share it with someone and they can follow you. It's a public identifier — it reveals no secret information and can be pasted freely. *How does Swarmnero find people if there's no server?* Three mechanisms: Live Now — users who opt into discovery join a shared DHT topic; you see who's currently online and can click through to their profile. Friends-of-Friends — when you follow someone, your app asks them for a sample of the people they follow and recent tagged posts from those people. Hashtag search — posts tagged with #tags are searchable across your network (own feed + follows + FoF cache). If a post has no hashtag, it stays visible only to your direct followers. That's intentional — it's the privacy floor. **Accounts & identity** What happens if I lose my Secret Key? The account is unrecoverable. There is no central authority to reset it. Export your Secret Key from Accounts → Export Secret Key and store it somewhere safe (password manager, paper backup). If the account has a password, you'll need that too. *Can I sign into the same account on two devices?* Not simultaneously — yet. Each account's feed is a single-writer Hypercore, and two devices writing to it at the same time corrupts the feed. Swarmnero shows a warning banner and disables posting when it detects a duplicate instance. For now, sign out on one device before using the other. Real multi-device simultaneous posting requires a different underlying structure (Autobase) and is on the roadmap. *Does importing a Secret Key on a new device copy all my data?* Content you've signed (posts, follows, profile, DMs) replicates in as peers come online. The follower list and DM conversation list rebuild over time as those peers reconnect. The wallet is separate — it has its own 25-word seed you restore independently via the "Restore Wallet" flow. https://image.nostr.build/9982d4738a0a8d0c52a5aae048476ed5cfbf7c77b950e366181a758deb33cdfb.png npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero The app pulls a subaddress from your wallet which is then embedded in the post. The tipper's wallet detects that embedded subaddress and builds the tx from that. npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero As Nosmero is pretty stable at this point, I turned my attention to a pure p2p XMR solution for social media. **I made Swarmnero** — a p2p social network with Monero built in at the protocol level. It runs on Holepunch's Pear Runtime. Zero infrastructure. You install Pear once, then launch Swarmnero with one command, auto-updates arrive over p2p. It shares philosophy with Nostr (your keys = your identity, no central gatekeeper) but trades relays for a pure p2p stack. Posts, follows, DMs, and media replicate directly between devices over Hyperswarm DHT. No intermediaries to censor, index, or go dark. **What's inside:** - Ed25519 identity, signed events — your keys never leave your machine - Native Monero wallet (monero-ts WASM) for tipping posts and replies - Paywalled posts: author encrypts the body, buyer pays XMR to a per-post subaddress, key auto-released after on-chain verification - X25519 E2E DMs between mutual follows (crypto_secretbox) - Hashtag search + friends-of-friends discovery, no algorithm **Install:** npm i -g pear pear run pear://t6athit7zo98y7wb7kupmeaihxu3p5tft5s55nx5a5s634meppgy Eventually I'll get around to making standalone download files for Mac, Linux, and Windows. Full guide + screenshots + source: https://swarmnero.com npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero The nosmero nostr client I made gives you the option of keeping a monero tip anonymous or making it public to signal support. While it was obvious to me that virtually all users would want to stick to the built-in privacy of XMR, I often wonder "if more users made their tips public, wouldn't that be a nice net positive to the monero community?" npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero There's now a couple of nostr clients that support monero "zaps" so the sooner might be better. The one I made automatically pulls monero addresses if they are placed in a user's nostr profile and then adds a monero tip option to notes. Users have the option of tipping XMR directly to you or tipping individual notes. I just discovered you while testing some search upgrades to the nosmero client, followed and tipped 👍 npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero Congrats! The silver bull run has been crazy, but overdue IMO. npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero Exactly! The note showed up in nosmero's Trending Monero Notes tab so when I started reading it I thought it was going to be someone's elaborate joke about bitcoin's lack of privacy. npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero Yikes! "It may seem more difficult than Monero" is quite the understatement. #note18za…6d4q npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero Eigenwallet has worked well for me npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero Check image npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero test npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero test npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero Lol, I'm a poet and I don't even know it npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero Test reply after logging in with Amber npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero Thanks for the letting me know, I'll check it out and let you know when fixed npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero nostr.xmr.rocks nerostr.xmr.rocks xmr.ithurtswhenip.ee npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero Check out nosmero.com npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero Be the change you want to see in the world: #note1ajv…m345 npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero As I can't replicate, I'd need to see the console log output when you click "confirm" npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero I just tested on linux and windows FF without issues, and had a buddy try MacOS, also without issues. Does a red bubble popup saying disclosure failed? npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero Thanks for noticing this. It has been updated to include a link to the specific note that was zapped in the note for the transaction. I zapped you some XMR for the help. npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero It was automatically forcing nsec.app? That was just fixed. Thanks for the feedback, I appreciate it. npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero >Loads my profile properly then nukes it… That should be fixed >Feed doesn’t load properly. Not sure what you mean, don't see an issue on my end >Doesn’t use relays set up in browser extension. It uses NIP-65 settings, is that what the extension is using? >Doesn’t pick up previous set xmr addy that was set up in the last xmr web client (the one that was forked from nostrudel). It only looks in the Settings location or if it's in the Profile about section >Hopefully these issues get resolved and we get a really nice client Me too npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero Thanks for the heads up. I've been doing all the mobile testing on Android and taking for granted iOS would work the same, though the remote login update was tested on an iPhone. I'll try to get to this this week. npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero I just updated so one can now copy paste the URI or individual components into a mobile wallet. Hope this helps with the mobile use of nosmero. npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero I can *so* relate to this note. I don't consider myself a "monero maxi" in as much as I was just looking around to find a crypto that had privacy and monero fit the bill above all others. It just works. #note1c8r…g7ra npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero Correct. The QR method for nosmero that was implemented preserves the inherent privacy by not running a backend database or requiring users to share anything that is either potentially identifying or requires server-side protection. Only the recipient knows what note was zapped and the amount. It would be great to see stats given the social aspect of nostr but, hey, it's monero, stuff is hidden away npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero Check the note for the transaction, it will say "nosmero.com NoteID xxxx" npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero Me 👋 npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero Nice! npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero 👀 #note15g8…qu63 npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero Weird how the nation hasn't collapsed with DC shut down. Such a mystery... npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero "Can you imagine a world with DC shutdown?" https://image.nostr.build/5982ba5b056914668597b9b6aa8fa448a3740fb97a02da72e3fc4b1b000bada8.png npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero You're welcome! npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero Nosmero is open source by the way (of course!) and the github is here: https://github.com/grahamonero/nosmero/ Squashed a few more bugs last night so it should be running smoothly. The $1 monero "bounty" posted on @nosmero is still open, so grab some free XMR and help me double-check stuff is working well. https://image.nostr.build/3d34d4b875917ec790f4d7e88288a592ecfe3319d7dae5e9ec4c150cf8df7de7.png npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero Nosmero, a nostr client that has monero zaps npub135w572zryhrhu406v73fzwvg56t7sps03nzna58l23qfkpnnr3pq65nne8 npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero Hyperinflation is always the end result of fiat. #monero #xmr https://image.nostr.build/394d24bc05aacf8a5671ea04c0d9d3040f14aaa369b77e8074cf9affcd8fc9a8.jpg npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero >wake up >discover there is javascript supply chain NPM infection targeting BTC >it doesn't target Monero >"why didn't I keep Nosmero XMR-exclusive for zapping?" Fortunately, it is a pretty painless patch to fix Nosmero.com and BTC zapping is needed to honor the nostr ethos. Anyway, read about it here: https://jdstaerk.substack.com/p/we-just-found-malicious-code-in-the npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero This was a monthly correlation, btw. Sources of monthly data was CoinMarketCap, Trading Economics, USAGOLD, and Yahoo Finance. At the end of the day, I'm just curious about "money" and IMO gold (physical) and monero (electronic) fit the bill better than anything else. npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero Food for thought on the "bitcoin is digital gold" bromide. Is the better idea "Monero is digital gold?" As a long time gold bug what first attracted me to XMR was how its privacy is similar to gold. So I ran some numbers for the past year to correlate monero and bitcoin to gold. Here is the executive summary: Average Monthly Returns: Gold 3.08%, Monero 4.73%, Bitcoin 6.23% Volatility: Gold 4.86%, Monero 8.43%, Bitcoin 10.99% (monthly standard deviation) 1. Monero shows 3x stronger correlation with gold (0.77) than Bitcoin (0.25) 2. Bitcoin's correlation with gold is much weaker, suggesting it behaves more like a tech/growth asset than a traditional safe haven 3. While both assets appreciated significantly, Bitcoin's path was far more volatile and driven by crypto-specific factors. 4. Monero's stronger correlation with gold may reflect its use case as a privacy-focused store of value, while Bitcoin increasingly trades on institutional and regulatory sentiment. https://image.nostr.build/5f7bbbfc4a364bf1ebf2f9f614ec201e9142f318ab61bba297e4f854330f5dfd.jpg npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero I really appreciate this sentiment. The only monero client I found was garnet, but I don't have an android phone. I vibe coded nosmero.com to provide monero tipping for nostr, and I vibe coded because my day job has nothing to do with coding. Without vibe coding, it wouldn't exist. npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero I saw the same thing. Because Monero fascinates me, I recently made nosmero.com in an effort to bring XMR zapping to nostr with a web app. I think a Solana client would also be attractive to the nostr community given its speed and low transaction fees. npub1xhfclgh0klylfvdlyzjd9n0dwvd32tkcwxs24jwhydrjvhymgtvql23s4p Graham O'Nero Hello Monero Nostr Fans: I think Monero is pretty cool and I think Nostr is pretty cool, so I vibe coded Nosmero.com to build a client that supports XMR zaps. Monero zapping: I decided to go as simple as possible so it uses QR codes for direct payment from your phone. The QR code for each post includes part of the post ID so the recipient can keep track of what post was zapped. There is no zap count or other record of XMR zaps given the architecture of Monero. To receive XMR zaps, add your XMR payment address in Settings and it will be linked to each of your posts. Nosmero, also, supports Lightning zaps. To avoid locking your wallet for each zap, there is a zap queue. You can "zap" up to 20 posts/users but then send all the zaps in a single transaction to reduce the amount of waiting and transaction fees. Please take a look and I welcome any feedback as it's my first ever big project. -Graham #monero #XMR https://image.nostr.build/5abf25db8fdd3d7a258c8cb24ff84043fc570daabbcf0c2e1823e820a9344f39.png