Stacker News
Stacker News is not a normal Nostr timeline. It is a Bitcoin forum where sats, Cowboy Credits, territories, wallet attachments, Nostr login and crossposting all shape what readers see and how contributors get paid.
A forum where money changes the feed
Stacker News is easiest to explain as a Bitcoin-native forum, but that short description hides the important part. The site behaves like a public discussion board: people submit links, write posts, comment, follow threads, browse territories and build reputations. The difference is that the feedback loop is priced. Posts, comments, boosts, zaps, daily rewards, referrals and territory revenue are all part of the product. Instead of treating money as a donation button bolted onto social media, Stacker News makes small payments and payment-like credits part of ranking, curation and contributor incentives.
That design makes Stacker News relevant to Nostr readers even though it is not a plain Nostr client. You do not open Stacker News to read every event from your relay set. You open it to participate in a Bitcoin community whose accounts can connect to Nostr identity, whose posts can be crossposted to Nostr relays and whose payments increasingly use wallet connections instead of a hosted balance. It is a social app with Nostr edges rather than a full Nostr timeline.
The project is also unusually inspectable. The public repository says Stacker News moderates forums with money, describes the codebase as 100 percent FOSS and lists Next.js, Postgres, GraphQL and LND as core parts of the stack. The live product adds the social economy around that code: sats, Cowboy Credits, zaps, territories, trust and wallet attachment. For a reader, the interesting question is not whether Stacker News is on Nostr. The question is how those pieces work together when discussion, identity and payments touch the same account.
Sats, Cowboy Credits and the non-custodial shift
The Stacker News FAQ draws a hard line between sats and Cowboy Credits. Sats are Bitcoin units that can move through the Lightning Network when you attach suitable wallets. Cowboy Credits, usually shown as CCs, are internal site credits. They can be used for site actions at a one-to-one accounting rate, but they are not withdrawable. That distinction matters because the product can remain usable for a new reader before the reader has connected a wallet, while still pushing real payouts and real zaps toward external Lightning infrastructure.
This is the heart of the non-custodial migration. Older web products often keep balances on the server and update a database when users tip one another. Stacker News has moved toward attached wallets, background retries, explicit payment sources, explicit payment destinations and fallbacks when a sender or receiver cannot complete a Lightning payment. The FAQ tells users that without an attached wallet they may send or receive CCs, and that many wallets support Nostr Wallet Connect or Lightning Address.
For readers, this makes Stacker News feel a little more demanding than a normal forum. You can browse and participate with credits, but if you want sats to leave or arrive as Lightning payments, wallet setup becomes part of the account. You should know which wallet sends, which wallet receives, what limits are set, whether the credentials are encrypted or stored plainly for server-side invoice creation and what happens when a zap falls back to CCs. The site gives you a social room; the money path is still something you should understand before leaning on it.
Nostr login is a signed challenge, not a magic button
Stacker News supports Nostr authentication, and the implementation is more specific than a generic Login with Nostr label. The client creates an authentication challenge, asks the signer to sign an event and sends that signed event back to the server. In the code checked for this article, the event kind is 27235 and the tags include a challenge, the site URL and the HTTP method. The content names Stacker News authentication. The server then recomputes the event id, verifies the Schnorr signature and checks that the challenge matches before associating the pubkey with the account.
The client side supports browser extensions and remote signing flows. The sign-in component lists extension options such as Alby, Flamingo, nos2x, nos2x-fox and horse, and also recognizes NIP-46 style signers such as Nsec.app and nsecBunker. That means a reader can sign the login event without handing a private key directly to Stacker News, provided the signer is configured correctly and the prompt is readable enough to approve with confidence.
The practical lesson is simple: Nostr login is only as comfortable as your signer. If you use a browser signer, check the prompt and revoke old permissions when you rotate accounts. If you use a remote signer, understand where the signer runs and how it asks for consent. If you connect a high-value identity, test the flow with a less important account first. Stacker News verifies the signed challenge, but the reader still chooses the signer and the key hygiene around it.
NIP-05 makes Stacker News a public identity surface
Stacker News also participates in Nostr identity through NIP-05. The repository contains an API route for the well-known nostr.json endpoint, and the live site exposes that endpoint. A user with a configured Nostr pubkey can make their Stacker News name resolve as a Nostr identifier, and the endpoint can return relay information for that pubkey when user relay data is present.
This is a different kind of Nostr feature from login. Login proves to Stacker News that a signer controls a key. NIP-05 helps other Nostr clients connect a human-readable identifier to a pubkey. The FAQ and changelog history show Stacker News treating NIP-05 as part of account identity rather than as a full migration into Nostr. It is a bridge: your Stacker News presence can become easier to find from Nostr clients, and your Nostr pubkey can sit visibly beside your forum account if you choose to reveal it.
That visibility has a privacy side. The user schema includes fields for a Nostr pubkey, Nostr authentication pubkey, relay settings, crossposting preference and a hide-Nostr flag. A reader should not treat every linked identifier as harmless. If your Stacker News account, Nostr pubkey, Lightning address and wallet behavior are all tied together, you are making a stronger public identity bundle. That can be useful for reputation. It can also make pseudonym separation harder.
Crossposting turns forum work into Nostr events
Stacker News can publish selected Stacker News content out to Nostr relays. The crossposting code is one of the clearest signs that the site treats Nostr as a publishing network rather than merely a login provider. Long discussions can become kind 30023 long-form events with a stable d tag, title and published_at tag. Link posts and polls can become kind 1 notes. Bounties can be represented as kind 30402 classified listings, which aligns with NIP-99's use of addressable events for offers, work and other listings.
The code uses default relays such as nostrue.com, relay.damus.io, relay.nostr.band, relay.snort.social and relay.primal.net, then combines them with the user's own relay settings. It signs and publishes through NDK, records successful and failed relays and can retry failed relays or skip them. That is exactly the kind of practical behavior crossposting needs. Publishing to Nostr is not one HTTP request to a single platform. It is a signed event being sent to a set of relays with uneven reach, policy and availability.
For readers, crossposting is valuable when you want Stacker News work to travel outside Stacker News. A long post can become a Nostr article. A bounty can become a Nostr classified-style event. A link can become a note that other clients can quote, react to or discover. The tradeoff is that editing, deletion, relay coverage and audience context become more complicated once the post leaves the site. Before crossposting important work, check which relays you use and whether another client renders the result the way you expect.
Wallet attachment is part of the product, not an afterthought
Stacker News has a large wallet layer because the social product depends on payments. The code defines wallet protocol names such as NWC, LNbits, Phoenixd, Blink, WebLN, Lightning Address, Lightning Node Connect, CLN REST, LND gRPC and other integrations. The wallet templates include familiar names such as Alby, Blink, Blixt, Cashu.me, Coinos, Fountain, LNbits, Minibits, Phoenixd, Primal, Rizful, Shockwallet, Speed, Strike, Wallet of Satoshi, ZBD, Zeus and a generic Nostr Wallet Connect entry.
Nostr Wallet Connect receives special handling. The send-side NWC field is treated as a secret and encrypted. The receive-side NWC field is stored differently because the server may need to request invoices when someone sends sats to you. The FAQ explains why Stacker News asks for two NWC strings: spending permissions should not sit on the server in plaintext, while receiving details have to be available to create invoices when the recipient is not actively online in the browser. That is a subtle but important design choice.
This is also where readers should slow down. A NWC string is not just a contact address. Depending on the wallet and permissions, it can authorize payment requests, invoice creation or both. Stacker News validates NWC URLs, expects secure websocket relays and distinguishes send and receive capabilities. You should still connect with a small budget, read your wallet's permission screen, keep a separate connection for experiments and confirm whether the wallet lets you revoke or rotate that connection.
Why two wallet strings can be safer than one
Many readers expect one wallet connection to do everything. Stacker News deliberately pushes against that expectation because sending and receiving have different risk profiles. Receiving requires invoice creation. If someone zaps you while you are offline, the site needs a way to ask your receiving wallet for an invoice. Sending requires the power to spend. Storing that power in server plaintext would be a much larger risk.
The code reflects that split. The send NWC protocol relation keeps the URL encrypted, while the receive NWC protocol keeps a URL the server can use to request invoices. The client-side send code calls the wallet's pay invoice method and checks that spend permissions are present. The server-side receive code checks invoice-creation permissions and even rejects receive configurations that expose spending methods in the receive-only context. That behavior is not just UX friction. It is a guardrail around a mixed social and payment product.
The reader benefit is that you can choose different risk levels. A small send budget can be used for zaps and site actions. A receive connection can let sats arrive without giving Stacker News spend authority. The cost is more setup and more terminology. If the wallet UI makes it hard to create separate strings with separate permissions, you may need to pick a wallet that makes these boundaries visible.
Zaps are feedback, ranking and accounting
On Stacker News, a zap is not only a tip. It is a signal that feeds ranking, rewards, trust and territory economics. The FAQ describes zaps as Lightning micropayments for posts and comments, and the product lets readers choose amounts, repeat zaps, use turbo behavior and sometimes undo above-threshold zaps before they execute. The site also uses sats zapped, post cost and boosts as visible investment signals for filtering and ranking.
The payment distribution makes the signal less naive than a simple like. In the zap pay-in code, receiver shares, territory founder shares, reward-pool shares and routing shares are calculated according to context. The FAQ says territory founders can receive 21 percent of zaps, while post and comment fee revenue has its own founder share. The rest can flow toward rewards and other site incentives. This means a zap can support a writer, strengthen a territory and contribute to the broader rewards pool at the same time.
This also means Stacker News asks readers to treat money as speech with consequences. A one-sat action is lightweight, but repeated zaps, boosts, territory fees and downzaps all shape what people see. If you read Stacker News like a normal free forum, the incentive layer can feel strange. If you read it as an experiment in paid curation, the design becomes more coherent: the site is trying to make low-cost signals harder to fake and more useful for discovery.
The PayIn system is the hidden machinery readers feel
The most technical part of Stacker News is also one of the most important for readers: the PayIn system. Its internal README describes a unified ledger and state machine for non-custodial payments, retries, payment sources, destinations and balance effects. That sounds dry, but it is the reason the site can handle real wallets, reward sats, Cowboy Credits, peer-to-peer payments, failures and retries without reducing everything to a single internal balance.
For peer-to-peer zaps, the code coordinates between sender, receiver and Stacker News itself. The system can request an invoice from a receiver wallet, wrap payment state, account for routing or reward shares and settle or fail according to what happens. It also falls back when a sender has no send wallet, a receiver has no receive wallet, a wallet fails, routing costs are too high or a payment is too small to move economically. Those are ordinary Lightning edge cases, but Stacker News exposes them in a social setting where users expect a zap button to feel instant.
This is why some zaps become CCs. The fallback is not only a convenience feature. It keeps the forum usable when real payments are unavailable or uneconomical. A reader should still know when a zap is actually moving sats and when it is accounting inside the site. That difference matters for withdrawal, tax records, wallet privacy and expectations around settlement.
Territories make moderation economic
Territories are Stacker News communities. They work a little like topic boards or subforums, but with a founder model and site-level economics. The FAQ describes the cost of founding a territory, the revenue split founders can receive and the way posting, commenting, boosting and zapping inside a territory can produce founder revenue. Public release coverage from late 2023 framed territories as user-generated subs and connected the feature to the site's broader move toward wallet and legal groundwork.
This changes moderation because the founder is not merely a volunteer with a title. A founder is paying to create and maintain a space, can receive a share of activity and has incentives around growth, quality and legal risk. That can produce focused communities when the founder is careful. It can also create weird incentives if a territory optimizes for volume or drama rather than useful discussion.
For a reader, territories are worth evaluating one by one. Look at the topic, rules, founder behavior, post quality, fees and how people use zaps or downzaps inside the space. The site-wide Stacker News identity can carry you across territories, but each territory can feel like a distinct room. That room has money attached to it, so community culture and payment design are never separate.
Trust and spam filtering are paid signals plus reputation
Stacker News does not rely only on raw zap totals. The FAQ describes a Web of Trust system where new accounts begin without much trust and gain it by zapping good content earlier than others. Trust scores are private, but they influence daily rewards and help the site distinguish useful curation from sybil behavior. The product also supports downzaps, sats filters and other mechanisms that make low-quality behavior more expensive to push into view.
This matters because a forum that uses money as a signal can still be gamed. A wealthy spammer can pay for attention. A coordinated group can push each other. A popular account can become reflexively rewarded. Web of Trust, fee escalation, downzaps and reward rules are all attempts to make the market social rather than purely financial. They do not remove judgment from the system, but they create more texture than a simple pay-to-rank board.
Readers should see Stacker News ranking as an editorial economy. It is not neutral. It reflects what users pay for, what trusted curators found early, what territories reward, what the site charges and what the code filters. That can be more honest than pretending a hidden algorithm is objective, but it still deserves scrutiny. If a conversation matters, read the comments, not only the rank.
The open-source stack is part of the accountability
Stacker News is not just open in the abstract. The repository contains the application, wallet layer, PayIn logic, Nostr authentication, NIP-05 endpoint, user settings, Prisma schema, FAQ docs, development environment and deployment-adjacent code. The README says the project pays bitcoin for pull requests, issues, documentation, code reviews and more. That fits the product philosophy: open work is compensated with the same money-native culture the site promotes.
The checked dependency list shows a modern web app with Next.js, React, Apollo, GraphQL, Prisma, Postgres, LND tooling, ln-service, Lightning Node Connect libraries, Cashu libraries, WebLN, NDK, ndk-wallet and nostr-tools. That combination tells you what kind of product Stacker News is. It is not a thin static frontend. It is a payment-heavy web application with Nostr signing and relay publishing layered onto a forum, wallet and accounting backend.
For technical readers, this makes Stacker News a strong implementation study. You can inspect how Nostr authentication is verified, how NWC URLs are parsed, how receive wallets differ from send wallets, how payment retries are modeled, how user relay settings are stored and how crossposting builds events. For non-technical readers, the open repo is still useful because it lets wallet providers, contributors and critics check whether the product's non-custodial claims match the implementation.
What to test before relying on it
Begin with identity. Log in with the signer you actually plan to use, then check whether your Stacker News account shows the Nostr pubkey and NIP-05 state you expect. If you care about pseudonymity, decide whether linking your Stacker News name, Nostr pubkey and Lightning behavior is worth it. If you plan to crosspost, publish a low-stakes post first and inspect it from another Nostr client.
Then test wallets with small amounts. Attach a send wallet with a tiny budget, make a small zap and confirm where the payment came from. Attach a receive wallet, ask someone you trust to send a tiny zap and confirm where the invoice was created and where the sats landed. Read any passphrase or reset-wallet language carefully, because losing local encryption material can change whether sending credentials remain usable from another device.
Finally, test failure paths. What happens when your wallet is offline? What does a failed zap look like? When does the site use CCs? Does your wallet show permissions clearly? Can you revoke the NWC connection? If you run a territory, understand the recurring cost, fee splits, moderation burden and legal context before treating it as a passive income space. Stacker News is powerful because it makes social actions financial; that same power rewards careful setup.
Who Stacker News is best for
Stacker News is best for readers who want Bitcoin discussion to have a price signal and are willing to learn the wallet layer that makes that signal meaningful. It is especially useful for builders, writers, node runners, Lightning users, Nostr people and contributors who want a forum where good posts can earn sats and where technical arguments are often backed by code, wallets and public issue threads.
It is less ideal if you want a frictionless social feed with no financial setup, no account linking questions and no visible payment edge cases. You can still read and use Cowboy Credits, but the deeper product assumes that sats, zaps, wallet permissions and territory economics are part of the experience. That is not a flaw. It is the bet Stacker News is making.
The strongest way to use Stacker News is to treat it as its own product rather than as a replacement for Nostr clients or Hacker News. Use it for Bitcoin-native discussion, paid curation, territory communities and public posts that may travel to Nostr. Use a dedicated wallet connection with clear limits. Keep your identity links intentional. When those pieces line up, Stacker News becomes one of the clearest examples of what happens when social software, Nostr identity and Lightning payments are designed as one system.
Sources worth opening
Open the live site and FAQ first, then read the repository, wallet code, Nostr authentication code, PayIn notes, protocol files and public release discussions that explain how Stacker News moved toward attached wallets and Nostr-aware identity.
- Stacker News live site
- Stacker News FAQ
- Stacker News changelog
- Stacker News NIP-05 endpoint
- Stacker News GitHub repository
- Stacker News README
- Stacker News package file
- Stacker News user FAQ source
- Stacker News Nostr auth component
- Stacker News Nostr helper code
- Stacker News crossposter hook
- Stacker News NIP-05 API route
- Stacker News auth API route
- Stacker News user resolver
- Stacker News user GraphQL type definitions
- Stacker News Prisma schema
- Stacker News wallets README
- Stacker News NWC protocol definition
- Stacker News client NWC payment code
- Stacker News server NWC invoice code
- Stacker News wallet validation code
- Stacker News wallet templates
- Stacker News WebLN protocol code
- Stacker News Lightning Address protocol code
- Stacker News PayIn README
- Stacker News PayIn state machine
- Stacker News zap PayIn type
- Stacker News downzap PayIn type
- Nostr Wallet Connect issue on Stacker News
- SN wallet integration issue
- No Bullshit Bitcoin on Stacker News NWC and LNbits
- No Bullshit Bitcoin on Stacker News territories
- Stacker News release on P2P zaps and receiving wallets
- Blink guide to connecting a wallet to Stacker News
- NIP-05 mapping Nostr keys to DNS identifiers
- NIP-07 browser signer capability
- NIP-23 long-form content
- NIP-46 Nostr remote signing
- NIP-47 Nostr Wallet Connect
- NIP-57 Lightning zaps
- NIP-98 HTTP auth
- NIP-99 classified listings
- LNURL LUD-16 Lightning Address
- Nostr Wallet Connect home
- Nostr Development Kit repository





