[
{
"type": "text",
"value": "Today is demo day at soveng! Recklessly introducing Nutoff: a local Cashu wallet with a twist. It can be used via the command line or remotely through ContextVM. This allows users to interact with their local wallet remotely. Some methods are publicly accessible, such as 'make_invoice,' so anyone can generate invoices to pay you, while others, like 'pay_invoice,' are restricted to approved pubkeys, allowing only you or authorized users to spend from the wallet.\n\nNutoff also includes a web server component that translates between the local Cashu wallet and the LNURL (LUD06/LUD16) specification, enabling email-like Lightning addresses. This service runs publicly and proxies requests between Lightning wallets and the local Cashu wallet without handling funds directly. It is intended to be a public service run by a service provider, a community, or similar.\n\nThe idea that inspired this project is npub.cash, which is a great service that allows anyone to have a Cashu wallet without hassle. The difference between npub.cash and Nutoff is that npub.cash stores nuts in a database run by the service, while with Nutoff, the database runs locally. This improves the security model, but the drawback is that you need to run the wallet on one of your devices, such as a computer running Umbrel or Start9, a phone, a rpi, etc. This security model ensures that the wallet remains local, with all critical data stored on the user's device.\n\nKey use cases include:\n\n1. **Automatic Wallet**: Runs locally on a device, enabling payments without the need for accounts or data custody.\n2. **Spontaneous POS**: Can start receiving payments immediately, ideal for merchants in flea markets.\n3. **Community LNURL Server**: Provides Lightning addresses for a community, family, or friends using a custom domain.\n4. **Custom Applications**: Limited only by imagination.\n\nNutoff offers a flexible, secure, and local solution for managing Cashu wallets with various deployment options.\n\nWallet: "
},
{
"type": "link",
"href": "
https://github.com/gzuuus/nutoff-wallet",
"value": "
https://github.com/gzuuus/nutoff-wallet",
"data": {
"eol": true
}
},
{
"type": "text",
"value": "\nLNURL proxy: "
},
{
"type": "link",
"href": "
https://github.com/gzuuus/nutoff-http",
"value": "
https://github.com/gzuuus/nutoff-http",
"data": {
"eol": true
}
},
{
"type": "text",
"value": "\n\nCC "
},
{
"type": "mention",
"decoded": {
"type": "nprofile",
"data": {
"pubkey": "50d94fc2d8580c682b071a542f8b1e31a200b0508bab95a33bef0855df281d63",
"relays": [
"wss://eden.nostr.land/",
"wss://hist.nostr.land/"
]
}
},
"encoded": "nprofile1qqs9pk20ctv9srrg9vr354p03v0rrgsqkpggh2u45va77zz4mu5p6ccpzemhxue69uhk2er9dchxummnw3ezumrpdejz7qgkwaehxw309a5xjum59ehx7um5wghxcctwvshsfmrzrk"
},
{
"type": "text",
"value": " "
},
{
"type": "mention",
"decoded": {
"type": "nprofile",
"data": {
"pubkey": "ddf03aca85ade039e6742d5bef3df352df199d0d31e22b9858e7eda85cb3bbbe",
"relays": [
"wss://nos.lol",
"wss://nostr-pub.wellorder.net"
]
}
},
"encoded": "nprofile1qqsdmup6e2z6mcpeue6z6kl08he49hcen5xnrc3tnpvw0mdgtjemh0spp4mhxue69uhkummn9ekx7mqpr4mhxue69uhkummnw3ez6ur4vgh8wetvd3hhyer9wghxuet5cq87e5"
},
{
"type": "text",
"value": " \n\n",
"data": {
"eol": true
}
}
]