Community

Wallets

Vortex

Vortex puts a NWC wallet inside Raycast: send to invoices or Lightning Addresses, create receive invoices, inspect recent transactions, and redeem Cashu or LNURL vouchers without opening a full wallet app.

Vortex icon
Wallets Money paths Wallets, NWC, zaps, mints, Lightning addresses and payment tooling.
Back to Nostr
Wallets

Wallets shelf

Wallet pages collect zaps, Lightning accounts, Nostr Wallet Connect, ecash, payment interfaces and the security tradeoffs around moving money through Nostr.

Apps All Apps pages 520 pages in this routeApp pages, App categories, Product pages and 3 more shelves Browse pagesClose shelf

App orientation

App categories

App profiles

0xchatadvanced-nostr-searchAegisAlbyAlby GoAlby HubAlby HubAlby SDKAmberAmberAmethystAmethystApp and product researchApplication-specific dataBlossomBlossom spec NIP-B7BookstrBorisBouquetCalendar by FormstrChachiNostr Apps DirectoryCoracleCoracleCorny ChatCreatrDamusDamusDeveloper stack researchDittoDittodiVineDocstrDTANEmojitoFlotillaFlycatFormstrFountainFreeFromFundstrfutrGIF BuddyGittrgo-nostrGossipGossipGrimoireGroups NIP-29HablaHablaHello Nostr — ResourcesHighlighterHiveTalkhomebrew-nostrHORNET StorageHugo2NostrHyperNoteIrisIrisJumblekanbanstrKeys BandListrLNBits NostrmarketLumeLumilumiLUMINAMapstrMarmot Protocolmatrix-nostr-bridgeMeetstrMemestrMindsmonstrmostardMostronaknak — Nostr Army KnifeNalgorithmNarrnashboardNDKNegentropyngitNofluxNosNos Socialnos2xnosbinnosclNostorg Feature MatrixNostr App ManagerNostr Apps Directory GuideNostr clients feature listNostr Compass — ProjectsNostr Developer GuideNostr Development KitNostr Events MonitorNostr MCP ServerNostr NestsNostr PlaygroundNostr Service ProvidersNostr Writernostr-post-checkernostr-protocol/nostrnostr-rubynostr-sdknostr-sdk-ffinostr-sdk-flutternostr-to-rssnostr-toolsNostr.bandnostr.buildnostr.co.uk ClientsNostr.how — Clientsnostr.hsNostrabilityNostrAppsNostrApps category — AudioNostrApps category — CareerNostrApps category — CommunityNostrApps category — CurationNostrApps category — Direct MessageNostrApps category — DiscoveryNostrApps category — File SharingNostrApps category — Group ChatNostrApps category — MeatspaceNostrApps category — OnboardingNostrApps category — SignersNostrApps category — Toolsnostrchecknostrdbnostrdb-rsNostreeNostreonNostriaNostridNostrium / read.nostr.comNostrmoNostrubenoStrudelnoStrudelNostterNosturNosturNotedeckNpub.proNpub.worldnsec.appnsiteNsiteNstart.meObsidian Nostr WriterOlasOpenvibeOracoloOstrich WorkOwn Your PostsP2P BandPazPeridotPhoenixPlebeian MarketPostizPostr / write.nostr.comPrimalPrimalPrimal Article Editor / Reads authoringPrimal Studiopynostrpython-nostrRecommended Application HandlersRelay Toolsrsslayrust-nostrrust-nostr docsSatelliteSatellite EarthSatlantisSatShootShakespeareShopstrSlidestrSnortSnortStemstrswift-nostr-clientTreasuresWavlakeWavlakeWikifreediaWikistrYakiHonneYakiHonneYakiHonne mobile/web app directoryYondar

App pages

Deep dives

Field guides

Awesome Nostr branches

NIP explainer pages

Research and library

Source inventory

Deep Research: Clients, apps and product surfacesDeep Research: Developer stack and toolingResearch Map: nostrapps.comResearch Source: 0xchatResearch Source: 0xchat — NostrApps pageResearch Source: advanced-nostr-searchResearch Source: Aegis — NostrApps pageResearch Source: AlbyResearch Source: Alby — NostrApps pageResearch Source: Alby GoResearch Source: Alby HubResearch Source: Alby Hub GitHubResearch Source: Alby SDKResearch Source: AmberResearch Source: Amber — NostrApps pageResearch Source: AmethystResearch Source: Amethyst GitHubResearch Source: Awesome Nostr ResourcesResearch Source: BookstrResearch Source: BorisResearch Source: Boris — NostrApps pageResearch Source: BouquetResearch Source: Bouquet — NostrApps pageResearch Source: Calendar by FormstrResearch Source: ChachiResearch Source: Chachi — NostrApps pageResearch Source: CoracleResearch Source: Coracle — NostrApps pageResearch Source: Corny ChatResearch Source: DamusResearch Source: Damus — NostrApps pageResearch Source: DittoResearch Source: Ditto — NostrApps pageResearch Source: DocstrResearch Source: DTANResearch Source: DTAN — NostrApps pageResearch Source: EmojitoResearch Source: Emojito — NostrApps pageResearch Source: Flotilla — NostrApps pageResearch Source: FlycatResearch Source: FormstrResearch Source: Formstr — NostrApps pageResearch Source: FountainResearch Source: FreeFromResearch Source: FreeFrom — NostrApps pageResearch Source: FundstrResearch Source: futrResearch Source: futr — NostrApps pageResearch Source: GIF BuddyResearch Source: GIF Buddy — NostrApps pageResearch Source: GittrResearch Source: go-nostr GitHubResearch Source: GossipResearch Source: Gossip — NostrApps pageResearch Source: GrimoireResearch Source: Grimoire — NostrApps pageResearch Source: HablaResearch Source: Habla — NostrApps pageResearch Source: Hello Nostr — ResourcesResearch Source: HighlighterResearch Source: HiveTalkResearch Source: HORNET Storage — NostrCompassResearch Source: IrisResearch Source: Iris — NostrApps pageResearch Source: JumbleResearch Source: Jumble — NostrApps pageResearch Source: Keys BandResearch Source: Keys Band — NostrApps pageResearch Source: ListrResearch Source: LNBits NostrmarketResearch Source: LumeResearch Source: LumilumiResearch Source: LUMINAResearch Source: MapstrResearch Source: Marmot ProtocolResearch Source: MeetstrResearch Source: MemestrResearch Source: MindsResearch Source: monstr GitHubResearch Source: mostardResearch Source: MostroResearch Source: my.nostr.comResearch Source: nak — Nostr Army KnifeResearch Source: nak GitHubResearch Source: NalgorithmResearch Source: Narr — NostrApps pageResearch Source: nashboardResearch Source: NDK GitHubResearch Source: NDK NPMResearch Source: NegentropyResearch Source: Noflux — NostrApps pageResearch Source: Nos SocialResearch Source: Nos Social — NostrApps pageResearch Source: nos2xResearch Source: nos2x — NostrApps pageResearch Source: nosbinResearch Source: noscl GitHubResearch Source: Nostorg Feature MatrixResearch Source: Nostr App ManagerResearch Source: Nostr Book — KindsResearch Source: Nostr DesignResearch Source: Nostr Developer GuideResearch Source: Nostr NestsResearch Source: Nostr Nests — NostrApps pageResearch Source: Nostr PlaygroundResearch Source: nostr-post-checkerResearch Source: nostr-protocol/nostr GitHubResearch Source: nostr-sdk crates.ioResearch Source: nostr-sdk-ffi GitHubResearch Source: nostr-tools GitHubResearch Source: nostr-tools NPMResearch Source: Nostr.BandResearch Source: nostr.buildResearch Source: nostr.co.uk ClientsResearch Source: Nostr.howResearch Source: Nostr.how — ClientsResearch Source: Nostr.how — ProtocolResearch Source: Nostr.how — What is Nostr?Research Source: Nostr.orgResearch Source: NostrabilityResearch Source: NostrAppsResearch Source: NostrApps category — AudioResearch Source: NostrApps category — CareerResearch Source: NostrApps category — CommunityResearch Source: NostrApps category — CurationResearch Source: NostrApps category — Direct MessageResearch Source: NostrApps category — DiscoveryResearch Source: NostrApps category — File SharingResearch Source: NostrApps category — Group ChatResearch Source: NostrApps category — MeatspaceResearch Source: NostrApps category — OnboardingResearch Source: NostrApps category — SignersResearch Source: NostrApps category — ToolsResearch Source: nostrcheckResearch Source: nostrdb GitHubResearch Source: NostreeResearch Source: Nostree — NostrApps pageResearch Source: NostriaResearch Source: Nostria — NostrApps pageResearch Source: NostridResearch Source: Nostrmo — NostrApps pageResearch Source: Nostrmo GitHubResearch Source: NostrubeResearch Source: noStrudelResearch Source: noStrudel — NostrApps pageResearch Source: NostterResearch Source: NosturResearch Source: Nostur — NostrApps pageResearch Source: NotedeckResearch Source: Npub.proResearch Source: Npub.worldResearch Source: nsec.appResearch Source: NsiteResearch Source: Nstart.meResearch Source: Nstart.me — NostrApps pageResearch Source: Obsidian Nostr Writer — NostrApps pageResearch Source: OlasResearch Source: Olas — NostrApps pageResearch Source: OpenvibeResearch Source: OracoloResearch Source: Oracolo — NostrApps pageResearch Source: Ostrich WorkResearch Source: P2P BandResearch Source: PazResearch Source: PeridotResearch Source: Peridot — NostrApps pageResearch Source: PhoenixResearch Source: Phoenix — NostrApps pageResearch Source: Plebeian MarketResearch Source: Plebeian Market — NostrApps pageResearch Source: PrimalResearch Source: Primal — NostrApps pageResearch Source: Primal Article Editor / Reads authoringResearch Source: Primal StudioResearch Source: pynostr GitHubResearch Source: python-nostr GitHubResearch Source: Registry of KindsResearch Source: Relay Tools — NostrApps pageResearch Source: rsslayResearch Source: rust-nostr docsResearch Source: rust-nostr GitHubResearch Source: SatelliteResearch Source: SatShootResearch Source: ShakespeareResearch Source: Shakespeare — NostrApps pageResearch Source: ShopstrResearch Source: Shopstr — NostrApps pageResearch Source: SlidestrResearch Source: SnortResearch Source: start.nostr.netResearch Source: StemstrResearch Source: TreasuresResearch Source: WavlakeResearch Source: WikifreediaResearch Source: Wikifreedia — NostrApps pageResearch Source: WikistrResearch Source: Wikistr — NostrApps pageResearch Source: YakiHonne mobile/web app directoryResearch Source: YondarResearch Source: Yondar — NostrApps page
Wallets23 min readRaycast extension, macOS Lightning wallet control, Nostr Wallet Connect, Cashu and LNURL redeem

Vortex

Vortex puts a NWC wallet inside Raycast: send to invoices or Lightning Addresses, create receive invoices, inspect recent transactions, and redeem Cashu or LNURL vouchers without opening a full wallet app.

The quick readVortex is a macOS wallet interface, not a wallet backend. It lives inside Raycast and uses a `nostr+walletconnect://` pairing string to control a remote Lightning wallet through Nostr Wallet Connect. The checked repository is `getAlby/Vortex`, a MIT licensed TypeScript extension authored as `saunter` and described as the fastest way to use bitcoin on macOS. Its four commands are Send, Receive, Recent Transactions and Redeem Sats. Send accepts a BOLT11 invoice or Lightning Address and can discover text from the current selection or clipboard. Receive creates an invoice, renders a QR code and polls settlement. Recent Transactions calls `listTransactions` and `getBalance` through Alby's Nostr WebLN provider. Redeem handles LNURL withdraw vouchers and Cashu tokens, using Cashu melt flows to move ecash value into the connected NWC wallet. Treat Vortex as a focused desktop command palette for small Lightning actions. The practical safety questions are the NWC permissions, the connected wallet's limits, the Raycast preference storage, the age of pinned dependencies and the fact that a clipboard-first payment tool can move money very quickly.

A wallet in the command palette

Vortex is best understood as a Lightning wallet remote control for people who already live in Raycast. It is not trying to become a full mobile wallet, a node manager or a social Nostr client. Its product idea is narrower and more useful: press the Raycast shortcut on macOS, type a command, and move through a payment action without changing context.

That framing matters because Vortex uses Nostr Wallet Connect as a bridge to a wallet somewhere else. The extension stores a NWC connection string in Raycast preferences, creates a `NostrWebLNProvider` from Alby's SDK, and calls wallet methods through that provider. The money is not held by Raycast or by Vortex. The money remains in the connected wallet service or node that issued the pairing URI.

The result feels closer to an operator panel than a consumer wallet app. A user can pay an invoice, send to a Lightning Address, create a receive invoice, view recent transactions and redeem vouchers. Each command is small, fast and shaped around Raycast's keyboard-first interface.

Where the project lives

The public code lives at `getAlby/Vortex`. GitHub describes the repository as `The fastest way to use bitcoin on macOS`, and the README repeats that line before explaining that Vortex controls a Bitcoin Lightning wallet directly from Raycast. The repository was created on February 17, 2024 and was still public and not archived when checked.

The project is MIT licensed, written in TypeScript, and small enough to audit command by command. GitHub's repository metadata showed four stars, two forks and one open issue when checked. Those numbers describe a focused utility rather than a large wallet company, and they are the right mental model for the reader.

The author field in `package.json` is `saunter`, while the repository sits under the Alby GitHub organization. The README lists wallet connection examples such as Alby Accounts, Mutiny, Umbrel and Start9. That does not mean Vortex is limited to those providers. It means the remote wallet must be able to create a Nostr Wallet Connect app connection.

The Raycast surface is the product

Raycast extensions are packaged around commands, preferences and assets. Vortex's `package.json` declares the extension name `vortex`, the title `Vortex`, the category `Finance`, the icon `vortex.png`, and two preferences. The first preference is a required password field named `nwcurl`; its placeholder is `nostr+walletconnect://...`. The second preference lets the user pick USD, EUR or GBP for fiat display.

The command list is compact. `send` accepts an optional text argument and is described as sending to a Lightning Address or paying a Lightning invoice. `createinvoice` is labeled Receive and can take an amount argument. `listtransactions` shows recent transactions. `redeem` accepts an optional LNURL or Cashu token and is labeled Redeem Sats.

That design suits Raycast because the extension can use selected text, clipboard text, inline arguments and command actions. Vortex does not need a long dashboard. It needs precise inputs, validation, a few forms and clear confirmations. The product wins when the user can move from copied invoice to payment review in a few keystrokes.

NWC is the wallet boundary

The connection code is intentionally short. `src/utils/wallet.ts` reads Raycast preferences, takes the saved NWC URL, creates a new `webln.NostrWebLNProvider` with `nostrWalletConnectUrl`, calls `enable()`, and returns the provider. Every wallet command depends on that helper.

This makes the boundary easy to explain. Vortex does not parse seed phrases, run a Lightning node or custody a balance. It delegates to the remote wallet that issued the NWC connection. The provider turns Raycast actions into wallet requests, and the remote wallet answers through the Nostr relay path defined by the pairing string.

For readers, the most important operational question is not whether Vortex has a balance. It is what the connected wallet allows this particular NWC connection to do. Spending limits, permissions, expiry, relay choice, invoice creation and transaction visibility belong to the wallet service and the NWC app connection.

What Send actually accepts

The Send command accepts two broad input shapes: BOLT11 Lightning invoices and Lightning Addresses. If no argument is supplied, the command tries to read selected text first and then the clipboard. That is the classic Raycast advantage: a user can highlight an invoice on the screen, launch Vortex and let the command prefill it.

The code treats invoices as strings starting with `lnbc`, then uses `Invoice` from `@getalby/lightning-tools` to inspect the payment request. A blank or amountless invoice is not paid. The payment form displays the amount and any decoded description before the user submits the action. When submitted, Vortex connects to the NWC wallet and calls `sendPayment`.

Lightning Addresses follow a different path. Vortex validates the address against a regular expression, fetches LNURL-pay data through `LightningAddress`, checks that a callback is present, and then asks the user for an amount. If the user enters a fiat amount instead of sats, Vortex converts it with Alby's fiat helpers before requesting a Lightning invoice from the address.

Lightning Address payments are opinionated

The Lightning Address component shows why Vortex is more than a thin invoice paste box. It fetches metadata from the address, surfaces the address description, respects whether comments are allowed, and offers two actions: send payment directly or copy the requested invoice. That gives the user a chance to use Vortex as either a payment tool or an invoice resolver.

The component converts sats to millisats for checking the LNURL min and max bounds. If the requested amount is outside the range, it stops before payment. After a valid invoice is returned, Vortex checks that the invoice amount matches the requested satoshi value. That is a valuable guardrail because a Lightning Address server is part of the payment flow.

The tradeoff is speed. A command palette payment tool can become very quick, especially when it reads from selection or clipboard. That is good for routine small payments, but it raises the bar for careful review. The reader should verify the recipient, amount and description before submitting, especially when the input came from copied text.

Receive is a small invoice station

The Receive command asks for an amount and an optional description. It can switch between satoshi input and the configured fiat currency. If fiat mode is active, the extension calls Alby's fiat helper to estimate the satoshi amount before creating the invoice.

After connecting to the NWC wallet, Vortex calls `makeInvoice` and expects a payment request back. It renders a QR code as markdown with the `qrcode` package, prefixes the QR payload with `lightning:`, and shows metadata for amount, description and status. The invoice can be copied to the clipboard from the action panel.

The command also polls settlement. Every 1.5 seconds it calls `lookupInvoice` on the provider, stops after a fixed counter, and marks the invoice as paid if the wallet reports a paid invoice with a preimage. This is a useful desk workflow: create invoice, show QR, wait for the payer, copy if needed, and return to work.

Recent Transactions is also the balance view

Vortex previously had a separate balance function, but the changelog says the balance view was removed and folded into recent transactions. In the checked code, `ListTransactions.tsx` calls `listTransactions({})`, calls `getBalance()`, formats the balance in sats, and also fetches a fiat value for the selected currency.

Transactions are shown with incoming and outgoing icons, amounts in sats, optional fiat equivalents, descriptions and settlement times. Opening details exposes metadata such as amount, fiat amount, description, settled-at time, payment hash, preimage and fees paid. The action panel lets the user copy the preimage or payment hash.

This view is useful, but it also demonstrates a privacy consequence of NWC permissions. If a connection can call `listTransactions` and `getBalance`, the interface can display wallet history and balance data. That may be exactly what a trusted desktop tool needs, but it should not be granted casually to every app connection.

Redeem covers LNURL and Cashu

The Redeem command is where Vortex becomes more interesting than a basic NWC demo. It reads selected text or clipboard text and looks for `lnurl`, `cashu` or `web+cashu://` inputs. If the input is an LNURL withdraw code, Vortex decodes the bech32 payload, fetches the callback data, validates the withdraw format and then presents a withdraw form.

For LNURL withdraw, the component lets the user choose an amount between the server's minimum and maximum. It then creates a Lightning invoice through the connected NWC wallet and sends that invoice back to the LNURL callback with the `k1` challenge. If the server returns `OK`, the voucher has been redeemed into the connected wallet.

Cashu redeem is more complex. Vortex decodes the token with `@cashu/cashu-ts`, requests a melt quote from the mint, creates an invoice from the connected NWC wallet, sends enough proofs to cover the quote amount and fee reserve, and then melts the proofs. That means Vortex can turn ecash tokens into Lightning balance without being a full Cashu wallet.

Cashu support has real limits

The Cashu path is useful, but it is not a full ecash custody model. Vortex handles a token presented to it and attempts to melt it into the connected Lightning wallet. It does not present itself as a mint manager, token database, multi-mint portfolio or offline ecash wallet.

The checked code asks the mint for quotes and uses the token unit when constructing the Cashu wallet object. The January 2025 changelog says Vortex added support for Cashu tokens with all units, which matches the code's attention to unit price and fee conversion. That is important because not every Cashu token is necessarily denominated in plain satoshis.

A reader should still treat Cashu redeem as an interaction with a mint. Mint availability, token validity, fees, unit conversion and quote state all matter. If the mint is down, malicious, incompatible or slow, Vortex can surface an error but cannot make the mint behave.

The changelog tells the maintenance story

The changelog has four useful milestones. The initial version is dated December 22, 2023. On May 17, 2024 a bug was fixed around Lightning Addresses with no custom key/value records. On January 12, 2025 the balance function was removed, transaction details were improved, Cashu tokens and LNURL redeem were added, inline parameters were added and dependencies were updated.

The January 26, 2025 changelog added fiat invoice creation, fiat Lightning Address payments and Cashu token support across units. The latest commit returned by the GitHub API was a February 4, 2025 merge that updated the changelog and cleaned code after the fiat transaction work.

There were no GitHub releases returned by the releases API when checked. Raycast extensions are usually installed through the Raycast Store rather than GitHub release artifacts, so that is not automatically a problem. It does mean that repository commits, the Store page and the Raycast extension version are the useful public signals.

Dependency age is worth checking

The checked `package.json` asks for `@getalby/sdk` `^3.5.1`, `@getalby/lightning-tools` `^5.0.3`, `@cashu/cashu-ts` `^2.1.0`, `@raycast/api` `^1.74.1` and `@raycast/utils` `^1.18.1`. The checked lockfile resolved those to Alby SDK 3.8.2, lightning-tools 5.1.2, cashu-ts 2.1.0, Raycast API 1.88.4 and Raycast utils 1.18.1.

The npm registry currently shows much newer major versions for the Alby SDK, lightning-tools and cashu-ts. That does not prove Vortex is broken, because extensions can deliberately stay on stable older APIs. It does mean maintainers or advanced users should review dependency changes before assuming the current ecosystem behavior matches a 2025 lockfile.

This is especially relevant for NWC and Cashu because both areas have moved quickly. NIP-47 has continued to clarify request kinds, response kinds, notification kinds and encryption expectations. Cashu libraries and NUTs have also evolved. A command palette that can spend should be kept boring, current and easy to audit.

NIP-47 details behind the shortcut

Nostr Wallet Connect is the protocol that lets an app request wallet actions over Nostr. The current NIP-47 document defines request events, response events and wallet notifications, and the common connection URI starts with `nostr+walletconnect://`. Vortex asks the user for exactly that kind of string.

From the user's point of view, the connection string is a delegated capability. It is not the same thing as a normal website login. It can grant a desktop extension the ability to ask a wallet to pay invoices, create invoices, list transactions or return balance information depending on how the wallet connection was configured.

That is why pairing should be done with small limits first. A good NWC wallet lets the user create an app-specific connection, label it, cap it, revoke it and inspect what it can do. Vortex becomes safer when the wallet side has clear permissions and a spending ceiling that matches command-palette usage.

Raycast preference storage matters

Vortex marks the NWC connection field as a Raycast password preference. That is better than a plain visible field, and it fits the way Raycast extensions are configured. Still, the NWC URL is a powerful secret. Anyone who can read or reuse it can potentially act through the app connection until the wallet revokes or limits it.

The article reader does not need to know Raycast internals to use this wisely. The practical rule is simple: create a dedicated NWC connection for Vortex, do not reuse the same connection across many tools, keep the spend limit low, and revoke the connection if the Mac, Raycast profile or exported configuration becomes untrusted.

A keyboard launcher can make payment flows pleasant, but it also sits close to the clipboard and selected text. Vortex's discovery behavior is useful, and it is also a reason to keep review steps visible. Fast does not mean invisible; the user still needs to see what will be paid.

What Vortex is not

Vortex is not Zeus, Phoenix, Alby Hub, Mutiny or a node package. It does not run channels. It does not manage liquidity. It does not expose peer configuration. It does not claim to be a mobile wallet or a full account dashboard. Its job is to make a remote wallet usable from Raycast.

It is also not a Nostr social app. It uses Nostr because NWC uses Nostr relays and Nostr keys to connect a wallet service to an app. The visible product is still Lightning money movement, not posting, following, long-form writing or direct messaging.

That distinction helps the reader choose the right tool. If someone wants a general Lightning wallet, Vortex is incomplete by design. If someone wants a macOS command palette for a wallet that already supports NWC, Vortex is exactly in the right shape.

Who gets the most value

Vortex is strongest for Mac users who already trust Raycast, use Lightning frequently and have an NWC-capable wallet with sensible app permissions. It is especially attractive for people who receive invoices in chats, browsers, issue trackers or documents and want to pay without opening a separate wallet window.

It is also useful for people who receive Lightning Address requests or LNURL/Cashu vouchers as text. The selected-text and clipboard discovery flows can save time when a QR code is not involved. The receive command is handy for quick desk invoices, especially because it can show a QR and watch for settlement.

The least suitable user is someone who wants a beginner wallet with extensive onboarding, backup education and guardrails. Vortex assumes the reader understands what a NWC pairing string is, where the wallet balance lives and why app-specific limits matter.

What to check before using it

Before using Vortex with meaningful funds, check the Raycast Store page, the repository activity, the installed extension version and the current issue list. Then inspect the wallet-side NWC permission screen. The best connection is a fresh one labeled for Vortex, with a low spend limit and an easy revoke path.

Also test each command with tiny amounts. Pay one small invoice. Send to a Lightning Address you control. Create a small receive invoice. Load recent transactions and confirm the extension is showing what you expect. Redeem a low-value LNURL voucher or Cashu token before trusting larger values.

Finally, treat clipboard and selected text with care. Vortex's speed is real, and that speed is the reason to review inputs deliberately. The extension can be a very good desk tool when the wallet permissions are narrow and the user keeps final confirmation human.

Why it belongs in the NWC map

Vortex is a clean example of why Nostr Wallet Connect is broader than browser wallets. The app does not need to own a wallet backend to become useful. It can live in a macOS command palette, read a delegated wallet connection, and turn tiny daily payment tasks into native desktop actions.

It also shows how NWC can combine with older and adjacent Lightning conventions. BOLT11 invoices, Lightning Addresses, LNURL withdraw vouchers, fiat conversion helpers and Cashu tokens all appear in one compact extension. Nostr is the control path, but the user sees practical payment objects.

That makes Vortex a useful project to study even for readers who will never install it. It demonstrates a pattern: wallet services can expose permissioned capabilities, and small tools can build specialized interfaces around those capabilities without becoming banks, nodes or social clients.

The reader takeaway

Vortex is a sharp little macOS tool for people who already know what they are connecting. Its appeal is not a giant feature list. Its appeal is that a payment, an invoice, a transaction lookup or a voucher redeem can happen from the same keyboard surface used for the rest of a Mac workflow.

The caution is equally direct. A NWC connection is spending authority and wallet visibility, not just a harmless API key. Keep it scoped, keep it revocable, keep the balance exposure small and check that the extension is still maintained enough for the wallet software you use today.

Used that way, Vortex is one of the better examples of NWC as plumbing for everyday tools: small, fast, permissioned and useful because it disappears into a workflow the user already has.

Sources worth opening

Useful entry points are the Raycast Store page, the `getAlby/Vortex` repository, the README, `package.json`, the command files in `src/`, the changelog, Awesome NWC, NIP-47, the Alby SDK, Cashu's NUT specifications and the LNURL/LUD documents.

Back to the Crays Nostr page
Apps route visual cue 1
Apps route visual cue 2
Apps route visual cue 3
Apps route visual cue 4
Apps route visual cue 5

How to use this page

Find the product surface first.

Search clients, signers, product categories or developer tools when you need a specific app, source file or comparison clue.

AppsThe full Apps route stays open520 pages in this routeProducts, categories, builder notes and signer context.Browse pages
Apps route visual cue 1
Apps route visual cue 2
Apps route visual cue 3
Apps route visual cue 4
Apps route visual cue 5

Bring something back

Ask, suggest, submit or nominate.

Ask a question, send a source, suggest a fix, submit a project or nominate a public Nostr account. The page stays stable; your contribution gets reviewed beside it.