
Security News
Deno 2.2 Improves Dependency Management and Expands Node.js Compatibility
Deno 2.2 enhances Node.js compatibility, improves dependency management, adds OpenTelemetry support, and expands linting and task automation for developers.
@getalby/bitcoin-connect
Advanced tools
Web components to connect to a lightning wallet and power a website with WebLN
This project includes web components for connecting to Lightning Wallets and enabling WebLN. Websites only need to implement a single interface to connect with multiple wallets (WebLN), and users can connect from both desktop and mobile devices. These components work with pure HTML and all Javascript libraries frameworks such as React, Angular, Vue, Solid.js, etc.
npm install @getalby/bitcoin-connect-react
or yarn add @getalby/bitcoin-connect-react
npm install @getalby/bitcoin-connect
or yarn add @getalby/bitcoin-connect
### HTML (CDN)
You can use Bitcoin Connect without any build tools:
## 📽️ Demo
https://user-images.githubusercontent.com/33993199/234830578-0baf25f9-0179-4244-941c-0c558c613a7a.mov
## 🤙 Usage
Bitcoin Connect exposes the following web components for allowing user to connect their desired Lightning wallet:
- `<bc-button/>` - launches the Bitcoin Connect Modal on click
- Optional Arguments:
- `icon-only` - display the button as an icon without "Connect wallet"
- `disabled` - mark the button as disabled
- `<bc-modal/>` - render the modal on its own
- `<bc-connector-list/>` - render the list of connectors on their own
- _more components coming soon_
Bitcoin Connect exposes the following events:
- `bc:connected` window event which fires when a wallet is connected and window.webln is ready to use
- `bc:connecting` window event which fires when a user is connecting to their wallet
- `bc:disconnected` window event which fires when user has disconnected from their wallet
- `bc:modalopened` window event which fires when Bitcoin Connect modal is opened
- `bc:modalclosed` window event which fires when Bitcoin Connect modal is closed
Current wallets supported:
- [Alby Browser extension] (https://getalby.com)
- [Alby NWC](https://nwc.getalby.com)
- [Generic NWC URL](https://github.com/nostr-protocol/nips/blob/master/47.md)
### Styling
- the following css variables can be configured as hex or rgb:
```css
html {
--bc-color-primary: #21ecc7;
--bc-color-secondary: #21ecc7;
--bc-color-bg-primary: black;
--bc-color-bg-secondary: black;
--bc-color-text-primary: black;
--bc-color-text-secondary: #f4f4f4;
--bc-color-text-tertiary: white;
}
Example codepen: https://codepen.io/rolznz/pen/ZEmXGLd
<html>
<body>
<bc-button></bc-button>
<script src="https://cdn.jsdelivr.net/npm/@getalby/bitcoin-connect@1.0.5/dist/index.browser.js"></script>
<script>
window.addEventListener('bc:connected', async () => {
const invoice = // (...invoice generated by backend)
await window.webln.sendPayment(invoice);
confetti();
});
</script>
</body>
</html>
Example replit: https://replit.com/@rolznz/make-me-an-image-bc-version
import {Button} from '@getalby/bitcoin-connect-react';
const invoice = // (...invoice generated by backend)
return <Button onConnect={() => window.webln.sendPayment(invoice)}/>
Open demos
Run yarn install && (cd dev/vite && yarn install)
Run yarn dev
Open dev
yarn build
yarn dev:build
yarn dev:build:browser
yarn test
We are happy to help, please contact us or create an issue.
Yes! that's the main benefit.
Yes. It will use the desktop extension as the default connector if it exists.
That depends. The connection to your lightning node / wallet needs to be asynchronous so that you can use Bitcoin Connect natively on mobile websites or PWAs.
It will only work for the connectors that are shown in the modal. Some of these connectors (e.g. the Alby Browser Extension) allow to connect multiple wallets themselves. Feel free to contribute to add a new connector.
Yes. Your connection is saved to localStorage
You should have a certain level of trust on the website you decide to connect your wallet with, and that they ensure there is no malicious third-party scripts which would intend to read the wallet connection configuration, either from memory or storage. Connectors with budget controls or confirmation dialogs (Alby extension or NWC) are recommend so you have full control over your connection.
This project is powered by Lit.
See Get started on the Lit site for more information.
FAQs
Web components to connect to a lightning wallet and power a website with WebLN
The npm package @getalby/bitcoin-connect receives a total of 530 weekly downloads. As such, @getalby/bitcoin-connect popularity was classified as not popular.
We found that @getalby/bitcoin-connect demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 4 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Deno 2.2 enhances Node.js compatibility, improves dependency management, adds OpenTelemetry support, and expands linting and task automation for developers.
Security News
React's CRA deprecation announcement sparked community criticism over framework recommendations, leading to quick updates acknowledging build tools like Vite as valid alternatives.
Security News
Ransomware payment rates hit an all-time low in 2024 as law enforcement crackdowns, stronger defenses, and shifting policies make attacks riskier and less profitable.