{"_id":"@bringinxyz/lnurl-pay","_rev":"2-fc42e7c4300fe05b9ed73338db9ce9ef","name":"@bringinxyz/lnurl-pay","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@bringinxyz/lnurl-pay","version":"1.0.0","keywords":["lnurl","lightning","bitcoin","bringin","pos","micropayments","lnurl-pay","satoshis","micro-transactions","lightning-network"],"author":{"name":"Bringin","email":"pc@bringin.xyz"},"license":"MIT","_id":"@bringinxyz/lnurl-pay@1.0.0","maintainers":[{"name":"bringin","email":"pc@bringin.xyz"}],"homepage":"https://bringin.xyz","bugs":{"url":"https://github.com/bringinxyz/lnurl-pay/issues"},"dist":{"shasum":"980230df96340ae33ea0e35b545eeda54c1510ae","tarball":"https://registry.npmjs.org/@bringinxyz/lnurl-pay/-/lnurl-pay-1.0.0.tgz","fileCount":10,"integrity":"sha512-y0uWqzdjW93T/4RwVIwQRprQbux1OOgKSGLj4qFafqQ+gN5RS8PQ7yp9PE1ExqgWsPaFiZxvUIN4N2/1yXU+9A==","signatures":[{"sig":"MEYCIQCf6iJDWCi54ZoZUTpaCsxJoTE9KV9HNgN/8JTTgd6GowIhALRf/jJeG7nnq81cbq5kPTDtyzI2+xyRJi2m+ZnV2SMG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":44978},"main":"index.js","types":"index.d.ts","engines":{"node":">=14.0.0"},"gitHead":"ade01c45bb35e058a74e419f49abf0f994f06331","scripts":{"test":"node test/integration.test.js","prepublish":"npm test","example:pos":"node examples/pos-mode.js","example:basic":"node examples/basic-usage.js","example:comparison":"node examples/comparison.js"},"_npmUser":{"name":"bringin","email":"pc@bringin.xyz"},"repository":{"url":"git+https://github.com/bringinxyz/lnurl-pay.git","type":"git"},"_npmVersion":"10.9.2","description":"Enhanced LNURL Pay with Bringin POS mode support for Lightning micro-payments (20+ sats vs 22k+ sats)","directories":{},"_nodeVersion":"23.9.0","dependencies":{"lnurl-pay":"^4.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"axios":"^1.6.0"},"peerDependenciesMeta":{"axios":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/lnurl-pay_1.0.0_1753246767644_0.8594611839265072","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2025-07-23T04:59:27.539Z","modified":"2025-07-23T06:16:59.630Z","1.0.0":"2025-07-23T04:59:27.822Z"},"bugs":{"url":"https://github.com/bringinxyz/lnurl-pay/issues"},"author":{"name":"Bringin","email":"pc@bringin.xyz"},"license":"MIT","homepage":"https://bringin.xyz","keywords":["lnurl","lightning","bitcoin","bringin","pos","micropayments","lnurl-pay","satoshis","micro-transactions","lightning-network"],"repository":{"url":"git+https://github.com/bringinxyz/lnurl-pay.git","type":"git"},"description":"Enhanced LNURL Pay with Bringin POS mode support for Lightning micro-payments (20+ sats vs 22k+ sats)","maintainers":[{"email":"aaa.software.dev@gmail.com","name":"anipy"},{"email":"pc@bringin.xyz","name":"bringin"}],"readme":"# @bringinxyz/lnurl-pay\n\nEnhanced LNURL Pay with Bringin POS mode support for Lightning micro-payments\n\n[![npm version](https://badge.fury.io/js/%40bringinxyz%2Flnurl-pay.svg)](https://www.npmjs.com/package/@bringinxyz/lnurl-pay)\n[![Downloads](https://img.shields.io/npm/dm/@bringinxyz/lnurl-pay.svg)](https://www.npmjs.com/package/@bringinxyz/lnurl-pay)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n> **Official Bringin library for Lightning Network micro-payments**\n\n## ⚡ Micro-Payments Enabled!\n\n| Mode | Minimum Payment | Use Case |\n|------|----------------|----------|\n| **Standard** | 22,000+ sats (~$6-10) | Manual wallet payments |\n| **POS Mode** | 20+ sats (~$0.01) | Micro-transactions, tips, small purchases |\n\n**21,980 sats reduction = 99.9% lower minimums!**\n\n### Quick Start\n\n```javascript\nconst lnurlPay = require('@bringinxyz/lnurl-pay');\n\n// ❌ This would fail with standard mode (below 22k sats minimum)\n// ✅ This works with POS mode!\nconst microPayment = await lnurlPay.requestInvoice({\n  lnUrlOrAddress: 'merchant@bringin.xyz',\n  tokens: 100,        // Just 100 sats! \n  posMode: true,      // Enable micro-payments\n  comment: 'Coffee tip'\n});\n\nconsole.log('Micro-payment invoice:', microPayment.invoice);\n```\n\n## 🚀 Features\n\n- **Drop-in Compatibility**: Works exactly like `lnurl-pay` - no code changes needed\n- **Micro-Payment Support**: Enable payments as low as 20 sats vs 22,000+ sats\n- **Smart HTTP Client**: Auto-detects fetch vs axios for optimal performance\n- **TypeScript Support**: Full type definitions included\n- **Production Ready**: Comprehensive error handling and validation\n- **Real-World Tested**: Successfully tested with live Bringin endpoints\n\n## 📦 Installation\n\n```bash\n# For Node 18+ (built-in fetch)\nnpm install @bringinxyz/lnurl-pay\n\n# For older Node versions\nnpm install @bringinxyz/lnurl-pay axios\n```\n\n## 🔄 Migration from lnurl-pay\n\nMigrating from `lnurl-pay` to `@bringinxyz/lnurl-pay` is seamless:\n\n### Before (lnurl-pay)\n```javascript\nconst lnurlPay = require('lnurl-pay');\n\nconst invoice = await lnurlPay.requestInvoice({\n  lnUrlOrAddress: 'merchant@bringin.xyz',\n  tokens: 25000\n});\n```\n\n### After (@bringinxyz/lnurl-pay)\n```javascript\nconst lnurlPay = require('@bringinxyz/lnurl-pay');\n\n// Same code works + new POS mode capability!\nconst invoice = await lnurlPay.requestInvoice({\n  lnUrlOrAddress: 'merchant@bringin.xyz',\n  tokens: 100,        // Now possible with posMode!\n  posMode: true       // NEW: Enable micro-payments\n});\n```\n\n**That's it!** Just change the require statement and optionally add `posMode: true` for micro-payments.\n\n## 📖 Usage Examples\n\n### Basic Usage (Drop-in Replacement)\n\n```javascript\nconst lnurlPay = require('@bringinxyz/lnurl-pay');\n\n// Standard usage - exactly same as lnurl-pay\nconst invoice = await lnurlPay.requestInvoice({\n  lnUrlOrAddress: 'merchant@bringin.xyz',\n  tokens: 25000\n});\n\nconsole.log('Works exactly like lnurl-pay:', invoice.invoice);\n```\n\n### Micro-Payments with POS Mode\n\n```javascript\n// Micro-payment that would be impossible with standard mode\nconst microInvoice = await lnurlPay.requestInvoice({\n  lnUrlOrAddress: 'merchant@bringin.xyz',\n  tokens: 50,         // 50 sats vs 22,000 sats minimum!\n  posMode: true,      // This makes it possible\n  comment: 'Small tip'\n});\n\nconsole.log('Micro-payment invoice:', microInvoice.invoice);\n```\n\n### Side-by-Side Comparison\n\n```javascript\n// Get standard mode parameters\nconst standard = await lnurlPay.requestPayServiceParams({\n  lnUrlOrAddress: 'merchant@bringin.xyz',\n  posMode: false\n});\n\n// Get POS mode parameters  \nconst pos = await lnurlPay.requestPayServiceParams({\n  lnUrlOrAddress: 'merchant@bringin.xyz',\n  posMode: true\n});\n\nconsole.log('Standard minimum:', standard.min, 'sats');\nconsole.log('POS minimum:', pos.min, 'sats');\nconsole.log('Reduction:', standard.min - pos.min, 'sats');\nconsole.log('Percentage improvement:', \n  ((standard.min - pos.min) / standard.min * 100).toFixed(1) + '%');\n```\n\n### Two-Step Process\n\n```javascript\n// Step 1: Get service parameters\nconst params = await lnurlPay.requestPayServiceParams({\n  lnUrlOrAddress: 'merchant@bringin.xyz',\n  posMode: true\n});\n\n// Step 2: Request invoice using the parameters\nconst invoice = await lnurlPay.requestInvoiceWithServiceParams({\n  params: params,\n  tokens: 75\n});\n```\n\n## 🧪 Testing\n\nRun the comprehensive test suite:\n\n```bash\n# Run integration tests\nnpm test\n\n# Run examples\nnpm run example:basic\nnpm run example:pos\nnpm run example:comparison\n```\n\n## 📚 API Documentation\n\nSee [docs/API.md](docs/API.md) for complete API documentation including:\n\n- Full function reference\n- Data types and interfaces\n- Error handling guide\n- Best practices\n- Migration examples\n\n## 🔧 Configuration\n\n### HTTP Client Selection\n\nThe library automatically chooses the best HTTP client:\n\n- **Node.js 18+**: Uses built-in `fetch` API\n- **Node.js 14-17**: Uses `axios` (if installed)\n- **Browser**: Uses built-in `fetch` API\n\n### Timeout Configuration\n\n```javascript\nconst invoice = await lnurlPay.requestInvoice({\n  lnUrlOrAddress: 'merchant@bringin.xyz',\n  tokens: 100,\n  posMode: true,\n  timeout: 15000  // 15 second timeout\n});\n```\n\n## 🛡️ Error Handling\n\nThe library provides clear, actionable error messages:\n\n```javascript\ntry {\n  const invoice = await lnurlPay.requestInvoice({\n    lnUrlOrAddress: 'merchant@bringin.xyz',\n    tokens: 10,\n    posMode: true\n  });\n} catch (error) {\n  if (error.message.includes('Amount too small')) {\n    console.log('Amount is below minimum');\n  } else if (error.message.includes('Invalid Lightning address')) {\n    console.log('Invalid address format');\n  } else {\n    console.log('Network or service error:', error.message);\n  }\n}\n```\n\n## 🌟 Key Benefits\n\n### For Developers\n- **Zero Migration Cost**: Existing `lnurl-pay` code works unchanged\n- **Enhanced Capabilities**: Add micro-payment support with one parameter\n- **TypeScript Ready**: Full type definitions for better development experience\n- **Production Quality**: Comprehensive error handling and validation\n\n### For Users\n- **Micro-Payments**: Pay as little as 20 sats instead of 22,000+ sats\n- **Lower Barriers**: Enable tips, small purchases, and micro-transactions\n- **Same Experience**: Works with existing Lightning wallets and apps\n\n### For Merchants\n- **New Revenue Streams**: Accept micro-payments for digital content\n- **Better UX**: No minimum payment barriers for small purchases\n- **Lightning Fast**: Instant settlement for micro-transactions\n\n## 🏢 Professional Branding\n\nAs an official Bringin package, `@bringinxyz/lnurl-pay` provides:\n\n- **Guaranteed Quality**: Official Bringin development standards\n- **Long-term Support**: Backed by the Bringin team\n- **Package Discovery**: Easy to find under `@bringinxyz` namespace\n- **Trust Factor**: Users know it's the official Bringin package\n- **Future Growth**: Part of the Bringin ecosystem\n\n## 🤝 Contributing\n\nWe welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## 🆘 Support\n\n- **GitHub Issues**: https://github.com/bringinxyz/lnurl-pay/issues\n- **Documentation**: https://github.com/bringinxyz/lnurl-pay#readme\n- **NPM Package**: https://www.npmjs.com/package/@bringinxyz/lnurl-pay\n- **Company Website**: https://bringin.xyz\n\n## 🙏 Acknowledgments\n\n- Built on top of the excellent `lnurl-pay` library\n- Powered by Bringin's POS mode technology\n- Community feedback and testing\n\n---\n\n**Ready to enable micro-payments?** Install `@bringinxyz/lnurl-pay` today and unlock 99.9% lower minimum payments! ⚡\n","readmeFilename":"README.md"}