Repository files navigation

LNbits

license-badgedocs-badge

Lightning network wallet

LNbits v0.10 BETA, free and open-source Lightning wallet accounts system

(Join us on https://t.me/lnbits)

LNbits is beta, for responsible disclosure of any concerns please contact lnbits@pm.me

Use legend.lnbits.com, or run your own LNbits server!

LNbits is a Python server that sits on top of any funding source. It can be used as:

  • Accounts system to mitigate the risk of exposing applications to your full balance via unique API keys for each wallet
  • Extendable platform for exploring Lightning network functionality via the LNbits extension framework
  • Part of a development stack via LNbits API
  • Fallback wallet for the LNURL scheme
  • Instant wallet for LN demonstrations

LNbits can run on top of any Lightning funding source. It supports LND, CLN, Eclair, Spark, LNpay, OpenNode, LightningTipBot, and with more being added regularly.

See LNbits Wiki for more detailed documentation.

Checkout the LNbits YouTube video series.

LNbits is inspired by all the great work of opennode.com, and in particular lnpay.co. Both work as funding sources for LNbits.

Running LNbits

See the install guide for details on installation and setup.

LNbits as an account system

LNbits is packaged with tools to help manage funds, such as a table of transactions, line chart of spending, export to csv + more to come..

Lightning network wallet

Each wallet also comes with its own API keys, to help partition the exposure of your funding source.

(LNbits M5StackSats available here https://github.com/arcbtc/M5StackSats)

lnurl ATM

LNbits as an LNURL-withdraw fallback

LNURL has a fallback scheme, so if scanned by a regular QR code reader it can default to a URL. LNbits exploits this to generate an instant wallet using the LNURL-withdraw.

lnurl fallback

Using lnbits.com/?lightning="LNURL-withdraw" will trigger a withdraw that builds an LNbits wallet. Example use would be an ATM, which utilises LNURL, if the user scans the QR with a regular QR code scanner app, they will still be able to access the funds.

lnurl ATM

LNbits as an instant wallet

Wallets can be easily generated and given out to people at events. "Go to this website", has a lot less friction than "Download this app".

lnurl ATM

Tip us

If you like this project send some tip love!

About

LNbits, free and open-source Lightning wallet and accounts system.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

LNbits

license-badgedocs-badge

Lightning network wallet

LNbits v0.10 BETA, free and open-source Lightning wallet accounts system

(Join us on https://t.me/lnbits)

LNbits is beta, for responsible disclosure of any concerns please contact lnbits@pm.me

Use legend.lnbits.com, or run your own LNbits server!

LNbits is a Python server that sits on top of any funding source. It can be used as:

  • Accounts system to mitigate the risk of exposing applications to your full balance via unique API keys for each wallet
  • Extendable platform for exploring Lightning network functionality via the LNbits extension framework
  • Part of a development stack via LNbits API
  • Fallback wallet for the LNURL scheme
  • Instant wallet for LN demonstrations

LNbits can run on top of any Lightning funding source. It supports LND, CLN, Eclair, Spark, LNpay, OpenNode, LightningTipBot, and with more being added regularly.

See LNbits Wiki for more detailed documentation.

Checkout the LNbits YouTube video series.

LNbits is inspired by all the great work of opennode.com, and in particular lnpay.co. Both work as funding sources for LNbits.

Running LNbits

See the install guide for details on installation and setup.

LNbits as an account system

LNbits is packaged with tools to help manage funds, such as a table of transactions, line chart of spending, export to csv + more to come..

Lightning network wallet

Each wallet also comes with its own API keys, to help partition the exposure of your funding source.

(LNbits M5StackSats available here https://github.com/arcbtc/M5StackSats)

lnurl ATM

LNbits as an LNURL-withdraw fallback

LNURL has a fallback scheme, so if scanned by a regular QR code reader it can default to a URL. LNbits exploits this to generate an instant wallet using the LNURL-withdraw.

lnurl fallback

Using lnbits.com/?lightning="LNURL-withdraw" will trigger a withdraw that builds an LNbits wallet. Example use would be an ATM, which utilises LNURL, if the user scans the QR with a regular QR code scanner app, they will still be able to access the funds.

lnurl ATM

LNbits as an instant wallet

Wallets can be easily generated and given out to people at events. "Go to this website", has a lot less friction than "Download this app".

lnurl ATM

Tip us

If you like this project send some tip love!

About

LNbits, free and open-source Lightning wallet and accounts system.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

LNbits

license-badgedocs-badge

Lightning network wallet

LNbits v0.10 BETA, free and open-source Lightning wallet accounts system

(Join us on https://t.me/lnbits)

LNbits is beta, for responsible disclosure of any concerns please contact lnbits@pm.me

Use legend.lnbits.com, or run your own LNbits server!

LNbits is a Python server that sits on top of any funding source. It can be used as:

  • Accounts system to mitigate the risk of exposing applications to your full balance via unique API keys for each wallet
  • Extendable platform for exploring Lightning network functionality via the LNbits extension framework
  • Part of a development stack via LNbits API
  • Fallback wallet for the LNURL scheme
  • Instant wallet for LN demonstrations

LNbits can run on top of any Lightning funding source. It supports LND, CLN, Eclair, Spark, LNpay, OpenNode, LightningTipBot, and with more being added regularly.

See LNbits Wiki for more detailed documentation.

Checkout the LNbits YouTube video series.

LNbits is inspired by all the great work of opennode.com, and in particular lnpay.co. Both work as funding sources for LNbits.

Running LNbits

See the install guide for details on installation and setup.

LNbits as an account system

LNbits is packaged with tools to help manage funds, such as a table of transactions, line chart of spending, export to csv + more to come..

Lightning network wallet

Each wallet also comes with its own API keys, to help partition the exposure of your funding source.

(LNbits M5StackSats available here https://github.com/arcbtc/M5StackSats)

lnurl ATM

LNbits as an LNURL-withdraw fallback

LNURL has a fallback scheme, so if scanned by a regular QR code reader it can default to a URL. LNbits exploits this to generate an instant wallet using the LNURL-withdraw.

lnurl fallback

Using lnbits.com/?lightning="LNURL-withdraw" will trigger a withdraw that builds an LNbits wallet. Example use would be an ATM, which utilises LNURL, if the user scans the QR with a regular QR code scanner app, they will still be able to access the funds.

lnurl ATM

LNbits as an instant wallet

Wallets can be easily generated and given out to people at events. "Go to this website", has a lot less friction than "Download this app".

lnurl ATM

Tip us

If you like this project send some tip love!

About

LNbits, free and open-source Lightning wallet and accounts system.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

LNbits

license-badgedocs-badge

Lightning network wallet

LNbits v0.10 BETA, free and open-source Lightning wallet accounts system

(Join us on https://t.me/lnbits)

LNbits is beta, for responsible disclosure of any concerns please contact lnbits@pm.me

Use legend.lnbits.com, or run your own LNbits server!

LNbits is a Python server that sits on top of any funding source. It can be used as:

  • Accounts system to mitigate the risk of exposing applications to your full balance via unique API keys for each wallet
  • Extendable platform for exploring Lightning network functionality via the LNbits extension framework
  • Part of a development stack via LNbits API
  • Fallback wallet for the LNURL scheme
  • Instant wallet for LN demonstrations

LNbits can run on top of any Lightning funding source. It supports LND, CLN, Eclair, Spark, LNpay, OpenNode, LightningTipBot, and with more being added regularly.

See LNbits Wiki for more detailed documentation.

Checkout the LNbits YouTube video series.

LNbits is inspired by all the great work of opennode.com, and in particular lnpay.co. Both work as funding sources for LNbits.

Running LNbits

See the install guide for details on installation and setup.

LNbits as an account system

LNbits is packaged with tools to help manage funds, such as a table of transactions, line chart of spending, export to csv + more to come..

Lightning network wallet

Each wallet also comes with its own API keys, to help partition the exposure of your funding source.

(LNbits M5StackSats available here https://github.com/arcbtc/M5StackSats)

lnurl ATM

LNbits as an LNURL-withdraw fallback

LNURL has a fallback scheme, so if scanned by a regular QR code reader it can default to a URL. LNbits exploits this to generate an instant wallet using the LNURL-withdraw.

lnurl fallback

Using lnbits.com/?lightning="LNURL-withdraw" will trigger a withdraw that builds an LNbits wallet. Example use would be an ATM, which utilises LNURL, if the user scans the QR with a regular QR code scanner app, they will still be able to access the funds.

lnurl ATM

LNbits as an instant wallet

Wallets can be easily generated and given out to people at events. "Go to this website", has a lot less friction than "Download this app".

lnurl ATM

Tip us

If you like this project send some tip love!

About

LNbits, free and open-source Lightning wallet and accounts system.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

LNbits

license-badgedocs-badge

Lightning network wallet

LNbits v0.10 BETA, free and open-source Lightning wallet accounts system

(Join us on https://t.me/lnbits)

LNbits is beta, for responsible disclosure of any concerns please contact lnbits@pm.me

Use legend.lnbits.com, or run your own LNbits server!

LNbits is a Python server that sits on top of any funding source. It can be used as:

  • Accounts system to mitigate the risk of exposing applications to your full balance via unique API keys for each wallet
  • Extendable platform for exploring Lightning network functionality via the LNbits extension framework
  • Part of a development stack via LNbits API
  • Fallback wallet for the LNURL scheme
  • Instant wallet for LN demonstrations

LNbits can run on top of any Lightning funding source. It supports LND, CLN, Eclair, Spark, LNpay, OpenNode, LightningTipBot, and with more being added regularly.

See LNbits Wiki for more detailed documentation.

Checkout the LNbits YouTube video series.

LNbits is inspired by all the great work of opennode.com, and in particular lnpay.co. Both work as funding sources for LNbits.

Running LNbits

See the install guide for details on installation and setup.

LNbits as an account system

LNbits is packaged with tools to help manage funds, such as a table of transactions, line chart of spending, export to csv + more to come..

Lightning network wallet

Each wallet also comes with its own API keys, to help partition the exposure of your funding source.

(LNbits M5StackSats available here https://github.com/arcbtc/M5StackSats)

lnurl ATM

LNbits as an LNURL-withdraw fallback

LNURL has a fallback scheme, so if scanned by a regular QR code reader it can default to a URL. LNbits exploits this to generate an instant wallet using the LNURL-withdraw.

lnurl fallback

Using lnbits.com/?lightning="LNURL-withdraw" will trigger a withdraw that builds an LNbits wallet. Example use would be an ATM, which utilises LNURL, if the user scans the QR with a regular QR code scanner app, they will still be able to access the funds.

lnurl ATM

LNbits as an instant wallet

Wallets can be easily generated and given out to people at events. "Go to this website", has a lot less friction than "Download this app".

lnurl ATM

Tip us

If you like this project send some tip love!

About

LNbits, free and open-source Lightning wallet and accounts system.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

LNbits

license-badgedocs-badge

Lightning network wallet

LNbits v0.10 BETA, free and open-source Lightning wallet accounts system

(Join us on https://t.me/lnbits)

LNbits is beta, for responsible disclosure of any concerns please contact lnbits@pm.me

Use legend.lnbits.com, or run your own LNbits server!

LNbits is a Python server that sits on top of any funding source. It can be used as:

  • Accounts system to mitigate the risk of exposing applications to your full balance via unique API keys for each wallet
  • Extendable platform for exploring Lightning network functionality via the LNbits extension framework
  • Part of a development stack via LNbits API
  • Fallback wallet for the LNURL scheme
  • Instant wallet for LN demonstrations

LNbits can run on top of any Lightning funding source. It supports LND, CLN, Eclair, Spark, LNpay, OpenNode, LightningTipBot, and with more being added regularly.

See LNbits Wiki for more detailed documentation.

Checkout the LNbits YouTube video series.

LNbits is inspired by all the great work of opennode.com, and in particular lnpay.co. Both work as funding sources for LNbits.

Running LNbits

See the install guide for details on installation and setup.

LNbits as an account system

LNbits is packaged with tools to help manage funds, such as a table of transactions, line chart of spending, export to csv + more to come..

Lightning network wallet

Each wallet also comes with its own API keys, to help partition the exposure of your funding source.

(LNbits M5StackSats available here https://github.com/arcbtc/M5StackSats)

lnurl ATM

LNbits as an LNURL-withdraw fallback

LNURL has a fallback scheme, so if scanned by a regular QR code reader it can default to a URL. LNbits exploits this to generate an instant wallet using the LNURL-withdraw.

lnurl fallback

Using lnbits.com/?lightning="LNURL-withdraw" will trigger a withdraw that builds an LNbits wallet. Example use would be an ATM, which utilises LNURL, if the user scans the QR with a regular QR code scanner app, they will still be able to access the funds.

lnurl ATM

LNbits as an instant wallet

Wallets can be easily generated and given out to people at events. "Go to this website", has a lot less friction than "Download this app".

lnurl ATM

Tip us

If you like this project send some tip love!

About

LNbits, free and open-source Lightning wallet and accounts system.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

LNbits

license-badgedocs-badge

Lightning network wallet

LNbits v0.10 BETA, free and open-source Lightning wallet accounts system

(Join us on https://t.me/lnbits)

LNbits is beta, for responsible disclosure of any concerns please contact lnbits@pm.me

Use legend.lnbits.com, or run your own LNbits server!

LNbits is a Python server that sits on top of any funding source. It can be used as:

  • Accounts system to mitigate the risk of exposing applications to your full balance via unique API keys for each wallet
  • Extendable platform for exploring Lightning network functionality via the LNbits extension framework
  • Part of a development stack via LNbits API
  • Fallback wallet for the LNURL scheme
  • Instant wallet for LN demonstrations

LNbits can run on top of any Lightning funding source. It supports LND, CLN, Eclair, Spark, LNpay, OpenNode, LightningTipBot, and with more being added regularly.

See LNbits Wiki for more detailed documentation.

Checkout the LNbits YouTube video series.

LNbits is inspired by all the great work of opennode.com, and in particular lnpay.co. Both work as funding sources for LNbits.

Running LNbits

See the install guide for details on installation and setup.

LNbits as an account system

LNbits is packaged with tools to help manage funds, such as a table of transactions, line chart of spending, export to csv + more to come..

Lightning network wallet

Each wallet also comes with its own API keys, to help partition the exposure of your funding source.

(LNbits M5StackSats available here https://github.com/arcbtc/M5StackSats)

lnurl ATM

LNbits as an LNURL-withdraw fallback

LNURL has a fallback scheme, so if scanned by a regular QR code reader it can default to a URL. LNbits exploits this to generate an instant wallet using the LNURL-withdraw.

lnurl fallback

Using lnbits.com/?lightning="LNURL-withdraw" will trigger a withdraw that builds an LNbits wallet. Example use would be an ATM, which utilises LNURL, if the user scans the QR with a regular QR code scanner app, they will still be able to access the funds.

lnurl ATM

LNbits as an instant wallet

Wallets can be easily generated and given out to people at events. "Go to this website", has a lot less friction than "Download this app".

lnurl ATM

Tip us

If you like this project send some tip love!

About

LNbits, free and open-source Lightning wallet and accounts system.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

LNbits

license-badgedocs-badge

Lightning network wallet

LNbits v0.10 BETA, free and open-source Lightning wallet accounts system

(Join us on https://t.me/lnbits)

LNbits is beta, for responsible disclosure of any concerns please contact lnbits@pm.me

Use legend.lnbits.com, or run your own LNbits server!

LNbits is a Python server that sits on top of any funding source. It can be used as:

  • Accounts system to mitigate the risk of exposing applications to your full balance via unique API keys for each wallet
  • Extendable platform for exploring Lightning network functionality via the LNbits extension framework
  • Part of a development stack via LNbits API
  • Fallback wallet for the LNURL scheme
  • Instant wallet for LN demonstrations

LNbits can run on top of any Lightning funding source. It supports LND, CLN, Eclair, Spark, LNpay, OpenNode, LightningTipBot, and with more being added regularly.

See LNbits Wiki for more detailed documentation.

Checkout the LNbits YouTube video series.

LNbits is inspired by all the great work of opennode.com, and in particular lnpay.co. Both work as funding sources for LNbits.

Running LNbits

See the install guide for details on installation and setup.

LNbits as an account system

LNbits is packaged with tools to help manage funds, such as a table of transactions, line chart of spending, export to csv + more to come..

Lightning network wallet

Each wallet also comes with its own API keys, to help partition the exposure of your funding source.

(LNbits M5StackSats available here https://github.com/arcbtc/M5StackSats)

lnurl ATM

LNbits as an LNURL-withdraw fallback

LNURL has a fallback scheme, so if scanned by a regular QR code reader it can default to a URL. LNbits exploits this to generate an instant wallet using the LNURL-withdraw.

lnurl fallback

Using lnbits.com/?lightning="LNURL-withdraw" will trigger a withdraw that builds an LNbits wallet. Example use would be an ATM, which utilises LNURL, if the user scans the QR with a regular QR code scanner app, they will still be able to access the funds.

lnurl ATM

LNbits as an instant wallet

Wallets can be easily generated and given out to people at events. "Go to this website", has a lot less friction than "Download this app".

lnurl ATM

Tip us

If you like this project send some tip love!

About

LNbits, free and open-source Lightning wallet and accounts system.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages