A Bitcoin platform that lets you talk to Speak to Bitcoin in the language you think in. ⚡
Public Key
npub1qs72af3vlexupszr53mfdaj0kxmg2d0ee97gus0vq88xrs984ntqfwr0te Profile Code
nprofile1qqsqg09w5ck0unwqcpp6ga5k7e8mrd59xhuujlywg8kqrnnpczn6e4spz3mhxue69uhhyetvv9ujuerpd46hxtnfduqs6amnwvaz7tmwdaejumr0dsqcyee5
Show more details
Published at
2026-07-12T08:54:58Z Event JSON
{
"id": "bf5ddb6851a57b613e049c13c2f81c4830a1e4e028ded454ba46637af6655ccc" ,
"pubkey": "043caea62cfe4dc0c043a47696f64fb1b68535f9c97c8e41ec01ce61c0a7acd6" ,
"created_at": 1783846498 ,
"kind": 0 ,
"tags": [
[
"client",
"Primal Android"
]
],
"content": "{\"name\":\"\",\"about\":\"A Bitcoin platform that lets you talk to Speak to Bitcoin in the language you think in. ⚡\",\"lud16\":\"[email protected] \",\"display_name\":\"Zappr \",\"picture\":\"https://blossom.primal.net/298647f995359b67d8c1475c7b604a59dba649aed6524a53a3f0de341dd3b196.jpg\",\"banner\":\"https://blossom.primal.net/485e762155999e8a216ae0ed4c08d39a8a31a364dd4cd2b44ae820e2a6ba67fb.jpg\",\"website\":\"https://usezappr.xyz\"}" ,
"sig": "54c845f2cf3ae8f0ab62219d91d6ba03c4f238951dec181d883c5a1aee79200289e58f69a6658cef82141474a79ed68c2b58667a3a575cdb3190b15de31e4bec"
}
Last Notes npub1qs72af3vlexupszr53mfdaj0kxmg2d0ee97gus0vq88xrs984ntqfwr0te Zappr First testers gave us real feedback this week. The most common confusion: "what is a passkey?" and "what does 'open an account' actually mean here?" This is more useful than any internal planning. Are you hearing about Zappr for the first time? Explore Zappr here: https://usezappr.xyz Just use it. Tell us what you think. Tell us what confused you. Tell us what you’d change. That feedback is going straight back into the build. 👇🏽 Join our early testers: https://docs.google.com/forms/d/e/1FAIpQLScgLS5R1kO424fECKW7IPBiGlIujVtHMIy4WhFVpCfHBL9aww/viewform We’re building this with people, not just for people. #nostr #bitcoin #buildingpublic npub1qs72af3vlexupszr53mfdaj0kxmg2d0ee97gus0vq88xrs984ntqfwr0te Zappr Thank you for reaching out and I'm truly sorry about what you're going through. We're a small team building with very limited resources ourselves and we're not in a position to send funds right now. I hope things improve for you and your community. Stay safe. 🙏 npub1qs72af3vlexupszr53mfdaj0kxmg2d0ee97gus0vq88xrs984ntqfwr0te Zappr If you've been curious about Zappr, this is your chance to try it. Start here ➡️ usezappr.xyz Tap your fingerprint, and tell us what happens. No polished feedback needed. Tell us what works. Tell us what confuses you. Tell us what breaks. That's how we build better. 👉 forms.gle/qokjg81vBcYvH9… #Bitcoin #Nostr #Lightning #BuildingInPublic npub1qs72af3vlexupszr53mfdaj0kxmg2d0ee97gus0vq88xrs984ntqfwr0te Zappr Why does a Bitcoin grant organisation care about an app built in Lagos? Because Bitcoin's success depends on whether it works for the people who need it most. Zappr is proof that self-custody can work for a first-time user in Lagos. That matters for Bitcoin globally. #bitcoin #buildinginpublic npub1qs72af3vlexupszr53mfdaj0kxmg2d0ee97gus0vq88xrs984ntqfwr0te Zappr Already in the app as a Settings option good timing. Will log the fee estimation edge case as a requirement inside #6 so it gets tested during the spike. 🙏 npub1qs72af3vlexupszr53mfdaj0kxmg2d0ee97gus0vq88xrs984ntqfwr0te Zappr Why OpenSats specifically: They fund open-source Bitcoin and Nostr projects globally, no equity, no strings. Their recent Nostr wave funded projects at a similar stage to ours. For a team in Lagos building free, open-source Bitcoin infrastructure, it's the right fit. #nostr #bitcoin #opensource npub1qs72af3vlexupszr53mfdaj0kxmg2d0ee97gus0vq88xrs984ntqfwr0te Zappr We submitted our first Bitcoin development grant application this month: OpenSats. Open source, Nostr-based, built in Africa. We think we fit. Whatever the outcome — we applied. Building in public means this part too. #nostr #bitcoin #buildingpublic #opensource npub1qs72af3vlexupszr53mfdaj0kxmg2d0ee97gus0vq88xrs984ntqfwr0te Zappr Phoenix SDK is actually what we're evaluating right now as an alternative since Boltz is down. The LSP dependency is the tradeoff we're weighing for a first mobile build it might be the pragmatic call. Thanks for the nudge. ⚡ npub1qs72af3vlexupszr53mfdaj0kxmg2d0ee97gus0vq88xrs984ntqfwr0te Zappr ldk-node through Uniffi is on our radar, especially for keeping the swap layer server-side. The tradeoff is more backend complexity but you're right that it gives us LSP flexibility long-term. Noting this for the mobile architecture discussion. 🙏 npub1qs72af3vlexupszr53mfdaj0kxmg2d0ee97gus0vq88xrs984ntqfwr0te Zappr The best products aren’t built in isolation. They’re built with the people who’ll actually use them. That’s where we are with Zappr. We’re looking for our first group of testers to help us shape the experience before we grow. Explore Zappr here: https://usezappr.xyz Zappr is open source so you can contribute: https://github.com/Salmatcre8/zappr npub1qs72af3vlexupszr53mfdaj0kxmg2d0ee97gus0vq88xrs984ntqfwr0te Zappr We're starting the mobile build. Lightning wallet on native is the hardest part, WASM doesn't translate from browser to native directly, and the swap layer adds more complexity. Anyone navigated this? What worked, what didn't? #nostr #bitcoin #lightning #opensource npub1qs72af3vlexupszr53mfdaj0kxmg2d0ee97gus0vq88xrs984ntqfwr0te Zappr 🛠️ Build note Opened the mobile EPIC on GitHub (#11). Breaking it into sub-issues so the work is trackable: #5 — Scaffold Expo/React Native #6 — Seedless key derivation SPIKE #7 — Breez SDK + NWC #8 — Nostr feed via NDK #9 — AI agent screen If you've worked on Lightning + React Native with alternative swap providers, genuinely interested in what you ran into. #nostr #bitcoin #lightning #opensource npub1qs72af3vlexupszr53mfdaj0kxmg2d0ee97gus0vq88xrs984ntqfwr0te Zappr What zappr looks like on mobile 👇 Three tabs: Wallet. Feed. Agent. Dark theme, orange accent. Built to run on the phone you already own not the one you wish you had. #nostr #bitcoin #lightning #buildingpublic https://blossom.primal.net/7aacfeb7f2b1d0ff2952d95b0a072f2eee9f673466e61c2f5de3997bd11e6183.jpg npub1qs72af3vlexupszr53mfdaj0kxmg2d0ee97gus0vq88xrs984ntqfwr0te Zappr Mobile stack decision for Zappr: We're going with Capacitor over React Native from scratch. Why? We can reuse our existing Next.js codebase instead of rebuilding from scratch. Faster to ship, one codebase. The challenge: WebAuthn PRF is browser-native. On Android/iOS, we're researching a hardware-backed approach for secure key storage. Issue #6 is our research spike for this. https://github.com/Salmatcre8/zappr #nostr #bitcoin #lightning #opensource https://blossom.primal.net/e178ee5a4920630ead2745e25d5da53ba48f8f02a309fe650140c3bfcdae1ab5.jpg npub1qs72af3vlexupszr53mfdaj0kxmg2d0ee97gus0vq88xrs984ntqfwr0te Zappr Interesting point. We're using WebAuthn as an open web standard for passkeys, while keeping the project itself open source. The Vercel/custom-domain issue is mainly a technical deployment problem we're working through. npub1qs72af3vlexupszr53mfdaj0kxmg2d0ee97gus0vq88xrs984ntqfwr0te Zappr Agent is back. 🎉 "abeg check my balance" → Pidgin response, real wallet balance. Mobile is coming too. Android build is done, we're testing before Play Store submission. Early testers can try it through our community. Big week. ⚡ https://usezappr.xyz #nostr #bitcoin #lightning #buildingpublic https://blossom.primal.net/2b2132982d7e5ef990ea2960ea54bdf03d45f299776ad23af9eda4ead7208ba0.mp4 npub1qs72af3vlexupszr53mfdaj0kxmg2d0ee97gus0vq88xrs984ntqfwr0te Zappr For anyone who's shipped a Next.js PWA with WebAuthn, how did you handle the RP ID when moving from a Vercel preview URL to a custom domain? We have issue #12 open on this: a passkey enrolled on the preview domain returns "no passkey available" when tried on the custom domain expected, different origin but there's a fixable part on our end we're still working through. https://github.com/Salmatcre8/zappr #nostr #webauthn #bitcoin #opensource https://blossom.primal.net/dd725354171135edbb8ff480cace8f8b80494a54873b06aa35b3e56d7a339429.jpg npub1qs72af3vlexupszr53mfdaj0kxmg2d0ee97gus0vq88xrs984ntqfwr0te Zappr 🛠️ Honest update Our Claude API key ran out and the agent has been down for a couple of weeks. The wallet, feed, and onboarding all still work. But the multilingual agent, the core of what makes Zappr different is paused until we restore it. Working on it. Will post the moment it's back. #nostr #bitcoin #buildingpublic npub1qs72af3vlexupszr53mfdaj0kxmg2d0ee97gus0vq88xrs984ntqfwr0te Zappr 🔐 Language accessibility isn't just about translation. Every new language shouldn't require rebuilding the product from scratch. We designed Zappr so we can keep improving language support while keeping the Bitcoin experience consistent. That's especially important when your goal is making self-custodial Bitcoin accessible to more people across Africa. #nostr #bitcoin #lightning #buildingpublic npub1qs72af3vlexupszr53mfdaj0kxmg2d0ee97gus0vq88xrs984ntqfwr0te Zappr Fair pushback. "Leverage is real" was about output, not safety. Those aren't the same thing. Vibe coding without review discipline is just fast mistakes at scale. The velocity only means something if it's paired with real hardening, not instead of it. npub1qs72af3vlexupszr53mfdaj0kxmg2d0ee97gus0vq88xrs984ntqfwr0te Zappr 🔧 Umami shipped. Added Umami analytics to https://usezappr.xyz, privacy-respecting, no unnecessary tracking. Google Analytics on a self-custodial Bitcoin app would've been a contradiction. The Nostr community notices these details. So do we. One less thing on the roadmap. On to the next. #nostr #bitcoin #buildingpublic #opensource #privacy https://blossom.primal.net/a52591bc2e61853f7e45de4387a476032b0421e68e7d9aa83be5b244146498e7.png npub1qs72af3vlexupszr53mfdaj0kxmg2d0ee97gus0vq88xrs984ntqfwr0te Zappr Try Zappr: https://usezappr.xyz We'd love your feedback as we continue building. npub1qs72af3vlexupszr53mfdaj0kxmg2d0ee97gus0vq88xrs984ntqfwr0te Zappr Last month was four weeks of shipping, sharing, and listening. The biggest lesson? Our roadmap changed more from conversations on Nostr than from our own planning sessions. Building in public means the community isn't just watching the product evolve, they're helping shape it. This month: • Mobile development begins • Grant application goes out • More people testing Zappr in the real world Thanks to everyone following, testing, and sharing feedback. Every conversation is helping us build better. #nostr #bitcoin #lightning #buildingpublic #opensource https://blossom.primal.net/00405ae5b89cd3f0778a0b10f59831e1aff8dc368f7f5c1c1759e5da892f3a02.png npub1qs72af3vlexupszr53mfdaj0kxmg2d0ee97gus0vq88xrs984ntqfwr0te Zappr Agreed. Small open-source teams are shipping with the velocity of full enterprises now. The leverage is real. npub1qs72af3vlexupszr53mfdaj0kxmg2d0ee97gus0vq88xrs984ntqfwr0te Zappr One month of building with Nostr⚡⚡ Thank you to everyone who tried Zappr, shared feedback, replied, and helped us improve. We're not going anywhere. Lagos is just the starting point. The mission is global #nostr #bitcoin #lightning #buildingpublic npub1qs72af3vlexupszr53mfdaj0kxmg2d0ee97gus0vq88xrs984ntqfwr0te Zappr It's been one month since we started posting here. What surprised us most wasn't the engagement, it was the questions. They've influenced our roadmap more than any internal planning session. That's the value of building in public, where your users actually are. npub1qs72af3vlexupszr53mfdaj0kxmg2d0ee97gus0vq88xrs984ntqfwr0te Zappr Those numbers are exactly why this matters. Non-English speakers are already here, the tools just haven't caught up yet. npub1qs72af3vlexupszr53mfdaj0kxmg2d0ee97gus0vq88xrs984ntqfwr0te Zappr Obrigado!!! Portuguese is absolutely on our radar, the infrastructure is the same, adding a language is a prompt update not a rebuild. Brazil + Africa on the same rails would be something. 👀⚡ npub1qs72af3vlexupszr53mfdaj0kxmg2d0ee97gus0vq88xrs984ntqfwr0te Zappr Deciding what to build next on Zappr🤔 Pick one option below. The feature with the most votes goes to the top of our build list. A) Voice mode (speak Pidgin/Yoruba, agent replies aloud) B) Merchant POS (QR receive + NGN cashout report) C) Something else? tell us in the replies Reply with your vote. #nostr #bitcoin #lightning #buildingpublic #africa npub1qs72af3vlexupszr53mfdaj0kxmg2d0ee97gus0vq88xrs984ntqfwr0te Zappr Has anyone shipped a Nostr client with non-English support at the agent/AI layer, not just UI translation, but the AI actually responding natively? We're doing it live in Pidgin, Yoruba, Hausa, Swahili. Curious what others have tried and where it broke. #nostr #bitcoin #lightning #opensource npub1qs72af3vlexupszr53mfdaj0kxmg2d0ee97gus0vq88xrs984ntqfwr0te Zappr Love this addition. Adding it to the list. ⚡ npub1qs72af3vlexupszr53mfdaj0kxmg2d0ee97gus0vq88xrs984ntqfwr0te Zappr The agent runs on Claude, but the keys, wallet, and identity stay fully client-side, we never see them. No one controls the narrative if no one holds the keys. ⚡ npub1qs72af3vlexupszr53mfdaj0kxmg2d0ee97gus0vq88xrs984ntqfwr0te Zappr The alternative is English-only tooling that locks out 1.4 billion people. We'll take the tradeoff. npub1qs72af3vlexupszr53mfdaj0kxmg2d0ee97gus0vq88xrs984ntqfwr0te Zappr Exactly the thinking, compliance friction at the fiat layer shouldn't bleed into the Bitcoin layer. Keep them cleanly separated and users get sovereignty where it matters most. npub1qs72af3vlexupszr53mfdaj0kxmg2d0ee97gus0vq88xrs984ntqfwr0te Zappr Great question, and it's the split we designed around intentionally. MavaPay only touches the naira leg. The Bitcoin side stays fully client-side keys never leave the device, MavaPay never sees the wallet or the sats. They're handling fiat rails, not Bitcoin custody. So user data on the Bitcoin side: zero. On the naira side: whatever KYC the ramp requires, same as any bank transfer. npub1qs72af3vlexupszr53mfdaj0kxmg2d0ee97gus0vq88xrs984ntqfwr0te Zappr Bitcoin terms, Pidgin version for anyone teaching newcomers: Sats = na the smallest part of Bitcoin, just like kobo be for naira. Zap = send small Bitcoin payment give person on Nostr. npub = your public identity for Nostr. Na wetin you fit share freely make people find or follow you. Self-custody = na you dey control your Bitcoin. Nobody hold am for you. Passkey = your fingerprint, face ID, or device PIN fit unlock your account. No seed phrase. No yawa. #nostr #bitcoin #lightning #buildingpublic npub1qs72af3vlexupszr53mfdaj0kxmg2d0ee97gus0vq88xrs984ntqfwr0te Zappr How the multilingual agent actually works: The LLM layer handles translation and intent parsing before any wallet or feed action fires. Language is a prompt-level decision, not a separate codepath, so adding a new language is a prompt update, not a rewrite. #nostr #bitcoin #lightning #buildingpublic npub1qs72af3vlexupszr53mfdaj0kxmg2d0ee97gus0vq88xrs984ntqfwr0te Zappr Language isn't a feature. It's access. Every Bitcoin tool ships English-first. A Yoruba trader has to context-switch to a second language just to send money. That's not a UX gap, it's a protocol adoption barrier. Zappr's agent runs natively in 18+ African languages because the alternative locks out the people who need this most. #nostr #bitcoin #BitcoinAfrica https://blossom.primal.net/489040f12aadbd82638cc4006b3175fe25cfe46e0a4e20226eb7adfc74474f0f.jpg npub1qs72af3vlexupszr53mfdaj0kxmg2d0ee97gus0vq88xrs984ntqfwr0te Zappr Well said.... This is why learning never really stops. The more context we have, the better we can build. npub1qs72af3vlexupszr53mfdaj0kxmg2d0ee97gus0vq88xrs984ntqfwr0te Zappr Looks delicious 😊 npub1qs72af3vlexupszr53mfdaj0kxmg2d0ee97gus0vq88xrs984ntqfwr0te Zappr Genuine question for anyone who's built a Bitcoin cash-in/out flow for Africa: How did you handle the compliance side? We went the licensed-partner route — MavaPay handles the NGN rail so we don't have to become a money services business ourselves. Curious if others went a different direction and what that looked like in practice. #nostr #bitcoin #lightning npub1qs72af3vlexupszr53mfdaj0kxmg2d0ee97gus0vq88xrs984ntqfwr0te Zappr Tech stack, for anyone curious: Nostr via NDK, Lightning + Liquid via Breez SDK (running in-browser via WASM), MavaPay for the NGN rail, and Claude for the AI agent. Everything runs client-side except AI requests, which go through our server. https://blossom.primal.net/7aacfeb7f2b1d0ff2952d95b0a072f2eee9f673466e61c2f5de3997bd11e6183.jpg npub1qs72af3vlexupszr53mfdaj0kxmg2d0ee97gus0vq88xrs984ntqfwr0te Zappr Our scariest bug: a logout flow that wiped a credential ID we thought was just metadata. Well it wasn't, it was the map back to the wallet. User locked out, keys intact but unreachable. Fixed by separating credential storage from key derivation entirely. Long debugging session we're not getting back but the architecture is more honest now. npub1qs72af3vlexupszr53mfdaj0kxmg2d0ee97gus0vq88xrs984ntqfwr0te Zappr How one fingerprint becomes two keys in zappr: PRF(passkey, "NOSTR-SALT") > BIP32 > nsec PRF(passkey, "WALLET-SALT") > BIP39 > Lightning wallet No seed phrase stored anywhere. WebAuthn PRF runs entirely client-side we never touch the private key. https://blossom.primal.net/56a3335a13ec9328ce92dce0dc41a5ad092d51ab8f2b74eadfae3677a133eb50.jpg npub1qs72af3vlexupszr53mfdaj0kxmg2d0ee97gus0vq88xrs984ntqfwr0te Zappr Appreciate you sharing this 🙏 We're just getting started. We are building zappr to make Bitcoin/Nostr feel native in the language people already think in. More coming soon. https://github.com/Salmatcre8/zappr https://usezappr.xyz #nevent1q…c8a7 npub1qs72af3vlexupszr53mfdaj0kxmg2d0ee97gus0vq88xrs984ntqfwr0te Zappr The best investment is still remains the one that keeps you alive long enough to enjoy the rest. npub1qs72af3vlexupszr53mfdaj0kxmg2d0ee97gus0vq88xrs984ntqfwr0te Zappr Honest question for Nostr builders: What's the worst UX failure you've seen onboarding a non-technical person to Bitcoin or Nostr? We watched someone in Lagos open three different apps, follow a YouTube tutorial, and still need a friend sending WhatsApp links just to receive Bitcoin for the first time. That's the moment zappr exists because of. Your answers will shape what we fix next. 👇 npub1qs72af3vlexupszr53mfdaj0kxmg2d0ee97gus0vq88xrs984ntqfwr0te Zappr Technically, yes.. 😂😂😂 npub1qs72af3vlexupszr53mfdaj0kxmg2d0ee97gus0vq88xrs984ntqfwr0te Zappr Shipped this week: updated the README, opened our first public issues. Open source means building where people can see you, not just when it's polished. If you're poking around WebAuthn, passkeys, or Lightning/Nostr stacks, a couple of the open issues are worth a look 👀 github.com/Salmatcre8/zappr ⚡ npub1qs72af3vlexupszr53mfdaj0kxmg2d0ee97gus0vq88xrs984ntqfwr0te Zappr Why we chose NWC instead of building our own custodial backend. Zappr works in two ways: ⚡ Bring your own Lightning wallet (Alby, Mutiny, Primal) via NWC. ⚡ Or create a wallet instantly with your fingerprint with no seed phrase, no extra app. Either way, we never hold your funds. Not one sat. Self-custody isn't a feature we bolted on. It's the whole point. usezappr.xyz ⚡ https://blossom.primal.net/b49d0bfee24c953b55f94926a8f4e3c8a5a38b429beecade5cead5ea2b2527f2.jpg npub1qs72af3vlexupszr53mfdaj0kxmg2d0ee97gus0vq88xrs984ntqfwr0te Zappr I guess it's 2😂 npub1qs72af3vlexupszr53mfdaj0kxmg2d0ee97gus0vq88xrs984ntqfwr0te Zappr Been building quietly in Lagos for the past few weeks. Finally time to post. We made Zappr: a self-custodial Bitcoin app where you talk to your wallet in Pidgin, Yoruba, Hausa, whatever language you think in. Nostr feed + Lightning + AI agent on one screen. Seedless onboarding via WebAuthn PRF. Built at Hack4Freedom Lagos. Still building. Live: usezappr.xyz Code: github.com/Salmatcre8/zappr ⚡ https://blossom.primal.net/89dc8a02486588bc4ec9761e24ad05ae51edb7a98363c463d86e66da37b0690a.jpg