lightning-wallet.md

$ cat lightning-wallet.md

Za jedno léto jsem si v Cursoru postavil vlastní Lightning peněženku

Chtěl jsem Lightning peněženku, která je doopravdy moje

Tahle ležela v šuplíku už nějakou dobu, tak ji konečně vytáhnu. V létě 2025 jsem si postavil vlastní Bitcoin Lightning peněženku. Ne fork, ne přebarvenou cizí aplikaci. Skutečnou peněženku pro iOS, Android i web, sám, za jedno léto, v Cursoru.

Důvod je stejný jako u toho, proč si provozuju vlastní Bitcoin node a hostuju si v podstatě všechno, na co sáhnu: nebaví mě dávat svoje peníze do správy někomu cizímu a doufat, že se zachová slušně. Většina těch hezkých Lightning peněženek, co nainstalujete za třicet vteřin, je custodial. Vaše satoshi leží na jejich serveru, vaše klíče jsou jejich starost, a v den, kdy se rozhodnou účet zmrazit nebo službu vypnout, zjistíte, kolik z toho bylo vlastně doopravdy vaše. Tenhle obchod jsem dělat nechtěl. Tak jsem si postavil alternativu.

Co to vlastně je

Je to non-custodial peněženka pro Lightning Network postavená nad LNbits. Připojuje se k vaší vlastní (nebo libovolné nastavitelné) LNbits instanci a klíče zůstávají lokálně na zařízení. Nikam se neposílají, na žádný backend, který bych ovládal já. Když si ji napojíte na vlastní LNbits, je celý stack od začátku do konce váš, a přesně o tohle mi šlo.

Funkčně zvládá to, co denní peněženka zvládat musí:

Nic z toho není samo o sobě převratné. Faktury a QR kódy umí spousta peněženek. Cílem nikdy nebylo vymyslet Lightning znovu. Cílem bylo, že tahle je moje, klíče nikdy neopustí zařízení a rozumím každé vrstvě pod ní.

Tři nativní aplikace, jeden člověk, jedno léto

Tohle je část, na kterou jsem potichu hrdý. Nebyla to jedna codebase, co se tváří jako multiplatformní. Jsou to tři skutečné nativní buildy:

Nebudu předstírat, že jsem každý řádek Swiftu a Kotlinu napsal z hlavy. Nenapsal. O tom byl celý ten pokus. Chtěl jsem upřímně vědět, jestli jeden člověk s Cursorem dokáže za jedno léto vydat opravdu nativní iOS i Android a k tomu web, aniž by to ošidil přes webview obal. Ukázalo se, že ano, ale s pořádnou řádkou hvězdiček.

Upřímně k tomu vibecodingu

Vibecodovat tři platformy není kouzelné tlačítko. AI je rychlá na věci, které jsou nudné a dobře zdokumentované: layout, seznamy, napojení QR skeneru, naformátování zůstatku čtyřmi způsoby. Daleko slabší je ve chvíli, kdy se dotknete něčeho s reálnými následky, a peněženka není nic jiného než samé reálné následky. Práce s klíči, potvrzení před odesláním, ověření, že LNURL odpověď je opravdu tím, za co se vydává, hlídání, aby selhaná platba selhala nahlas a ne potichu. Tahle část je na vás. Skrz peníze se provibecodovat a jen tak odejít nejde.

Takže se moje práce posunula. Míň psaní, víc kontroly. Četl jsem každý řádek, který se přiblížil ke klíči nebo k zůstatku. Bral jsem AI jako velmi rychlého juniora, který se v bezpečnosti sebevědomě plete tak v deseti procentech případů, což je přesně těch deset procent, na kterých u peněženky záleží. Použité takhle byl Cursor obrovský násobič. Použité nedbale by mi s klidem vyrobilo nabitou zbraň mířící na vlastní nohu.

Proč pořád omílám tu suverenitu

Tohle navazuje přímo na to, co opakuju pořád dokola: provozuj si vlastní node, drž si vlastní klíče, vlastni si celý stack. Lightning peněženka je v tom celém řetězci ten nejosobnější bod, protože je to ta věc v kapse, která reálně utrácí. Když je zrovna tahle část custodial, je node, self-hosting i celý postoj k soukromí jenom poloviční gesto. Vlastní peněženka tu smyčku uzavřela. Můj node, moje LNbits, moje klíče, moje aplikace, můj kód.

Je to pro každého? Není.

Řeknu to na rovinu, radši slíbím míň. Je to osobní nástroj pro self-custody. Předpokládá, že jste typ člověka, kterému nevadí provozovat LNbits instanci nebo se na ni napojit a který chápe, že u non-custodial neexistuje žádná podpora, co vám vrátí prostředky, když ztratíte klíče. Tohle je princip self-custody a je to tak schválně. Pokud vás ta věta vyděsila, je pro vás custodial peněženka upřímně lepší doporučení, a to je naprosto v pořádku.

Ale pokud jste jako já, pokud "not your keys, not your coins" není slogan, ale designový požadavek, pak je postavit si tu věc sám hluboce uspokojivé. Peněženku si můžete prohlédnout na živém webu. Repozitáře jsou zatím privátní, takže na kód odkazovat nebudu, ale aplikace jsou reálné a sám je používám.

Jedno léto, jeden člověk, tři nativní platformy a peněženka, kde klíče konečně patří mně. Přesně takové projekty mi připomínají, proč to celé dělám.

zpět na blog