Inspiration

Lightning opens the door to a new internet, but because of UX challenges with sovereignty we've seen a much slower uptake than we should for something so amazing.

It may come as a surprise that the biggest hurdle to more adoption via Family and SMB Lightning nodes hasn't been with Bitcoin/Lightning node management itself, as we've seen that liquidity is easily automated, but rather the legacy baggage of traditional Client-Server web infrastructure. Things like IP4, Reverse Proxies, DNS, Firewalls and SSL certificates, all require a personal configuration that is a hurdle for most.

Tor as a workaround has proven too slow and unreliable, and a dead-end for clearnet-web usecases. Mobile node are easy but channels for every device is expensive and unscalable, and the UX that suffers from the limitations of the node not being an always-online server.

Pub solves these challenges with a P2P-like design that is also web-friendly, by implementing a full RPC that is Nostr-native. Being Nostr-native eliminates the complexity of configuring your node like a server by using commodity Nostr relays. These relays, unlike LNURL proxies, are trustless by nature of Nostr's own encryption spec (NIP44).

By solving the networking and programability hurdles, Pub provides Lightning with a 3rd Layer that enables node-runners and Uncle Jims to more easily bring their personal network into Bitcoin's permissionless economy. In doing so, Pub runners can keep the Lightning Network decentralized, with custodial scaling that is free of fiat rails, large banks, and other forms of high-time-preference shitcoinery.

What it does

Lightning.Pub is a Nostr-based Lightning Node System for sharing access and connecting from apps. Pub is for the first time a turn-key solution for node runners to share their node with friends, families, customers and power apps over Nostr.

ShockWallet is the reference wallet client you can use to manage your node and invite guests. Users can also add multiple accounts from LNURL services or other Pub's.

How we built it

Wallet and Pub uses Nostr to speak a protocol "Kind 21000", which are methods defined in a proto file that is used to autogenerate Nostr-RPC clients for both the wallet and pub server.

Pub is a typescript project and we use the Ionic framework with React for creating a cross-platform interface in ShockWallet

Challenges we ran into

Security is paramount running a Lightning service, where we use Pub for high profile services we are constantly under attack and hardening it. Wallet UX is also difficult to design for cross-device use and getting everything to work perfect and intuitively requires A TON of user feedback.

Accomplishments that we're proud of

ShockWallet may already be the best Lightning wallet to use as a daily driver, and Lightning.Pub is very close to being the accounts system on Lightning.

What's next for Lightning.Pub and ShockWallet

We're working towards distribution on Umbrel/Start9 like appliances, and integrating product sales hooks. We will then solidify a client library for static payment codes over Nostr and Nostr-native Lightning Addresses using NIP05 handles.

Built With

Share this project:

Updates