joule-labs / Joule Extension
Licence: mit
Lightning payments extension for Chrome
Stars: ✭ 303
Programming Languages
typescript
32286 projects
Projects that are alternatives of or similar to Joule Extension
Lndmanage
Channel management tool for lightning network daemon (LND) operators.
Stars: ✭ 114 (-62.38%)
Mutual labels: bitcoin, lightning, lightning-network
Umbrel Os
Run Umbrel Bitcoin and Lightning node on a Raspberry Pi in one click
Stars: ✭ 132 (-56.44%)
Mutual labels: bitcoin, lightning, lightning-network
Phoenix
Phoenix is a non custodial Bitcoin wallet using Lightning to send/receive payments.
Stars: ✭ 129 (-57.43%)
Mutual labels: bitcoin, lightning, lightning-network
Blixt Wallet
Bitcoin Lightning Wallet with focus on usability and user experience
Stars: ✭ 40 (-86.8%)
Mutual labels: bitcoin, lightning, lightning-network
Polar
One-click Bitcoin Lightning networks for local app development & testing
Stars: ✭ 265 (-12.54%)
Mutual labels: bitcoin, lightning, lightning-network
Lightning Faucet
A faucet for the Lightning Network!
Stars: ✭ 56 (-81.52%)
Mutual labels: bitcoin, lightning, lightning-network
lightning-browser-extension
The Bitcoin Lightning Browser extension that connects to different wallet interfaces and brings deep lightning integration to the web
Stars: ✭ 194 (-35.97%)
Mutual labels: lightning, browser-extension, lightning-network
Umbrel
A personal Bitcoin and Lightning node designed for everyone
Stars: ✭ 508 (+67.66%)
Mutual labels: bitcoin, lightning, lightning-network
Ln Service
Node.js interface to LND
Stars: ✭ 191 (-36.96%)
Mutual labels: bitcoin, lightning, lightning-network
Lncli Web
Light-weight web client for the lnd daemon written in NodeJS / Angular.
Stars: ✭ 181 (-40.26%)
Mutual labels: bitcoin, lightning, lightning-network
Lightninglib
lightninglib is a fork of lnd which aims to be usable as a go library inside any application, including mobile apps.
Stars: ✭ 11 (-96.37%)
Mutual labels: bitcoin, lightning, lightning-network
Spark Wallet
⚡️ A minimalistic wallet GUI for c-lightning, accessible over the web or through mobile and desktop apps.
Stars: ✭ 215 (-29.04%)
Mutual labels: bitcoin, lightning, lightning-network
Eclair
A scala implementation of the Lightning Network.
Stars: ✭ 892 (+194.39%)
Mutual labels: bitcoin, lightning, lightning-network
Lightning Rfc
Lightning Network Specifications
Stars: ✭ 1,224 (+303.96%)
Mutual labels: bitcoin, lightning, lightning-network
Lnd
Lightning Network Daemon ⚡️
Stars: ✭ 5,623 (+1755.78%)
Mutual labels: bitcoin, lightning, lightning-network
Awesome Bitcoin Payment Processors
🌟 A curated list of Bitcoin payment processors enabling merchants, businesses and nonprofits to accept Bitcoin payments.
Stars: ✭ 129 (-57.43%)
Mutual labels: bitcoin, lightning, lightning-network
Electrum
Electrum Bitcoin Wallet
Stars: ✭ 5,353 (+1666.67%)
Mutual labels: bitcoin, lightning, lightning-network
Zeus
A mobile Bitcoin/Lightning app for lnd, c-lightning, and Eclair node operators ⚡️
Stars: ✭ 175 (-42.24%)
Mutual labels: bitcoin, lightning, lightning-network
Lndhub
Wrapper for Lightning Network Daemon. It provides separate accounts and trust minimization for end users
Stars: ✭ 203 (-33%)
Mutual labels: bitcoin, lightning, lightning-network
Eclair Mobile
An Android wallet for the Lightning Network
Stars: ✭ 231 (-23.76%)
Mutual labels: bitcoin, lightning, lightning-network
Overview
A chrome extension that lightning-charges your browser with webln, giving you the ability to pay and use your node as an identity on the web.
WARNING: Joule is in early alpha, and should not be used for large mainnet funds
Project Layout
joule-extension/
├── src # All source code
│ ├── app # The main React app, used by the other clients
│ │ ├── index.tsx # Entry point for the app
│ │ ├── AppRoutes.tsx # Routes used in the popup and options clients
│ │ ├── PromptRoutes.tsx # Routes used in the prompt client
│ │ ├── components # All reusable components
│ │ ├── lib # Standalone libraries, potentially split into node modules
│ │ ├── modules # Vertical slices of business logic, mostly redux code
│ │ ├── pages # Container components for app routes
│ │ ├── prompts # Container components for prompts
│ │ ├── static # Static assets that are compiled and processed
│ │ ├── store # Redux setup and configuration
│ │ ├── style # Global or common-use styles
│ │ ├── typings # Module typings for TypeScript
│ │ └── utils # Miscellanious utility functions and constants
│ ├── background_script # Extension background script
│ ├── content_script # Extension content script, injects inpage_script and communicates with background_script
│ ├── inpage_script # In-page injected script, manages WebLN
│ ├── options # Options client, full screen version of the app
│ ├── popup # Popup client, opened by clicking icon in toolbar
│ ├── prompt # Prompt client, opened by WebLN and BOLT-11 links
│ └── webln # WebLN implementation, injected via inpage_script
├── static # Static assets that don't go through any processing
├── dist-dev # Developer builds go here, not checked into git
└── dist-prod # Production builds go here, not checked into git
Development
- Run
yarn install && yarn run dev
- Open Chrome -> More Tools -> Extensions
- Toggle "Developer mode" (if such a toggle exists)
- Click "Load unpacked"
- Select the
joule-extension/dist-dev
folder you created - Get to work!
If you're also working on webln
, you'll
want to clone and build that repository, and run yarn link
. Then come back
to the joule folder and run yarn link webln
.
NOTE: After making changes, you'll need to close and re-open the extension to load the latest build.
Redux DevTools:
- Open the extension popup or full page
- Right click on the background
- Choose Redux Devtools -> Open Remote DevTools
- A new window will open displaying the Redux actions list
React DevTools:
- Run
npm install -g react-devtools
- Be sure to use
yarn run dev
to build the app - Run
react-devtools
in a new Terminal - A new window will open displaying the React vdom inspector
React Hot Reload:
- Run
yarn run hot
instead ofyarn run dev
Building
To make a production build, follow these steps
- Run
yarn build
- Raw files and a zip of them will be output to
dist-prod
Releasing
- Bump the version number in
package.json
andstatic/manifest.json
- Create a git tag called
v${version}
and push it - Run a build
- Make a new Github release, upload the build assets, write a changelog
- Upload the built zip to the Chrome developer dashboard, Firefox addons site, and Opera addons site
Testing
...regrettably, TBD
Contributing
Please see the Contributor Guidelines on the Wiki.
Shoutouts
- Thanks to the MetaMask team for establishing a ton of the UX best practices for browser crypto payments.
- Thanks to @afilini for providing a small prototype reference implementation of the extension flow.
- Thanks to Chaincode Labs for putting together the 2018 Lightning residency, where this was born.
Pay me money pls
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].