pull down to refresh

This review is about ShockWallet as a custodian and PWA web app. If you wanna learn more about this wallet’s real potential as a self-custody option, check out the GitHub repo.

Setting up a ShockWallet literally takes 1 or 2 minutes and just a few clicks. You can do it by going to https://shockwallet.app/ and hitting PWA Launch as Web App.

Now it’s time to generate a new access key, or you can use your Nostr key if you’re already a user. I’d recommend creating a new one to keep things separate and a bit more secure.

Now that you’ve created a new key, it’s time to choose to use ShockWallet as a custodian. For that, just pick the “Bootstrap” option and click "Connect".

🎉 Now you can start sending and receiving sats.

CONGRATULATIONS!CONGRATULATIONS!

Alright, now we’re ready to check out what ShockWallet has to offer. In this section, I’ll quickly run through the features and throw in a few suggestions.

ReceiveReceive

SendSend

Identities (Avatar click)Identities (Avatar click)

I created a few identities just for testing. When you click on an identity, you can edit some of its details.

Suggestions:

  • I noticed that in the identities list there’s a little “trash can” icon next to each one, but you can’t actually delete an identity (at least I couldn’t figure out how).
  • It’d be nice if you could edit the identity’s name too (right now you can only edit or add relays).

AutomationAutomation

Address BookAddress Book

Linked AppsLinked Apps

Clicking the little pencil in the top right lets you edit the rule.

Suggestion: It’d be cool if we could edit the name of each rule, when you’ve got a bunch, it’s hard to tell which app they belong to.

Note: You can’t create rules manually, they only show up when an app makes its first debit request. Only after that can you edit the rule and approve the debit. This one’s for accepting debits from Stacker News.

OffersOffers

Offers are for getting spontaneous payments, but I’ll admit I haven’t really messed with this feature. You can edit and create new offers. If someone knows more about this, feel free to explain in the comments. I’d appreciate it.

PreferencesPreferences

Attached NodesAttached Nodes

You can edit and add new nodes, though I haven’t really messed with this feature.

Final thoughtsFinal thoughts

ShockWallet as a custodian is perfect for my needs, 99% of my transactions are with Stacker News. It’s easy to use, intuitive, and has no monthly fees. There are service and network fees, but they’re reasonable (for a payment of 13,048 sats I paid 79 in service fees and 53 in network fees). In the past two weeks, there was at least one downtime, but I think it was under an hour.

Thanks @justin_shocknetThanks @justin_shocknet

150 sats \ 4 replies \ @BlokchainB 7h

Great review!

reply

It’s not that great, to be honest! But thanks anyway. ahaha

reply
136 sats \ 2 replies \ @BlokchainB 4h

Nah it is! Dont sell yourself short! AI can’t do this level of review yet right @optimism

reply
246 sats \ 1 reply \ @optimism 3h

Of course it cannot.

reply

Exactly!

reply
126 sats \ 21 replies \ @DarthCoin 9h

OK I understand you just wanted to test this app first and I agree, the boostrap mode is exactly about that.

But what keeps you to not run a Lightning.Pub as backend funding source for Shock wallet ?

  • liquidity management constrains
  • having a dedicated PC running LN.PUB 24/7
  • not enough funds to dedicate to opening LN channels
  • app not enough mature
  • other reasons
reply

Mostly it’s because we’d have to keep a machine running 24/7 and deal with the costs that come with it. I also haven’t really put in enough time yet to figure out liquidity management, but I think if it’s a private node, that whole thing gets a lot simpler.

reply

OK understandable.
I suggest this next experiment for you: Go to https://lightning.video/login create and account, upload a video or not, doesn't really matter, then try to link that LNV account into your Shock wallet as additional identity.

reply

It’s asking for an email or an nsec 👎

reply
reply

I don’t have the extension on this PC. A barcode (LNURL) shows up, but I’m not really sure how to use it with ShockWallet (PWA)

reply

Now you have more things to investigate :)

reply

I’m guessing it would work using the QR scan option in ShockWallet, but since I don’t have a camera connected it just throws an error and I can’t do anything else. When you click “scan QR code,” instead of showing an error and closing the popup, it could let you manually enter the LNURL instead. cc/ @justin_shocknet

I couldn’t find a way to log in without the extension or by using the LNURL in ShockWallet (no camera to scan QR code), so I just entered the nsec (it’s a test account, no big deal!)

https://lightning.video/20b5ca38302a3ceca4c31aba16643ce818e5bfaa080059bbd9c9d0603cbc902d

this cost me 400 sats! ahahah

3 sats \ 1 reply \ @Ohtis 7h

Keeping a machine on 24/7 sounds rough. I’m still learning, but would starting private really make liquidity management much simpler in practice?

reply

Lightning.Pub has liquidity automation thats sufficient for a personal/private node, management really only becomes a job when you're optimizing for routing

reply

I'd consider running a Lightning.Pub if it has the ability to be switched on and off - i have a private LN node which i run part time, but i'm not aware any way to use Lightning.Pub in the same way - it's the only sticking point, as it has better features than my current setup.

reply

You mean shutting down the system it runs on? Pub just sits over LND and installs systemd services, so it'll start up / shut down with the system.

There's channel closure risk with any offline Lightning node, so I generally recommend that people who don't have the space or a spare laptop kicking around use a cheap VPS.

reply
143 sats \ 3 replies \ @02d769cb73 4h

Yes, i run a Bitcoin node and an LN node on a laptop (Ubuntu OS), which is on maybe 12 hours per day, and i open and close both nodes from terminals - closing the terminal stops the nodes, and i then shut down the laptop. On restarting i fire them both up again using the ./ command - Bitcoin first, and when that's synced, the LN node.

Not sure if you mean i could do something similar - would i have to use a command to close LND before shutting down the laptop, and would i have to also use a command to start it up again when the laptop is restarted ?

reply

There's no need to run things in a terminal, best to run them as systemd units so if the laptop is running then they are running as background processes.

Lightning.Pub's installer actually sets these up for you. Depending how your current node is configured it may need some extra touch though as its really for fresh installs.

If you want, dump this into an LLM and ask for instructions how to set up your current LN node as a systemd unit: https://github.com/shocknet/Lightning.Pub/blob/master/scripts/start_services.sh

Is this your daily driver laptop and that's why its off 12 hours per day? The best lightning node for most people is a spare old laptop that can just sit in a closet or on a bookshelf online 24x7.

reply
20 sats \ 1 reply \ @02d769cb73 3h

It's a spare laptop that i've been using to run a Bitcoin node for some years now - i added the LN node a couple of years ago to see if i could use it with the Bitcoin node and it all just worked (to my surprise) - maybe i've been lucky but i don't have problems with channels - my ACINQ channel is over 2 years old now - i don't route, it's for my use only, but i like to keep it switched off when i'm away from it to prevent interference from those around me where i'm living.

I'll take a look at the link and see if i can get anywhere with it - thx

reply

Cool, you're most of the way there then.

Lightning.Pub doesn't work with ACINQ's node (phoenixd), but you can still add phoenixd to systemd to avoid the terminal jockeying.

(Also add bitcoind to systemd, then set the phoenixd systemd unit to be dependent on bitcoind. That will ensure bitcoind starts first. It's not really important that it's fully sync'd to the tip before phoenixd starts, given that its not getting so far behind it takes forever to catch-up)

Your channels are probably safe-ish since its just to the LSP and your online most of the time, it's when you have many channels to aggressive peers the risk really starts to creep in.

reply
3 sats \ 1 reply \ @Ohtis 7h

Interesting point. Is having a dedicated PC really a dealbreaker, or could cloud hosting work for smaller devs?

reply

A cheap VPS is adequate, Pub configures LND with neutrino so you only need 20GB of disk and 3GB of RAM.

Hetzner, OVH, Racknerd, Hostinger are a few providers that offer adequate VPS's for a few dollars per month.

reply

Grabbed some notes for the next wave of UI cleanup, thanks!

Identities

Plan is to scavenge anything from an identity that might already exist from the network for people that use their social nostr keys, need to think about how to implement edits carefully so folks don't accidentally overwrite their Nostr profiles in that case.

Ideally I'd like to link this out to a social app front-end that's based around web pages for receiving payments

(leveraging offers to the max)

Automation

This is a barebones cron-job like functionality for recurring payments, you can add a rule to pay an offer/lnurl automatically based periodically

Not super-robust yet as it's all wallet side, need to move it to the Pub-side so it doesn't depend on the wallet being open... or we could use the coming push notifications for reminders

Linked Apps ... It’d be cool if we could edit the name of each rule

Noted. The original intent for this was services would use persistent service keys, so the app in your case would have shown "Stacker News" and had an appropriate avatar from the Nostr network

... but SN doesn't actually run a nostr-based service, the SN wallet pairing is client side so each user is doing it with an ephemeral own key.

We should allow for labeling in that case.

Offers

These are analogous to LNURL's or Bolt12 offers, except they use Nostr so they work infinitely better.

The other settings there are event triggers so the offer can accept additional parameters from the payer for products and services etc. When a payment comes in for a given offer the Pub can then callback to an external webhook on payment... that would be something like a fufillment system for orders or custom app that does a thing when someone pays you.

I made a web app for @Car at PlebLab that uses Offers to power it, it's just a static page sitting on GitHub that just takes an offer as an argument for the payment endpoint

Very easy to vibe code your own with the CLINK SDK https://www.npmjs.com/package/@shocknet/clink-sdk

I plan to do a vibe coding with CLINK video at some point soon

reply
20 sats \ 0 replies \ @Car 6h

Legend 💫

reply