Nstart.me
Nstart.me is Daniele dtonon's attempt to make the first Nostr account less absurd: generate an identity, explain what just happened, back it up, optionally create a FROST-powered bunker, pick first follows and return the user to an app that can actually use the result.
The front door is the hard part
Nostr has a strange first minute. In a normal app, you type an email address, make a password and let the company recover your account if you forget it. In Nostr, your public key is your identity and your private key is the thing that can speak as you. That is cleaner at the protocol level and harsher at the human level. Lose the wrong secret and you may lose the name people know. Paste the wrong secret into the wrong app and you have not merely leaked a password; you have handed over the voice behind your public identity.
Nstart.me exists for that first minute. The public repository describes it as a multi-language, no-nonsense onboarding wizard for new Nostr users. NostrApps lists the same job in directory language: web based, works on desktop and mobile, multilingual step-by-step guide, encrypted email backup, FROST bunker, starter follows and developer integration. That sounds simple until you slow down and ask what the tool really touches. Nstart is touching the most sensitive surface in the whole network: account birth.
That is why this page should not treat Nstart like another app icon. It is more like a guided ceremony. It creates or prepares the thing every later client will depend on. A bad onboarding wizard can leave a user with false confidence. A good one tells the user enough truth to make the next step less fragile.
A wizard for keys
The code is a SvelteKit app, and the visible flow is split into routes that read like a beginner's path: wizard, yourself, download, email, bunker, follow, finish and back. The app generates a secret key with @nostr/tools, derives the public key, and stores the active wizard state in browser session storage while the flow is running. That last sentence matters. This is a browser wizard, not a hardware wallet. It can make the process clearer, but the newly created secret still exists inside the browser environment during onboarding. You should not mentally turn it into cold storage because the interface is friendly.
Nstart asks the user to build the first profile, then publishes the useful public events. In the source, the action layer publishes a kind 0 profile event, a kind 10002 relay list event, and later a kind 3 follow list event. That means the wizard is not only printing a key and waving goodbye. It tries to leave the new identity with a public name, relay directions and a first social graph that other Nostr clients can understand.
The relay defaults are also visible in code. Nstart indexes and queries through relays such as wss://purplepag.es, wss://relay.nostr.band, wss://relay.nos.social, wss://relay.damus.io, wss://relay.primal.net and wss://indexer.coracle.social. Apps that integrate Nstart can pass their own read and write relays with URL parameters. That is the correct kind of boring detail: onboarding should not quietly hard-code somebody else's map of the network when the calling app has better context.
Backup before belonging
Nstart's strongest design choice is that it forces the backup conversation early. The README names local backup of nsec or ncryptsec, plus the option to email yourself an encrypted ncryptsec as an additional backup location. The download route writes a text file containing the user's npub and either the encrypted key or the raw nsec, depending on whether the user chose a password. The email route sends the encrypted backup through a server endpoint using Nodemailer.
That email endpoint is not completely casual. The server checks that the request carries a valid Nostr event signature and requires proof of work before sending. In the code, it verifies the event and checks a minimum proof-of-work level before accepting the email request. That does not make email a perfect vault. Email is still email. But it shows the builder is trying to keep the backup feature from becoming an open spam pipe or a thoughtless secret dump.
The human lesson is simple: Nostr onboarding is recovery design. A person who creates an identity and immediately loses the private key has not joined a sovereign network. They have joined a network they cannot return to. Nstart is valuable because it puts recovery before social excitement. You may still choose a different backup method, but the wizard makes the issue hard to skip.
The bunker step
The most ambitious part of Nstart is the multi-signer bunker. The README says this is managed by promenade and uses FROST to split the user's nsec into three or more shards distributed to independent trusted remote signers. The result is a bunker URL for Nostr Connect, so the user can log into compatible web, mobile and desktop apps without exposing the raw nsec to every client.
Under the hood, the app imports @fiatjaf/promenade-trusted-dealer and calls shardGetBunker. It defaults to a signer set that includes Artur Brugeman, fiatjaf, hodlbod, Sebastix, Pablo and Daniele, with advanced controls for threshold and total signer count. The default path in the code is a two-of-three style setup, while the advanced mode lets a user select signers and adjust the threshold. It also writes a downloadable text file for the generated bunker URL.
This is powerful, and Nstart is honest about the limit. Its README warns that this bunker implementation needs an update from classic implementations, so not all apps support it yet. It also says the bunker path does not support encryption and therefore cannot be used for DM apps. That warning belongs in the article because it is exactly where beginner onboarding can become dangerous: a feature can be secure for one class of action and wrong for another. Nostr Connect helps you avoid giving every app your nsec, but it is not a universal answer to every signing, encryption and messaging problem.
Starter follows and social gravity
The follow step is where Nstart stops being only a key tool and becomes a social-entry tool. The README says you can share Nstart with someone and add your own npub or nprofile in the URL, giving the new user the option to follow you and, indirectly, some of your contact list. The code also has a built-in list of known Nostr people such as Daniele, fiatjaf, Rabble, Pablo, Alex, jb55, laanwj, Alex Gleason, Dawn, hodlbod, Michael Dilger and others. It can pull kind 3 contact lists from suggested source accounts and build a first follow set.
This is both useful and delicate. A blank Nostr account is lonely. If a new person opens a client and sees nothing, the protocol has already failed them emotionally. Starter follows solve that problem by giving the first timeline some gravity. But starter follows also shape culture. The first people you see become your mental definition of the network. Nstart's ability to customize suggestions is important because a Bitcoin-heavy list, an art list, a local community list and a Crays list would produce very different first impressions.
For Crays, that means Nstart is interesting beyond generic onboarding. A venue, association, media project or local group could share a start URL that points new users toward the right public people and relays. That is not just onboarding. It is social routing.
The integration trick
Nstart is not only a standalone page. The integration document explains how another app can send a user into Nstart and receive usable credentials back. A web app can redirect to https://nstart.me?an=<AppName>&at=web&ac=<returningWebpage>. Android and iOS flows can pass app codes. A web app can also open Nstart as a modal by loading https://nstart.me/modal.js, or use the nstart-modal package, whose latest npm registry version was 2.1.0 in July 2025.
The handoff is where the security detail matters. At the end, Nstart sends back available credentials in this order: bunker, ncryptsec, nsec. For web apps it appends them to the return URL as a hash beginning with #nostr-login. The document correctly points out why that is safer than a query parameter: the hash is not sent to the server in a normal HTTP request. But it also warns that the receiving app must remove the credentials from the URL as soon as possible so they do not remain in browser history. That is the kind of sentence a developer should underline.
The integration layer also lets apps tune the flow: force or skip the bunker step, skip follows, suppress returning plain nsec, suppress returning ncryptsec, set language, set theme, set accent color, and provide custom read/write relays. That makes Nstart more than a beginner link. It becomes a reusable onboarding component for clients that do not want to reinvent account creation.
Who built it and how it runs
The public trail points to Daniele dtonon. The repository is dtonon/nstart, the announcement note is by dtonon, and Hacker News listed the Show HN submission under the same name. GitHub metadata during this review showed the repository created on August 26, 2024, updated in May 2026, with the last push in September 2025, 60 stars, 26 forks, 11 open issues, Svelte as the main language and topics for Nostr, the Nostr protocol and onboarding.
The technology stack is very readable: SvelteKit 2, Svelte 4, Vite, TypeScript, Tailwind, @nostr/tools, nostr-tools, @nostr/gadgets, @fiatjaf/promenade-trusted-dealer, @scure/base, hash-wasm, qr-code-styling, sqlite, leveldown, nodemailer and a small server. The codebase includes a modal package, a served modal script, multilingual translation files and wizard analytics endpoints. Available language codes in the repo include en, es, it, fr, de, nl, pl, pt, si, ja, zh and fa.
The fact that Nstart lives as a web app is both its strength and its tradeoff. It can be shared with one link, localized, embedded and opened from another app. It can also be misunderstood as a normal signup form. It is not. The user is creating cryptographic identity material. Treat the page with the respect you would give any tool that can generate, encrypt, move or return account credentials.
The roughness is part of the truth
Nstart has already provoked the right kind of criticism. On Hacker News, one user basically argued that the flow still felt incomprehensible to non-programmers: backup text files, FROST, shards, bunker activation, recommended people, then another app. Daniele's response was not defensive fluff. He explained that Nostr has tradeoffs, a large ecosystem and new terminology, and that this onboarding path is meant to explain those paradigms rather than imitate an email-and-password signup.
That exchange is important because it marks the honest boundary. Nstart does not make Nostr magically simple. It makes the complexity visible earlier and tries to give it a path. Some users should absolutely start with an app that hides more of this. Others, especially activists, organizations, builders and people who care about identity custody, may prefer a first-run flow that teaches them what kind of account they are actually creating. The Human Rights Foundation's Weekly Financial Freedom Report highlighted Nstart for simplified access to Nostr and called out the multi-signer bunker as a security improvement for users under hostile conditions. That is the serious end of the use case.
So read Nstart as an onboarding instrument, not a miracle. It is good when it helps a new user leave with a recoverable key, a safer login route, a usable follow graph and an understanding that their identity can move. It is bad when someone clicks through without knowing what a backup, bunker or returned credential means. The best use is guided: share it with someone, stay nearby, and talk through the key moment instead of pretending the wizard has removed the need for care.
Sources worth opening
This article keeps claims close to the public project trail. Open these if you want to verify the flow, code and limitations yourself.
- Nstart.me live onboarding flow
- dtonon/nstart GitHub repository
- Nstart README
- Nstart app integration documentation
- nstart-modal package metadata
- NostrApps listing for Nstart.me
- Original Nstart announcement on njump
- Show HN discussion for Nstart
- No Bullshit Bitcoin: Nstart onboarding wizard
- Human Rights Foundation report mention
- FROSTR organization on GitHub
- OpenSats project page for FROSTR
- NIP-46: Nostr Connect and remote signing
- NIP-49: private key encryption
- NIP-65: relay list metadata
- Nostr NIPs implementation reference
- nostr-tools JavaScript library
- NIP-01 basic protocol flow
- NIP-05 DNS identifiers
- NIP-07 browser signer capability
- NIP-10 text note threading
- NIP-11 relay information document
- NIP-19 bech32 encoded entities
- NIP-44 versioned encryption
- NIP-51 lists and mute lists





