To be honest, self hosted Alby is non-custodial setup with all the pros / cons.

I am full pro self custody, but for small amounts and frequent small payments like zaps it currently makes not good trade off.

That's where ecash, once polished, could provide balanced service.

Minibits improving but still in dev. Do not use with more sats etc...

In any case, thanks for your endorsment!


This looks like connection issue. Could you try to switch to another one (like from wifi to data)?


I think lnurl spec for lightning addresses states that redirects are not to be supported.

@MinibitsCash nosyr addresses are then intended for payments only, nostr identity serves to send ecash over encrypted nostr messages as an alternative to lightning.


Please for sure grab today's update. It should solve some issues related to zaps as well. Otoh, if possible specify what poor perf means in your case.


Yeah, the way NWC works on Minibits is that your device where the ecash resides is wake up in the background to pay for a zap you've just tapped.

So it takes few secs on top that are not there in case of fully custodial server-side wallets. Still cool that it kinda works!


You've apparently received from a mint that supports different units.


Millisats cash


Hi! This is generic error, to know the real cause, go into the related transaction detail in the wallet directly, then expand the audit trail. You can dm me a copy to look at.


One can not hide anything on #nostr 😅


Hotfix is now installed on Minibits mint. Disabled melting error should be gone.
Thanks nostr:nprofile1qqs9pk20ctv9srrg9vr354p03v0rrgsqkpggh2u45va77zz4mu5p6ccpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsz9thwden5te0dehhxarj9ehhsarj9ejx2a30qyg8wumn8ghj7mn0wd68ytnddakj7xph5zr

nostr:nevent1qqsx5lkf5aq8gw4udq9tgfwmgcqvmlz0nscfs8m5zxnleasl7jvqrasppemhxue69uhkummn9ekx7mp0qgs9pk20ctv9srrg9vr354p03v0rrgsqkpggh2u45va77zz4mu5p6ccrqsqqqqqplv9nc5


Annoying, sorry for that. See related public note. Thanks for reporting.


Minibits mint might show "Melt is disabled" error and fails to send payments over lightning.

Issue is caused by new (perhaps too defensive) protective feaure of mint sofware intended to prevent loss of funds.

Happened third time over 3 days, will be solved by a hotfix, ETA not yet known. Until then I've setup an alert and will restart the mint as necessary.

Sorry for all inconvenience, ecash too much safu.


Yes, github.com/minibits-cash/minibits_wallet


On chain support for minting / melting is already baked-in to the cashu protocol, but afaik mint software is not ready for that. Once ready, I'll put the support on the roadmap.

Ou of curiosity, what is your usecase when onchain beats lightning for ecash backing?


How to onboard when time is as scarce as bitcoin. Amazing story.

nostr:nevent1qqs0grm2pyr79ss09zrs0c6a7v7qjr9ve9fwxgvez3cq7paafw9feucpzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtczyrpl7uezu6sjd3yldjyxldvcfemhwr3qaffve9fxkkwwcqq6vhh8uqcyqqqqqqgp357ta


Around 1.5 hour. We are back now.


Lightning/melting ecash should be back and working. Seems like a newest mint version failsafe kicked on, turning off the lightning to defend the mint. Investigating the exact reason.


We should be back with lightning melts working.


Hm that's something related to the recent nuttshell mint upgrade. Will need to discuss.


Recovery > Increase recovery indexes


Check the error detail in related transaction audit trail in the wallet.


You're right that a race condition could lead to the same or similar other issues.

Your original 100sats were represented by ^2 set of proofs (ecash notes) at the beginning - 64,32,4. To get 1sat, (let's ignore fee reserve for simplicity) wallet takes 64 proof and swaps it with the mint for 32,16,8,1,1 and uses 1sat proof to settle payment.
For lightning fee reserve, mint retutns unused fees as a fresh ecash back to wallet.

So plenty room to race inside the wallet state or get out of sync with the mint in case of parallel/async processes.

Minibits internally uses synchronous queue for all ecash ops to prevent that + locks during network requests (so it can e.g. recover back sent ecash when mint response won't come at all).

Even technically prevented, I still might have some logical issue leading to race condition but was not so far able to pin it. As it happens much more often with nwc, background procesessing is suspicious to me as well.

Will repeat your exact 20x1sat zaps test case on dev device.


Wallet issue than. Head to recovery and press Remove spent ecash. It will fix it.

Will need to simulate the issue, for now seems like final cleaning at the end of tx does not complete, preventing further transactions. Lastly tried 10 zaps with killed app in real hurry but dev env / device seem resilient and they all passed along trace-level logging.

Need to try harder.


Regarding the round trip duration: Minibits can't fully match the latencies of custodial / server side wallets.

When you zap someone with nwc, published event with encrypted command is read by the server but then encrypted again with server key and routed through remote data push message to target device with Minibits wallet.

After wakeup, Minibits asks mint for a mint quote, might need an ecash swap with the mint to prepare the ecash and forwards it to the mint.

The mint settles an invoice, it is then still upon receiver to figure that out and to publish the receipt.

I would say, one should not expect that to match custodial lightning wallet latency.


Vitor, if you zapped from Minibits, check the error detail on the related transaction screen.

Failures are either network, lightning or wallet state itself. Expand the audit trail params to find out.

e.g. I have reports (could not yet simulate on dev device) that transaction did not fully complete in case user fired many zaps at once. Seems like android might supress too heavy background processing - resulting in incorrect wallet state that breaks further zaps until cleared.


Check the linked github issue, error is copied there. In that case it was likely the error shown (and prettified) by nostr client that could not initiate zap sequence.


Minibits and Coinos have direct lightning channel with plenty of liquidity. From github issue it sounds like lnurl link returned the actual error, could be some temp issue as the link works for me.


What's up? Feel free to dm if you prefer.


I solved some issues related to hodl-invoices that robosats uses in the past together with another robosats user.

But not sure about overall state, would require to test it.


Have no control over bitcoinmints, but the mint itself works quite ok (for keeping few sats for your zaps or casual lightning needs, not more than you'd regret over a minute)


What is the error in that one? You can dm me the audit trail.


At first check in dev settings that you run the latest beta27 version. If not, update in Update manager.

Then in related transaction detail, you should see the Retry button. Press it to receive.


There is an eNuts group on Telegram. As a quick try, find "Increase recovery indexes" or similar wording setting sonewhere in eNuts and push it hard.


Print a screenshot?


Some folks have just printed paperwallets  out of Minibits.

Did they let their meetup visitors to geo-cache the vouchers for a welcome drink? Could not find the source of the vid to ask. Awesome.

https://video.nostr.build/b6d4e95d253086e957354766cefb9e7c907145e2854596481dd444f0b353c505.mp4


Sorey for troubles, seem like wallet state issue. DM me the audit trail you can copy from the transaction detail screen so we can fix it.


From the screenshot it is visible that there is an error when sending one of the zaps.

If you see related transaxtion with error status in the wallet, dm me audit trail from tx detail screen. If you do not see such transaction, try to send few sats to another lightning address (even to yourself) from inside wallet few times to check if any error appears.


NWC on Minibits uses firebase push messages as a data carrier to pass nwc commands to the device when the app is backgrounded or killed.

Those require google play services to be on device, what is usually not the case on graphene.


Correct mindset. Ecash is still early and mints might fail for many reasons.


V4 tokens are now the default encoding in Minibits. Fallback to legacy V3 tokens is only in case of older ecash issued with non compatible keyset format.


Could you send me the audit trail from the related tx detail into a dm? Thx!


Hi, stumbled upon your note. Sorry for troubles. Sats should not be wiped because of the update, but with the latest native update there were migrations when balances did not recalculate.
You should still see non zero number of your ecash in Backup > Wallet backup.

 If you'd need any further assistance to recover, dm me


Will take some time but we'll try to get there


How about to create two different ones in Minibits and try out?


Thanks to a great nostr:nprofile1qqsvfdfkn2wmy73wr0yhkf065jrzm8705ar4q6clyuhc7jekhqfdh4spypmhxue69uhkummnw3ezuetfde6kuer6wasku7nfvuh8xurpvdjj7qg4waehxw309aex2mrp0yhxgctdw4eju6t09uq3samnwvaz7tmjv4kxz7fwdehhxarjd93kstnyv5hs9565hr bc-ur library was much less painful than I expected.


DM me your minibits wallet address. I'll check if you have push device token registered and send you few sats to make sure notifications are working.


Do you have push notifications working on your device? Requires Google play services installed.

If so, try to send few sats to some lightning address from the wallet to make sure that wallet is basically operational.

If you get some error, dm me transaction detail - audit trail data.


Animated QR codes made it to Minibits wallet! ✨

Good for sharing really big tokens or if your alternative ecash wallet scanner is barely half-blind. 🥸

Grab animated 121 sats now!

https://video.nostr.build/38e76adb571cce77d6441288b3813dd3fdf1abb82b6bfd08cbfa96cfbc99e280.mp4


Which step did not work? We shouldn't give up so quickly no matter the amount.

In any case, there is still the option to recover from seed phrase - in that case wallet with mint's assistance recreates lost ecash.


Please dm me the audit trail from related transaction detail. Thanks!


1. Make sure you run 0.1.9-beta.24 in Developer screen.

2. If restart did not make it, go to Backup > Wallet backup, you should see ecash proofs count.

3. If so copy it somewhere along with seed, do Developer > Factory reset, restart, go to Recovery and paste the backup


Thank you for testing it! There is definitely a room to improve the process.

Will consider to add proofs swap as an option to the backup screen if the number of proofs is above some limit.

Another option is backup to file, but would require more app permissions and dependencies.

Yet thinking of to encrypt the backup to a seed by default so that it is safe to be copied/pasted in transit.

You've executed with a style with what we have now.


This makes perfect sense. As we deal with ecash, I optimized for nostr addresses, so that sending pure ecash works.

But I see that having pure lnaddress contacts should be possible.

Will think of it how to do it without adding too much complexity (I validate contacts against profiles onnostr relays etc...)


Tap "New format" at the bottom for a v4. Should be in avg 30% more efficient.


True, that's why we split the contacts to Private and Public.

Private (default) are wallet addresses you might pay in future. If somebody pays you by sending ecash over nostr, his nostr address is added, or you do that manually (paste, scan, write).

Public are follows by any npub you provide (and honestly, better option to tip them is likely to send a zap from nostr app and pay it from the wallet by deeplink or Nostr wallet connect)


Switch QR to the new v4 format, makes QRs much more readable. It's the default on latest Minibits.


You're right in principle. Ecash lives on device and there is some time needed to reach and process it - it can't compare to full custodial servers.

As well, to see that zap was paid next to the zapped note requires the receiving node to publish so called zap receipt. That takes some more time.


Do you see any error when you try to send to yourself from within the wallet?


Thank you for your suggestions!

Based on early feedback, there is one gotcha:

If you reinstall and enter recovery, you have no chance to get the latest over the air update with the functionality...

Workaround is to not do reinstall but factory reset from developer options - reser keeps the latest version running.


New wallet backup and recovery option in Minibits has just dropped:

You can now export wallet backup that can include ecash, mints, contacts and recent transactions and than import it into another device / after reinstall.

Recovery from seed is sometimes tricky and if you do not deal with outright device loss or full wallet brick, this might become a go-to option how to move Minibits to new device.

Use with few sats only until battle tested. Should bring less headaches for us all then! Released as 0.1.9-beta.18

https://image.nostr.build/e382c0ff996acfbe8f441ba28b7ca5a20206d521a1be2cc0bf825f21c8a611cf.jpg


You mean you linked the same nwc connection string into two Amethyst accounts?

Honestly, do not see the reason on Minibits side why that should be an issue, but not sure how's that from Amethyst perspective.

But you can create multiple NWC connections in #Minibits, so you can try to make different one for each of your nostr profiles and test if zapping will resume to work in both.

Will be glad if you share the result.


Would be a quite change - we are already multi-mint-multi-currency. Doable in fact. What are the use cases you see for this feature?


Get the yesterday's over the air update. There was a bugfix for a recent regression bug that prevented to claim sats coming to lightning address unless wallet restarted. It is now fixed and wallet tries to claim on start, on coming to foreground and then every 60 seconds when actively in use.


Do you see any further wallet error details in transactions?

Lightning node settles every day quite a lot of transactions close to the defined mint limit of 1mio sats without issues.


Last update did a lot of migrations to improve storage reliability. As an unwanted side effect, second restart is sometimes required to recalculate balances.

Minibits ecash lives physically on device, can't be compared to the typical setup of custodial wallets that just connect to super stable server environment.

On mobile devices, nothing is super stable. That's why cashu protocol includes recovery from seed phrase.


Thank you for kind words! Receiving lightning payments does not depend on the wallet state (online or offline) as they are received by the mint's lightning node.

Mint then issues ecash of the same amount that is claimed by the wallet once it becomes online.

There are some optimizations on how often the wallet tries to claim waiting ecash from the mint, but you should get push notification immediately if your device supports them and you can any time force the claim by restarting.


Of that is that, then go to Backup and recovery and press Increase recovery indexes. It will solve the issue.


Please check in the related errored transaction audit trail what was the error detail as stored in error.params.message.

If that's Token already spent, then remove spent ecash tool helps.

I have a bug there that it does not show the result correctly in the modal, but works anyway, will fix that.

If it's something else, dm me the audit trail and we'll sort it out.

I see more cases with spent ecash related to nwc usage. I'm afraid that android might kill the background app nwc process before it fully completes, but this is very difficult to simulate and even device and battery level specific. Will dig into that deeper over time.


Settings > NWC, create connection and copy it. In Amethyst long press zap icon then paste and save.

Requires push notifications to work on your device so that minibits can wake up on incoming encrypted nwc command.


Get to Settings > Backup and Recovery and press Increase recovery indexes. Should be ok then.


Expand params or copy me whole audit trail of such error


Just got your zap, thanks.


Do you see error transactions in the wallet?

Are you sure you have pish notifications enabled and working on your device?

If yes try to zap your own nostr note (with minibits lightning address on your profile) so you can filter out lightning routing errors.


Where do you see Minibits charging a fee? If you pay some, they are for routing the lightning payment.


Fixed just now in the first over the air release for this new version. Just accept an update notified in Settings > Update manager


Minibits is an ecash wallet fully interoperable with lightning. Ecash are digitally signed notes issued by mints, backed by bitcoin in mints lightning channels.

Ecash has few nice properties like low friction onboarding, fast, private and mostly free transactions, working even offline as it is physically stored on device.

Price paid for this is necessary trust to issuing mints that their ecash can be redeemed back for bitcoin on demand.

Minibits wallet adds to that mix lightning addresses and good fit for nostr zaps giving and receiving including nostr wallet connect and more.


Thanks, will check it!


Next year if I manage to get some help.


Now it's more clear. When you try to send to a lightning address directly from the wallet, you should get transaction with error. Go to transaction detail and DM me the audit trail from the bottom of the screen.

I'll then see exact error that we can sort out. After nwc will resume to work as well.


Of course nothing is perfect: due to heavy migrations on first run the upgrade, your wallet might show zero balance after. Please do not panic, ecash safu, just do simple restart and balance will refresh!

In case you forgot: ecash much experimental, keep few sats only, notably before upgrade. Then enjoy seamless zaps and private transactions!


What's under the hood?

Minibits now uses native implementations for cryptographic functions instead of JavaScript. The time to convert mnemonic phrase to seed has been reduced from 8 seconds to less than 100ms, offering a boost in performance when recovering wallet address or funds.

The main wallet screen has been redesigned to include fiat exchange rates and an overview of NWC limits.

Theme support with a brand-new Golden theme
You can now switch themes in the Settings, with the new Golden theme as an option.

Minibits has improved the reliability and performance of local ecash storage, especially for wallets with a large number of ecash notes (thousands). This update ensures a more resilient and efficient experience.


New Minibits is here!

Redesigned wallet screen, fiat rates, improved performance and storage reliability. And new golden theme for true gold bugs - until we'll get gold ecash!

This is a native release so upgrade from Google Play or grab it from our Github.

https://m.primal.net/LJBA.jpg


v4 format is now default in new Minibits release.

To run your owm mint, check cashubtc/nutshell om github.


If it happened after recent native version upgrade, just restart to refresh it, no need to do any recovery. Sorry for troubles, dm me if you need more assistance.

Last upgrade makes heavy storage migrations to improve reliability but brings this issue along - still working on it.


New v4 ecash encoding format is more efficient, so it fits more ecash into standard QR code.

I prioritize that over the animated codes, because they are much less interoperable (can't be scanned easily with standard readers etc).

Will see how far we can get with that, if there will be the need I'll implement animated ones.


As well make sure in Settings you have notifications enabled + you see device token below the label.


Zapped you from Amethyst. Can you try to pay to your own lightning address from the wallet directly to make sure basic wallet and paying to an address is ok? Dm me any error if you'd get one.


On Graphene OS you might not be able to receive push notifications (requires Google Play services). If that's the case, background processing of incoming nwc commands can't work.

Backup option is to receive commands over nostr relays, but that works reliably only if the app is running and foreground - not really practical.


QR code fails to show if the amount of data the token takes is too big for QR code to be rendered. This depend on how many ecash notes are selected by the wallet to match requested amount.
In such case, there is option to copy or send ecash to another wallet address (contact) over nostr.

If you select another amount resulting on less ecash notes, QR code will show again.


Cashu mints are connected to Lightning so you can withdraw to any Lightning wallet but not directly onchain.


Not sure with this one for now, sorry.

Check if you see notifications enabled and device token shown in Settings.

As well send few sats to yourself so you are sure basic wallet works.


Please restart the wallet after upgrading.


Last update made more efficient v4 QR codes as default. You should be able to switch to legacy QR code format using an option below the code.


Please restart the wallet, there are migrations after the upgrade that cause in some cases the balance to not refresh. Next restart should solve it.
Sorry for troubles, working on that.


Please restart the wallet once again.


Dm'd you


Hey, if transactions remain in DRAFT and do not follow up try to send all your balance as ecash to yourself (send as ecash > enter whole balance > copy token > receive as ecash > paste to receive.

DM me if it won't help or you need further explanation.


Do you see any transaction with error in the wallet or you just don't receive zaps at all?


Successfully zapped.

How fast the zap appears (if ever) in Amethyst depends on the receiving lnurl server, that publishes so called zap receipt event when the zap invoice has been paid.

So Minibits can't influence it if receiving lightnig address is not a minibits address.


Excited to announce that Minibits has  become one of the nostr:nprofile1qqs8suecw4luyht9ekff89x4uacneapk8r5dyk0gmn6uwwurf6u9ruspzpmhxue69uhkumewwd68ytnrwghszxthwden5te0wfjkccte9eekummjwsh8xmmrd9skctcpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhs2juazd grantees 🎉! Grateful and dedicated to push forward with open-source ecash R&D for #Bitcoin!

https://image.nostr.build/4ced6dcfb4dda7861182250bb57fa655ea49f8752be988320c33c6589157f2d2.jpg


Ok will change it in the next release.


Agree, relay[] is supported encoding in query strings, but I'm afraid it might not be what nwc clients expect.
Will consider to point it to my strfry instance relay.minibits.cash


There is indeed and was even made more accessible and with copy button in the last version.

However, if both payer and the payee use the Minibits mint, it settles invoice internally - in those cases preimage is missing.

https://image.nostr.build/b9d0cab624176e21dda65db77e78f82621dc2ef4e21f059ff821da5678d9674b.jpg


Minibits addresses are as well nostr identifiers. However nsec key is never exposed to the user as it is meant to send and receive ecash, not to be used in other nostr clients.


Spec says that relay param may be more than one. You're right that multiple relay params in query string looks weird but that was what I've  seen in some other implementation.

If it is indeed wrong encoding, I'd be happy to fix it but would prefer not to rely on a single relay.


Zeus lightning address works with so called hodl invoices - invoices do not settle immediately on receiving zeus node unless the payee opens the wallet. This breaks zaps flow, so I'd recommend using another lightning address provider for zaps.


Sounds like a network issue.

What comes to my mind that If you're using vpn, it could be that their exit ip could hit mint dos protection rate limits if many use the same one (?)


Please dm me related transaction audit trail from tx detail.

I have one another similar report and it's likely same bug, tx is wrongly completed, logs will confirm that.

I'll prepare the fix. Seed recovery should get your sats back until then.


Make sure you are on latest version beta.65 and restart.

If pending won't resolve after that, hack is to copy it from local recovery tool as encoded token and paste it to receive back to spendable balance.


Here is how it looks like in transaction detail. Barebones, but does the job.

https://m.primal.net/KoZC.jpg


Urgent user call got me back to work!

#Minibits now displays profile pictures of zaps or ecash senders and 🔗links 🔗 to the zapped note from transaction detail.

https://m.primal.net/KoZB.jpg


Good point. Was meant no to lose individual sender info when the number of incoming is not hindering perf.

However now it batches only from >5 incoming so making it default makes sense.


Hey, dm me if you see any transactions with error and their audit trail you'll find in errored tx detail. Thanks!


Ah sorry, if you do not run high volumes of scripted/automated swaps or melts against the mints, just ignore my comment, I misunderstood yours then.

By dev env I mean that you could quite easily setup your own mint (even one not backed by real sats) for development or testing purposes.


I'd kindly recommend to setup a dev environment for any higher amounts of algo tests. It unnecessarily bloats involved mints state.


Will just validate "ws"


That's tricky as the wallet needs to provide ecash to the mint with request to pay an invoice, but fees are not known upfront. So there is a fee buffer where mint returns not spent / saved fees.


In the next release, the valodation will be relaxed for relay .onion addresses (no wss needed) and url length expanded so they fit in.


It's not 100% sure that the zap sender profile name is tracked within the transaction. Public sender profile is requested from relays at the moment of zap conversion to ecash, but there are cases when it fails and is skipped.


Please try to select another keyset (option in recovery screen just above button to kick off recovery)

Older ecash was typically issued with 9ml... keyset or so.


Check Security settings. With storage encryption on, biometric auth is needed for Minibits to start.

However I do not recommend it for frequent usage, and generally better practice is to keep balances small enough in ecash to not mind such corner case.


Retried and succeeded now. Was something temporary on Wos side serving invoices.


I can't either with nwc from amethyst. Not sure about why for now but will look at it.


#Minibits is the best off chain wallet. I said what I said.


Happy we found this workaround and that it worked for both of you.

Nevertheless there is code in Minibits that automates this for at least 6 months deployed that works in most cases.

Hodl invoices are quite hard/time intensive to test so I could not yet simulate your issue where they do not clear out.

Will work on some intermediary solution that will least help to log and investigate such cases.

Thanks for helping to make ecash better!


All zapped out for now. nostr:npub1kvaln6tm0re4d99q9e4ma788wpvnw0jzkz595cljtfgwhldd75xsj9tkzv, you did your best but struggled to keep up with my zaps. We got through it though! #zapathon
https://image.nostr.build/05dd0fed82eec36bbbbaffc3fe0aae3bc85c0dd2affc729a67bcdcb676c31f63.gif


Could you restart the wallet and then dm me an audit trail of pending tx (copy from tx detail screen)? Thanks


Thank you for headsup, checked ntfy, nice project. It would be unfortunately unusable for NWC use case, as the wallet do not have access to the received notifications.

In case of NWC my server subscribes to encrypted NWC commands published to minibits relay, reencrypts them with own keys and routes them to the right device based on event recepient tag. They are not shown to the user, just used as data carrier passing the commands from relays to the device.


Go to Settings > Backup and Recovery > Scroll down > Tap remove spent ecash.

If you see any other error before this happened, send me the copy of audit trail to the dm. Thanks!


Token is obtained automatically on granting the permission and refrehed on wallet start - user is not involved in it. If it fails to do so, it means that the device has no Play services installed / available.

I've released yesterday a small fix that will fallback to websocket nwc connection in that case (permission granted and device token missing).

Unfortunately this is really a "demo" solution as it will work only when app is in the foreground (means zaps are sent from app on other device / pc).


For cypherpunks there is of course a fallback - if notification permission is not granted, NWC messages keep going over the standard websocket subscription.

Now it is upon the real ones to kick their OS not to close it when the app is backgrounded and then open source that for all others.


I will gladly dissapoint you over the next two weeks of fam holiday!

Nevertheless kraXen will work on it over the next week.


If you're interested to get the name back, dm me what it was. I can delete it from lnurl/nostr address server so that you can book it again. I'll send you your sats back for the second donation back.


You'll find the seed phrase in settings. Keep it somewhere outside the device. Recovery from seed is last resort, mostly in case you lose the device.

For other wallet hiccups that might come due to heavy both protocol and wallet development, there is still local backup of ecash in separate database that can quickly help in some cases.

Enjoy and keep only small amounts in ecash and in r&d focused wallets.


If you see them only when wallet is in active use, those are local ones, trigerred by the app itself. Check if you see the device token under the push notification switch in the Settings.
 https://image.nostr.build/3fb0945edb7e0a37a1950150df6b4962e96f5650e9f2097f0e1951cbd0d765d1.jpg

For NWC to work when Minibits is killed or backgrounded, you'd need to be able to recieve them from the server, through firebase messaging - the same way push are delivered on incoming zaps no matter the state Minibits is in.

Most android devices are supported, but there are some that don't: i.e. if you use  a device that has no Google Play services installed (some chinese brands or privacy operating systems such as Graphene and similar). Those can not obtain the so called device token to which the messages are addressed.


Not really, you just keep your balance pegged to usd as promised by mint in some way


Do you have push notifications enabled and working?


When Minibits is in killed state, in my tests the zap is paid reliably by ecash, however android suppresses or delays the nwc response sending - but not sure how Amethyst or others handle this case.
Still, zap receipt is published from the server, so not missing.


I see that in Amethyst as well, even I see that zap receipt is published. When I just scroll the note out of sight and back, zap is shown there.

Doesn't happen when zapping from Minibits over the deeplink, perhaps because the screen is re-rendered when coming back to Amethyst.


Go to Settings > Wallet on primal, deactivate default wallet and add NWC connection string from #Minibits


That's the recovery last step.

As well, if you still has  old device with balance and just moving, you can just install on new device, send balance to new random  address and the use "wallet address recovery" on new device using your seed.

That way you skip sometimes painful ecash recovery and move your address.

If that's not working for you, drop me a dm with screenshot of app details from developer settings.


Certainly doable. In more generic way, could I put it that you'd like not to be bothered by notifications when app is in foreground /active?


Sounds good.


Ah, I see :)

Minibits contacts are currently stored only on device. There is another open github feature request to provide contacts backup that could be implemented via private kind of list as per NIP-51.

When this comes on the table I'll think how to get max out of it.


I believe I figured that one out. Fix is released, just accept the latest update.

Thanks for spotting and reporting!


Agree, contacts are quite barebones. Could you please give an example what lists you mean?


Thanks! iOS for sure doable (code is react native), just outside of my time possibilities.

There is a plan in the making on how to onboard another dev. So consider it being part of the roadmap, just would not expect it this year.


Thanks for report, that's a bug for sure. Will try to simulate or at least think of it, wonder how that can happen :)

For now, please just try to delete both connections and create and paste new ones.


Requires to have push notifications enabled and working as they work as a data carrier to pass encrypted NWC requests to the device when wallet app is in the background or off.

Experimental, background processing is limited by Android OS, depends on many things such as battery level, there is no guarantee it will work on every device.

Use only with apps you trust and with small daily limits!

https://m.primal.net/KHwU.mp4


https://m.primal.net/KHwG.jpg

I hesitated to add NWC to  nostr:npub1kvaln6tm0re4d99q9e4ma788wpvnw0jzkz595cljtfgwhldd75xsj9tkzv for so long, deeming it bad choice for mobile devices… until I could not hear 'wen nwc🧐?' anymore.

Now, in reckless mode, you can connect to Minibits from your favorite #nostr apps and make payments, even when the wallet is asleep😴.


That was meant as a silent launch :) Please use with caution, it is an early implementation meant for testing. Still a lot to polish


Seems like that you figured it out, thank you for your generous donation!


Quickly tried repeating payments to Speed wallet and WoS, without any issues.

Could you DM me audit trail from one of the failed transactions - you'll find it on detail screen.

Thanks for trying Minibits!


When initiating a zap in Amethyst, Minibits will open through a deeplink (or selection of apps listening for lightning: links is shown).

Minibits gets the lightning invoice over the deeplink, so that you just tap once to confirm the payment.


I test on 4 years old Samsung A20 to check UI on low res displays. What's wrong on A15?


Hi sorry for delay, been offline for few days.

If you still have the previous device I would not go through ecash recovery at all.

1. Install on new device, add mints
2. Move your balances by sending ecash to your random wallet address on new device (it might be too much data for qr code)
3. Go to Backup and recovery, enter your seed from the old phone to Recover wallet address
4. Uninstall Minibits from old device

That should do the trick with min pain.


Checked the whole stack and seems working. Is the issue still a thing?


What's your new phone?


Hi, just in case please make sure you run the latest version beta.47 - check for it in Dev options.

If that's the case, try to move your balance elsewhere (another mint within the wallet or another ecash wallet) and remove+add mint again.

Feel free to dropme a dm if in need of more help, thank you for trying Minibits!


I promise I did nothing :) good to hear


Hi, could you please tap copy below the warning and paste me the token into the dm? There's something, 21 sat token should not break the QR code size limit.


Released smaller fix&feat Minibits update today.

Now, new and more space efficient v4 token format  that makes QR codes easier to scan is available for most mints including Minibits mint ✅ .

Update as well fixes reported bug when receiving failed on freshly added mints 🪲.


Sorry for troubles, something's badly broken. Would you have few seconds to followup on the dm I've sent you? Have a fix ready but need some technical info from your device to be sure it will fix this ugliness.


Thanks for trying!

New format requires that the mint uses new format of keysets as well (hex encoded). Minibits mint has mit yet migrated to new keysets.

In the meantime you can try e.g. stablenut.umint.cash

Here is 21sat token in new format, switch is below the QR code.

https://image.nostr.build/b4d1a3f8c58dce5eb0ea0fa44f24c9515e10f9761e96dd8ebc88a049b380bea4.jpg


To receive ecash for your tons of zaps in a batch, turn on the setting on your wallet address screen. Wallet will then receive zaps as a batch if there are more then 5 pending to be claimed.


Moreover, latest over-the-air update includes experimental features: Minibits is the first mobile wallet to support the new binary and space-efficient v4 token format, as well as a new Cashu protocol extension that allows mints to charge fees.


Minibits is now a sleek and fast as a canoe for those receiving lots of zaps. You can claim all your pending ecash in a single batch transaction. Plus, sending is faster and often offline, avoiding ecash splits unless absolutely necessary 🚀.

https://image.nostr.build/c06f42b8c14523ea84a33862df97430c56673957e202000b718cfaffd760fe1a.jpg


Sorry to hear that no matter what amount. If you reinstalled we don't have much to investigate.

Hope Minibits will work for you, drop me a dm or ask in Minibits wallet tg group if you'd need help in the future.


Re: receiving zaps in #Minibits. Wallet receives encrypted and encoded cashu tokens generated on the server once ln payment comes.
Wallet creates draft transaction and then calls mint to swap ecash for fresh. Received ecash is stored into wallet state and backed up in separate daatabase.
Then transaction completes.


I'll make a special "exchage" kind of UX and transaction type if there will be more USD mints.


I've checked the mint, there are quite a lot of pending notes.

I've checked one on lightning node directly and related payment is still in flight.

So it's upon receiving node to fail or complete the lightning payment.

If you pass me melt_quote id, I can check precisely yours.


Did you keep Minibits open while paying the invoice? It should detect the payment while in foreground.
You can retry and if the name is still free it should allow you to book again.
I'll check tommorow the server and if you'd donate twice I'll send you sats back. Gb


This. Thanks.


We are back up!


Thanks for pinging me!


You're right, bitcoind went out of sync. We'll be back up in 15 min. Until then only pure ecash transactions work.


Ouch, really tricky question. Has been one of the first hobby node runners since 2018 or 19 (how long is that). That might help here and there.

Minibits mint is really for cashu R&D purposes, it's vastly different task to run large professional and / or routing node.

If payments work for you and you run your own I'd just follow the channel graph that minibits.cash node has - it means that existing channels fit your liquidity needs.

Happy that Minibits and Lightning work for you.


#eNuts should have a setting called "increase proofs counter / recovery index" or so. Press it to fix it.


#Minibits wallet holds the ecash on device, not on the server. So to work with NWC reliably, app would need to be in foreground.

Some workarounds could be designed. Does the deeplink bring too much friction?


Sorry for trouble. Go to Settings > Backup and recovery, copy your seed phrase and go through wallet address recovery. It will solve the issue.


Hi, go to Backup and recovery, copy your seed phrase and go through wallet address recovery. This will sync necessary data for claiming zaps and other sats sent to your lightning address.


Spectacular #Minibits users

nostr:nevent1qqszu6cx0ymzdllvsyx3eyu8c4naclj92ettp5gkcx8kyzg8yf357sgpzpmhxue69uhkummnw3ezumt0d5hsygyntrr8d9weu79au2lnec0tpfg9j4fksa3j59m705jaamle72gjlspsgqqqqqqsg4tsc7


Ecash in Minibits lives directly on device, so for nwc to work, wallet would need to be in foreground or implement some background processing that is  quite constrained by operating system. That seems quite impractical.

There might be parts of the spec that could work like requesting a payment that I'll get to in the future.


Hi can you DM me the copied audit trail from errored tx detail screen? I'll look at the reason while after the ecash has been received by the wallet the subsequent swap for fresh ecash with the mint failed.


I checked the address server and see the issue. You had really old wallet from before seed recovery of addresses was born.

I'll coordinate the fix over DM.


Yes


If you enter the seed from the old duck wallet to new wallet's address recovery, you should get the duck fly to the new wallet.


Ecash can not correctly live in two wallets in parallel. Ability to recover from seed phrase brings unfortunately the need, that each ecash secret key is derived using sequence number.

If you set up two wallets with the same seed, those sequencers will collide, resulting to mint complaints you mention.

Current way to move #Minibits to new device if the old one is available and avoiding the full seed recovery is:

1. Check mint info page > on device info > proofsCounter for highest sequencer value on old device

2. Install wallet on new device. Do not enter Recovery from seed. Get to the wallet and add your mint(s).

3. Go to Backup and recovery. Push Increase recovery indexes so that you reach above the value from old wallet

4. Send ecash from old to new wallet, e.g. using auto-assigned new wallet address as recepient.

5. Enter your seed from the old wallet to Recover wallet address option in Backup and recovery

You're done, uninstall old wallet with zero balance. Other option is to go through full seed recovery, that increases sequencers in the process. However it's much slower, mainky in case old wallet had long history.


You're definitely right that it's not ideal. However available react native tor lib broke the build and is not further maintained so I had to abandon it from v0.1.6.

Otoh, Orbot is easier than thought at first glance: Just put Minibits into the list of proxied apps and go. Minibits niw warns to turn it on if user forgot to.


#Minibits update packs a lot of smaller improvements + tor support is back! (with small hack)

New over the air update brings a bundle of fixes and UI polishing.

Subtle yet useful new feature is the ability to send comment alongside the payment to lightning address.

Minibits now supports mint URL change in case the mint would lose the domain. Just in case.

In previous version, Minibits had to sunset integrated Tor daemon to connect to the mints on .onion addresses.

Now, we are back and Minibits can connect to .onion mints again using VPN mode with Orbot!

https://image.nostr.build/cd2eff755da992dc7a2baba893df9a982262bb3ad160c29ba7a70cad5b09c1c6.jpg


I think Nutstash or Cashu.me are doing great job in the browser.


It's not burnt if you still keep the seed phrase. Yes there are cases when recovery is not trivial, namely with older wallets.

I suggest to give it another try using the best and fastest recovery tool out there: https://v2alpha.nutstash.app/


The flow is as follows:
1. Address is parsed by the wallet and Lnurl well-known link is constructed
2. Lnurl link is requested by sender wallet, retrieving min/max limits and an url to get invoice next
3. Invoice for specific amount is requested by wallet. Server requests quote from the mint that includes an invoice and est fee and passes that to the senderwallet. Server stores related data.
4. Server checks with the mint if an invoice has been paid.
5. If so, server constructs blinded messages for paid amount and asks mint for ecash
6. Server stores retrieved ecash and uses some way (push message+claim api or nostr dm) to send the ecash to the receiving wallet.
7. Wallet receives (swaps ecash for fresh notes with the mint)

So eventually this could be generalized in terms of mints. Because server needs to know how to reach recieving wallet, not sure it can be easily done on the receiving wallet side.


Give us some time, it's in the making / testing by community contributors, instructions will follow.


Have you been using it with your own mint behind tor so far?


If you're not on v0.1.8 please get native upgrade from Play or github. Namely v0.1.6 and before are not safe to be used, missing many fixes and changes.


You're right, as per 0.1.8 release notes, tor daemon had to go (not maintained and broke the app build).

However in the process to make v0.1.8 work with mints behind tor using Orbot. Once successfully tested and released, there will be how-to added to the github readme.


Easiest way to move ecash to another wallet is just send it there, no need to run the recovery from seed.

Another than Minibits wallet won't be able to receive funds sent to minibits.cash lightning address - seed  recovery there regenerates ecash only with help of the mint.


Hi write me a dm and add version you are running and eventually audit trail of related error transactions if any.


As well check you use latest version in dev settings - 0.1.8-beta.28


Zapped you just now. Try app restart and dm me any error you'd see. I'll check in the evening if there is some unclaimed to your address.


Ah I see the pic up the thread. That's it. Please go to Backup and Recovery, copy seed phrase and run through Wallet address recovery. It will sync missing profile authentication params necessary for claim to pass and solve it - restart after to force claim.


Do you run latest version 0.1.8-beta.27 and if so do you see any popup with error message on app start?

Please check. There are cases where claiming fails an latest version prints a warning.


Ok will check the lnurl server data in the evening


Sent you test zap. Please post which version you are running from dev options screen. Will check on server and re-publish any not yet claimed if any later when at the pc


No error. Receiving wallet never received so tx stays pending. Legend server mints are likely not live anymore, if that's the case then receiving won't work.


Means you are trying to access non existent mint. Legend lnbits team disabled cashu mints on their server some time ago.


Send it.


Hi Minibits dev here. Do you see transaction with error status in the wallet? If so, dm me copy of audit trail from the detail screen.


when first started nostr:npub1kvaln6tm0re4d99q9e4ma788wpvnw0jzkz595cljtfgwhldd75xsj9tkzv I had my third "THIS IS THE FUCKIN INTERNET OF MONEY" moment 😨😮 (I had the first with electrum and the second with blixt wallet).
Ecash is mindblowing and it is the only e-thing that is not government-crap for-the-climate.


The best.


Submitted as #78 to our github.


That means your device is triggering local notifications on ecash coming still over nostr relays.

Make sure you run latest native release and over the air update (0.1.8-beta.20) and notifications are enabled in Settings.

As well check if your device supports delivery of notifications over firebase (requires google play services installed)


I believe the framing is still in the making. Personally I imagined at the beginning the concept of "buying" ecash for sats and in early version of minibits, the unit itself meant to be <something>sat.

After short discussion with calle roughly a year ago I released the wallet without unit at all.

Later I've just aligned with convention in order to not bring mess into early protocol.

From regulatory pov, idea of buying something could be more easy going for the mint legal structure even it is likely that not all jurisdictions will accept it.

The other model of providing "sats"  sounds to be clearly a banking service.


Zap's yours!


Please get the native release hotfix released yesterday + over the air update.

There is a fix that makes sure your push token syncs and messages start to fly. You should be on 0.1.8-beta.20


Did you? I'll zap you to test it then.

nostr:nevent1qqsqrmf4ytt24xvevdc4mwaptx978cwx50ajvxypv5hq372seue9p3qppamhxue69uhkummnw3ezumt0d5pzpvftvvkgslcvsuw3grfhhjmw0s0p4qpxf59hm6p9t2se28v7rlmeqvzqqqqqqyc7nuya


Sent you 21 sats so I can check it if it won't pass through


Wallet address recovery recovers intentionally address only. For full recovery you'd need to make new install and get into it from last onboarding screen. However this is overkill when e.g. just moving to new device without losing old one.


There's a brand new recovery tool to recover your address using your original seed without recovering balance - visit Backup and recovery in Settings to try it (you'll be definitely the first one).

DM me your random address or the address you recover to so we can test the zaps.

Please note, that when app is open, zaps are claimed not more often then every minute, require to be on wallet screen. Notifications should work in any wallet state.


https://void.cat/nostr/1b088831b93352db08f2a28fd3ba99dc64b9899ef034dfa8390d833d1ca1248c.png

...notifications arrived and the app was closed 💪🫂🎨


Sent some more! Check if notifications are enabled in Settings and if you see them coming!


Nevertheless 21 sats sent!


Try to put it to your nostr profile so we can zap in 2 taps!


Thank you for your zaps coming! No better way to test that push notifications work!


Please note, that notifications are disabled by default for new installs, enable them in Settings.


Get the new version from Google Play or as an apk from Github.

https://github.com/minibits-cash

https://play.google.com/store/apps/details?id=com.minibits_wallet


This concept replaces current sending over #nostr relays that  works only when app is open and tend to be very slow for heavy zap collectors.

Ecash is now claimed encrypted + over TLS, leaving no footprint on relays. Notifications are optional, encrypted and carry no ecash.


Did not take long to have a new #Minibits wallet release out 🚀!

New, much faster and reliable receiving of zaps and other #lightning payments, now with real time and encrypted push notifications 💌.

https://m.primal.net/IRMW.jpg


Content creators work hard to earn zaps. How should perfect receive into Ecash wallet work?

New #Minibits architecture for receiving zaps and all #lightning payments to minibits.cash addresses.

Realtime encrypted notifications, claim ⚡sats on wallet start 🚀

https://m.primal.net/IRMY.png


Hi could you dm me a copy of audit trail of "pending" recovery transaction? Thanks


Not happy that fast pace of development brings glitches (hope not as much as last upgrade anytime soon!).

Very happy that #minibits built-in failsafes help to quickly get the sats back.

#cashu wallets are not mere clients talking to the servers as your typical custodial wallet or banking app. They hold ecash physically, so being resilient is crucial.

nostr:nevent1qqs2g0g8r70c9d2ejxs0r6w5wa5pz9tt3xgluljuwj49zhckmasu33cppamhxue69uhkummnw3ezumt0d5pzqvt9hqp89wdmckwk99jpyfa8ejyh7mpk0f06zu5c984t5j5l28fhqvzqqqqqqydc42sk


Hi back online now. Annoying update modal is fixed, it was a bug related to the prep of new release.

Please dm me a copy (not screenshot) of the audit trail of the expired transaction, as it involves minibits mint, should be easy to investigate an solve.


Did it, you have the steps to be taken in there.


Wrote you a dm, we'll sort it out.


Unfortunately there are cases where migration to new wallet version bricks it. As it uses to be, never happened in tests and there are subtle differencies on how bad it is.

As such, my fixes focus more on improving recovery steps.

If that's your case, there is general procedure in a related github issue. If that won't help, drop me a dm or visit tg support group. We can sort it out.

If you have not upgrade yet, check release notes on github to be on the safe side.

nostr:nevent1qqsprhyk5fw4edseljvwgfjrtkkx69sq6vdnkzgc2zkfldserhxrrvqpp4mhxue69uhkummn9ekx7mqzyr02k7w6lgwzhe955mf6egf40dk25zm5f06x44ff5khyvs5g270xsqcyqqqqqqgdvq49p


Which Minibits version are you at? Check in developer options.


Great, I'll come to you through dm.


Hi, sorry for troubles. Are you able to copy encoded tokens from local backup?

We can follow up over dm to sort it out.


Hi, I'll check the profile name on the server and dm you steps how to get it back.


Hi, sorry for troubles. Please go to Backup and recovery > Recovery tool.

If you see backup of your ecash, try to recover them back to wallet or copy them as encoded token to recover in another wallet.

If not, dm me, we'll sort it out.


nostr:npub12rv5lskctqxxs2c8rf2zlzc7xx3qpvzs3w4etgemauy9thegr43sf485vg this one's yours :)


You need to add a mint that issues USD ecash. Minibits mint does not.


That should definitely not be the case. I suggest to  reinstall the wallet and recover from original seed.


Does any of available options (proofs, tokens, reocvery) work for you?


Seed and nostr key is always stored in Android keystore. Optional encryption encrypts all wallet data


This looks really bad, sorry for troubles.

Please get todays update and add your mints again and head to Backup > Local recovery tool. If you have local backup, tap Recover to wallet.


Try to restart the wallet, does not look like a mint issue.


If you turn on wallet storage encryption in Security settings, biometric auth will be required to start


In Cashu transaction between mints always includes Lightning.

Of course two-step process (creating an invoice on one mint and paying it from another) can be streamlined by the UX, some wallets do that.

When other than sats mint take off, I'll add it as well so there it good ux for "exchange" transaction.


DMd you back, unfortunately, Minibits does not support tor connections to NOSTR relays and had to drop mints as well in new release. If anybody could work on react-native-tor library, I'd be happy to get it back.


Fair to say, there are losses as well - this version had to drop support to connect to the mints using Tor daemon. Tor library for react native is not maintained and could not be incorporated into the build. If anybody could take this, we'll put it back.


Yes, wallet supports multiple mints. Jus go to Settings > Manage mints to add some or scan mint URL encoded as QR code from main screen.


Wallet is now organized by currency units, not by mints. Last visited unit screen is remembered and shown on next start.

This makes wallet ready for upcoming multi-mint payments, where a payment amount could be funded by more then a single mint.

https://m.primal.net/IGeJ.png


Transaction screens now show related mint in header, with whole UI improved along the way.

https://m.primal.net/IGeP.png


Your Lightning address is now one tap away from Wallet screen. Transactions moved to their own bottom tab.

https://m.primal.net/IGeN.png


Last but not least, you can grab your own custom Minibits Wallet address instead of random one for  a small donation.

You'll receive zaps or any Lightning payments as well as Ecash encrypted, over Nostr network. Grab one, put it on your Nostr profile and let the sats flow!


Mints could issue almost anything desirable as Ecash.

And Minibits Wallet is ready to handle it.
Biggest upgrade so far with currency units support and related major UX and navigation revamp is now out!

https://m.primal.net/IGeD.png


 https://image.nostr.build/77555350eb1dc7a64c8ecb0d40b4599e3cab6971dbb55e90f5643e5cb0632989.jpg

Multiple currency units issued by mints are coming! Now released to alpha testers over closed testing program on Google Play.

Dear Alpha team, please read the release notes carefully before upgrading.


LNC is very well designed, with high security standards in place. NWC shines in interoperability because every nostr relay plays role of "mailbox" in LNC terms.


I checked very briefly and you are right - some scenarios could work nicely, such as request to pay over nwc. I always thought about it in terms of controlling the wallet from another app.

Minibits currently has its own request to pay schema to share the requests with contacts, but switch it to nwc standard would unlock that for many other apps.

Thanks for idea, I'll dig in deeper once I'll be done with the new native release in the making.


Hi! With Minibits, your ecash lives directly on mobile device.

NWC requires a server to talk to using nostr messages. So to make it work, ecash would have to be in server-side wallet.

NWC is cool if you have your own lightning node running somewhere or to make custodial lightning interoperable.

For ecash, I'd like to figure out ways how to make it rather less centralized.


After three days of unstable and slow Minibits mint, zaps and lightning address services we are hopefully back to being faster then lightning!

https://video.nostr.build/32a3666f9a90b36dd7b6d8f2626c133bad1949977fd4a17d924b96d06ed3a317.mp4

All evil caused by slow TLS handshakes on reverse proxy server. Not much that can be googled about, had to dig into the deep hole of wireshark. Nevertheless, only remedy was just to migrate reverse proxy out of container and rebuild it directly on host server.

Sorry for inconvenience, one can not be pissed enough when zaps do not go through!


Had weird issues with slow TLS handshakes to minibits.cash domain over the past few days. Reason unclear despite learning how to inspect it with wireshark...

I've just migrated the reverse proxy server out of container, so that it runs directly on host machine. Created new certificates.

Finally, looks good now, everything is fast as... now again. Thanks for patience.


Hi thank you for heads up. Last two days minibits.cash  faces delays in TLS handshakes for yet unknown reasons - I did not change any related reverse proxy settings. Will need to investigate further.


There seems to be network related issues preventing the wallets to reach the Minibits mint. Please have some patience, working on it.


Feels good to see this!

nostr:nevent1qqswuy6v7ml3qztypqyvm7s2rrwpx5vu28zxt49kh3xv3xqz599wx3cpp4mhxue69uhkummn9ekx7mqzyrgrp5eux204dwnl66h5vnukggdyllzjnrs2cw8q5f9j0rz3jrjwzqcyqqqqqqgesgqtg


Hi, Minibits dev here. Ecash privacy model is quite strong with ecash to ecash transactions, as the mint can not differentiate sender nor receiver identity (mint jus blindly swaps ecash tokens provided by receiver for fresh ones).

Cash ins and outs involving lightning transactions share the same privacy model as lightning as such: minibits node sees sender node pubkey and path. Ofc using LBTC swap with LSP like boltz makes your node out of reach, but then the extra privacy gain comes from that swap.


No, just zap someone else. Happy you were faster then bots to claim!


Well guys, enjoy the sats.

Next time I will consider that if I create private message in #amethyst via Messages > New > Private, it will anyway end up on my timeline...


Thanks for inspiration. Doable, data is available in transactin history database. Working now on new native release, but will add it to the backlog of features on github.


I can't see the issue on /info. I can investigate more after tommorow, on travel without pc until then.
 https://image.nostr.build/95f7f10ac346b6de2b6f43fdff056eaa41fc5cbe5206003bdf7c26a2cf109e95.jpg


Hey, I've set it up for mint.minibits.cash on proxy 2 days ago, including for preflight requests. For which exact request do you get the error?


Hey, I've configured the cors support for pre-flight requests on the proxy. Please retry.


In the recent update, there is new option to retry to receive in case the transaction failed (and remained both in DRAFT or selected ERROR statuses - e.g. in case mint was offline at the receive time).

Thanks for testing Minibits and making it better!


Good to hear it worked for you and I appreciate your zap!


Do you mean draft status of a transaction?


Good question. Seed as such backs up only ecash - it allows, with cooperating mint, to regenerate lost ecash into new wallet.

In new wallet, new Nostr keys are always created, as the private key never leave the device.

However, as a last part of recovery process, newly installed Minibits wallet passes hash of the seed and new nostr public key to Minibits nostr address server. If match is found, corresponding  nostr and lightning address is re-linked to new keys.

That way, your minibits nostr and lightning address re-appears in the new wallet. Update  is finally published to default nostr relays.


Have not thought about that yet. I'd like to finish the cashu protocol in terms of other balances than sats and offline payments.

In terms of what's next: I keep the direction open. More inclined to add other protocol if it would provide rather different than similar trust options, but open for discussion and demand.


Zapped back instinctively. Enjoy!


Paid zaps on the way to #Minibits do not expire as they are converted to ecash at the moment of settled lightning payment. Then they wait on nostr relay to be received.

However due to major mint upgrade, mint's keys rotated to new ones and wallet required to update as well.

For failed tx before wallet managed to update, it is enough to retry, no need to go tgrough full recovery from seed.

Thanks to all trying to help to Gzuuus


Thank you for the report. The issue relates to recent mint upgrade and should not repeat anytime soon. Glad the prepared reclaim path worked for you.

nostr:nevent1qqsfae8x2drhagf8fntr67jh2shwql9ja7seh65c4mwc5umwlkzwh9gppamhxue69uhkummnw3ezumt0d5pzpveml85hk78n2622qtnthmuwwuzexuly9v9gtf3lykjsa076magdqvzqqqqqqy87pk8q


Thanks for feedback, will make UX more precise.


Pass your feedback to me, thanks


Minibits dev here. Did you try to go through multiple recovery intervals ahead still without finding any ecash?

You can dm me the details, might be mint upgrade related but we will sort it out.


I meant LNbits <> LND comm.


Using GRPC


Put it to your nostr profile as your lightning address so I can zap you in ecash.


Own LNBits instance is still part of the stack as it helps to keep mint's funds segregated from funds needed to have liquidity reserve on the lightning node.

But now mint is no more  LNBits extension but runs pure Nutshell in it's own container.


First major #Minibits mint upgrade completed today. Huge thanks to nostr:npub12rv5lskctqxxs2c8rf2zlzc7xx3qpvzs3w4etgemauy9thegr43sf485vg to help me to play with fire.

Now ready for really cool stuff to come.

IMPORTANT: Please accept latest Minibits wallet update immediately before usage, it includes important fix to support smooth mint keys rotation.

IMPORTANT: Keep in mind Minibits is still in research and wild development of best ecash ever. Do not use with money you'd regret to break up with.

 https://image.nostr.build/4023f2732cd3f45d65950d1ce3302aabc4200a04ba609ca88ed4c118ecadea65.gif


There will be roughly 10 min outage of minibits mint within the next hour or so because of mint upgrade.

During the outage, mint requests will fail with Network timeout.

In case you will have failed received transactions over nostr, go to transaction detail and you'll find new button Retry to receive.


Hm looks like something was temporarily offine, let's retry. Please dm me the copy of audit trail of the recorded transaction.


First #nostr based #cashu mints review site!

nostr:nevent1qqstnq0vj9tsasrp89l7w6nmx5zlt7wtyputfnshejm4lqss7nv9x7sppamhxue69uhkummnw3ezumt0d5pzps6llrp5q3ylp4527xhvfpztk39fczuvrh20f480h3j7zgpe5dy2qvzqqqqqqytghrkp


I've started to update v0.1.6 apk on Github after relasing critical fixes over the air. It unfortunately does not go as planned.

It looks like the update of .apk through Obtainium or directly is not smooth and under some circumstances leads to wallet state wipe out.

Will work on that.

Until then, recent over the air update provides the option to set starting index to recover from manually so that after more then one recovery you do not need to start from 0 if you know where your last recovery started.

As well, recovery now goes by each mint separately so that you do not spend time to do it for less used mint alongside with most used.


Ok, that should not happen unless you remove or factory reset and skip recovery on new install.

By update you mean over-the-air update you install from Update manager or native update from Playstore?

Please write me the details to the dm.
I checked the donation history, will zap you 300 sats you over-donnated immediately.


There is a new #Minibits over-the-air update on the way:

You can now safely delete all expired or errored transactions once you do not need them to keep your transaction history snow-like clean!

Go to Settings > Update manager to get it. Enjoy! https://image.nostr.build/35cfb40b514a153e84d1f28cd9bba148db59f00df86bd1475e3f8dd4211f5d5b.jpg


If you'd wipe out your wallet again you know what to do.

Will add option to start recovery from index 3000 for you and alike hardcore ecashers!


We are working through the recovery indexes to reach the unspent nuts.


Ok then you might need to reach the recovery window with index around 700 - 1000 to get to unspent ecash.

So enter seed, add mint and then click again and again to move recovery index further. Not very comfortable but you should get step by step to your sats.


How many transactions you had roughly in the wallet before wipe?


That's what recovery with seed is for.


If  you'd already tried recovery, in case you had a lot of transactions in the wallet, your unspent ecash will be in later recovery window - wallet tries to regenerate blocks of ecash in blocks of 50 pieces at time.

In case of longer tx history, you might need to move ahead the recovert window quite a few times until wallet generates the ones that the mint confirmes had not been spent.


What do you mean by nothing show up? Lightning node does not touch your ecash balance, that lives on the device. Only the ability to send and receive lightning payments/zaps.

Do you mean that your wallet does not show any balance? Could you dm me the audit trail of your last transaction or any other errors you've encountered?

If you'd deleted the mints with balance, most likely recovery will be needed to get it back.


Sorry, Minibits lightning node lose sync ti bitcoin network and automated restart did not trigger.

Restarted manually, lightning payments should work again.


There was a lightning node issue during the night that prevented zaps to Minibits wallet to work.

Issue is fixed now.


Hey, the fact that you received zaps to another wallet could be due to that the sender still saw the version of your nostr profile with an old address on his relays.

Zapped you now, you should receive to #Minibits.


Zap is a lightning payement in essence - #nostr client requests invoice and delegates to wallet to pay it.

If the receiver has minibits.cash address set for zaps in their nostr profile, payment goes to the lightning node that minibits mint is connected to. There is a bridge that monitors invoices and if paid, passes the fresh ecash issued by the mint over nostr relays to minibits wallet of the zap receiver.

This works thanks to the fact that minibit.cash wallet addresses areat the same time nostr identities and lightning addresses.


Happy to hear that you're set up now. Default relays are added when first request to #nostr is made - only after creating of random wallet address.

You're right, defaults could be set earlier, so that people that jump to Settings immediately don't see empty list. Will fix.

Thank you for the report!


Hey, Minibits dev here. NWC allows to control wallet living on remote server from another app over #nostr messages.

However with #minibits, your ecash stays only on your mobile device. Therefore you need the nostr client to support lightning: deeplinks and then open minibits app to confirm the payment.

NWC is nice but targets custodial wallets or selfhosted lightning nodes.


Hey, this look like relay connection issue. Try to reconnect the relays in Settings or reset to defaults and add the one you are sure your profile lived in.

Then to test the connection before replacing the wallet profile, you can try to put your nostr pubkey to Public contacts. If it loads your follows, ok if not, you can quickly add another relay and retry.

You'll then find option to replace minibits wallet profile by your own in Privacy - as it is the most private option to receive ecash if you host your profile.

However you can consider option to keep your minibits profile and add minibits.cash wallet address to the lightning address field of your nostr profile in the nostr client you use. That way you can receive both ecash and zaps / sats to it as it works as a lightning address at the same time.


I think Fedimint goes even firther and offloads payment gateways (in Cashu  it's a mint's lightning node) yet to separate entities.

You can think of it as: ultimate accountability + radical simplicity + multimint wallets = cashu ecash

vs

potentially more resilient federation  + related technical and social complexity = fedimint.

I think both have some merits and it's yet unclear what will work best for what.


#Minibits is an ecash + lightning wallet. You own ecash notes with specific amounts in your wallet that can be sent to anybody or exchanged with the mint that issued them for bitcoin.

Mint is a sort of "account-less" bank. It issues new ecash against incoming lightning network payment and give you back bitcoin against returning the ecash.

While bitcoin is held in custody and you trust the mint honoring its obligations, ecash can circulate with much privacy guarantees, as the mint can not trace actual transactions.

Ecash note is a random number and denomination digitally signed by mint that can be sent in any way, even while offline to receiver. Receiver then exchanges it for fresh one with the mint (eliminating double spend risk) and transaction is complete.

Ecash in combination with instant topups / withdrawals to Liggtning can be passed as a self-bearing token easily over the network or any other communication mean and  thus seems to represent viable alternative to scale bitcoin for smaller payments.


Hm only thing that comes to my mind (if wipe and reinstall does not help) without having the device is if you'd try to download and install .apk from minibits github releases page.

It's the same native app code, but react native code is updated to recent version.


Does it crash immediately on start or when you visit Contact screen?


What device? Google Play or .apk from Github?


Just switched 2 or 3 days ago, minibits is cool af


Thanks for posting, wallet address change apparently failed for you.

Please make sure that you are on the latest wallet version in Dev options. You should see v0.1.6-beta.28 there.

If not, head to Settings > Update manager, you should see over the air update you need to get. Then the wallet address change should work ok.

Write me back how it went, feel free to use dm if you'd need to share more.


Do you see your chosen wallet name in the app header in Contacts?
https://image.nostr.build/8d0eca1d4b84792f1bbf775272d2b30965835f14f3e46972297c5559fec6db28.jpg


Not yet, but on the roadmap.


Yes, with built-in lightning address.


Zap from #cashu wallet on the way.


Please check the DMs for followup steps


Not "auto mode" yet. To do that now in Minibits involves creating and pasting the invoice.

On my todo list, there is demand. However would think of and discuss an idea of transfers once user set limit is reached (batching of multiple small ecash receives to lightning withdrawal - either to preferred mint or any lightning wallet).

Do it for every receive means that success rate of such transactions becomes below that of lightning.


As I think of it, you're right - scheman provides ability for the receiver to be offline.

For sender to be offline as well, he would need to prepare the locked token upfront in order to get mint's sig.


I think you'd scan / nfc the receiver pubkey in an offline use case (if receiver is unknown to you).


For techies and why we need this stress test:

Minibits started to have issues with keeping properly incremented recovery indexes (simple counters per each mint keyset) when zaps were introduced.

They kept flowing from nostr relays in parallel, racing the counter that needs to be strictly ordered otherwise blinded ecash sent to the mint will fail and cause the wallet to brick.

Few weeks ago Minibits implemented pessimistic lock on counters. It has improved the situation, however waiting for locks to release blocks singlethread js processing making wallet unresponsive and there were troubles on how to solve edge cases like force-releasing the lock. Simply said, they are great as last resort safety net, but should not play prime.

Enter new synchronous queue that orders coming zaps into strict order a process them one by one, offloading not critical but time consuming tasks to asynchronous event handlers...

This is what we were testing, now released in #minibits over the air update.

So, all heavy zap collectors, head to Settings to get an update!


We made it to 53 zaps!


Let's make #minibits zap queue stress test!


Post me the transaction audit trail to the DM.


If you are sending to minibits.cash lightning address, payment is converted on the lnurl2ecash bridge server to minibits.cash mint's ecash. So the mint will be added on receive.

You can't issue invoice from wallet without having a mint, so that can't go to the void.


Do you know how many transactions your wallet had before recovery? It starts from index 0, so first rounds are usually filled by already spent ecash that is then filtered out. Unspent follows later based on hoe long history wallet had.


Took some time and process can be improved for wallets with long history and many mints. But at the end calle's nuts were back!

nostr:nevent1qqsv0k5n04sadk537cfpeum7umtpy6gd8ujulv5zn82kf3395g4hkscpzemhxue69uhhyetvv9ujuurjd9kkzmpwdejhgq3q2rv5lskctqxxs2c8rf2zlzc7xx3qpvzs3w4etgemauy9thegr43sxpqqqqqqzcajma6


There is already a working concept in command line wallets to lock the sent token to receiver's pubkey.

That way offline send can work without the risk of sender double spend before receiver comes online.

Will take some time until it lands in mobile wallets. Naive offline send/receive proof of concept is available in Minibits.


Were you able to complete the transaction? If not, please ping me into the DM.


Subtle redesign of public contacts (nostr follows) dropped in latest #minibits update.

Using it as an ongoing R&D to rethink how Lightning and Ecash UX flows should coexist in a way that makes sense for users, not builders. What works will later expand to core wallet navigation.

Minibits is an ecash wallet, so we keep big green one button dedicated to sending.

However minibits now retrieves lightning addresses from the followed profiles and adds option to pay to them on click. Asking for sats (payment request)  becomes less prminent then before.

Hope you'll enjoy the direction!

https://image.nostr.build/a91eb6691547f2ac65b157a386e0a98e4233cecf74ce396ac7008ce31a643475.jpg


I meant easier connectivity to the mint itself from the mobile wallet. Lightning node connectivity relates to other nodes in the network.


IMO #minibits is the best so far

Mainly because I can connect to my own mint via tor.
.onion works well with minibits


Love to hear that #minibits Tor daemon did find its users. It's quite niche feature because there are no well known mints available over Tor.

However for folks that do their own stuff mints and lightning nodes on their own hw, it can really simplify networking, as they do not need static public IP address.


More mints might have some advantages, not far from reasons why people hold accounts with more than one bank.
Ecash wallets like #minibits allow you to spread the trust in funds custody across more then one mint: typical custodial lightning wallets don't provide that.
In the longer term if ecash takes off, mints might differentiate by other features like providing ecash representing other assets like USD or having good lightning connectivity in specific regions thus providing reliable pay-ins and -outs etc.
We are very early.


Minibits works well enough for me.  It asks a second click which of your mints to spend from (sats or ecash).  If thats what you mean.  I don't mind that at all.

I liked Cashu, then eNuts added Nostr address book, and now Minibits is a game changer.  An easy receive mechanism for Nostr zaps (via converting to ecash in the background).  Damn Minibits is truly awesome.


Can't get any better. Thanks nostr:npub1gcxzte5zlkncx26j68ez60fzkvtkm9e0vrwdcvsjakxf9mu9qewqlfnj5z!

https://image.nostr.build/9ae338fe26b22bc86021e6788a5e1315a7cf84b8193ecc97500d11ed86f8554a.jpg


Minibits now shows who you've received your zap from!

Just go to settings to get this small update over-the-air dedicated to zap-collectors.

https://image.nostr.build/9a520585f17ef735e22cf9e4338a6020601da9e509d4567dc39b8051e9e2cea4.jpg


Thanks you all, love it.


Is there any way to set the lowest zap amount on #amethyst to less then 500 sats?

After first week of Minibits #nostr account I am getting squeezed of all sats donated for custom minibits.cash wallet addresses priced at 100 sats!

Please help, zaps on amerhyst feel too good to not to be sprayed.

nostr:npub1gcxzte5zlkncx26j68ez60fzkvtkm9e0vrwdcvsjakxf9mu9qewqlfnj5z


It *could* be web wallet communicating with nostr/lnurl servers, mints and relays.

Just keep in mind that to keep the wallet state safe and working, web is far from ideal.

For instance, Minibits uses 2 separate storage technologies (mmkv as fast read/write, sqlite as append only backup) to prevent / recover from storage failures. This is not possible on the web. Safe keys store is as well big challenge on the web.


Minibits is react native app, so there is no other showstopper than to spend enough time to kick the ios build until it's working.
I have appstore dev account, so should be possible to release if not stuck in approval.


How offline receiving (zaps on nostr) works with the Minibits Lightning address:

- The server provides a Lightning address
- When someone zaps you, the Lightning payment is converted to ecash
- The ecash is then sent to your wallet via encrypted note DMs waiting for you to come back online
- When you open your wallet, it connects to a set of nostr relays and receives the ecash into your wallet

nostr:nevent1qqsqw084kpavfq03fa5w7q0whclx9ccvygmswyuwqq5q85lfm9ug2hgppamhxue69uhkummnw3ezumt0d5pzq5xeflpdskqvdq4swxj59793uvdzqzc9pzatjk3nhmcg2h0js8trqvzqqqqqqy3e2rqv


Minibits tries hard to earn its first eagle feather:

1. Random transactions failures should be gone for good (at least once @calle won't be able to break it for a single day)

2. Nostr relays now reconnect nicely: no need to do it manually or even restart.

Go to settings to get the update over the air and enjoy!

https://image.nostr.build/4fc9a5728158b7ac6263632e3f353f4521ff7b198371a9726132f910ee0084bd.jpg#m=image%2Fjpeg&dim=1079x1322&blurhash=_JHnpT-%3AIo%3FGIo%252%251xtIVIV%252NGxat6%7EVNGIoNGj%40ayRk0Lt6jZNGxtRkM%7C-ojZRjkBt6R*WC9aayt6ofWVR*oLoeayofs%3AWBayayNGoLt6WCWVoLoLayj%40j%5Bj%5Bayj%5Bj%5B&x=b6b0732f56e50b2adb8cd9fe59e47ede77ee763d3c9913f128bc8eb3efe837c5


Your Minibits wallet font made me to zap instinctively!


Withdrawing from a lightning atm using #cashu with minibits 👀🥜⚡
#sovEng 🏴☠
https://video.nostr.build/80524eaba1ecf55ba5123f770607f38e45c228344207deb2a86168fb34e015c9.mp4#m=video%2Fmp4&dim=528x960&blurhash=%5DHBDm7.T%25gaJR4%7EVRit6ozozz%3AMIn4krtl%24jR6nkozW%3BtlOYX8s9V%40t%2CpIo%7DV%3FVsNebIozj%3Fs.MdVYnit7tRi_n%25aee.WB&x=40cef3ecd74cb598e98845506fd1596249bf97e0c1110ccfe8a6ffe9d2725fbe


Any reason for bluetooth instead of nfc?


I do and this is fresh new nostr account dedicated to Minibits.


Sorry, stumbled only now over your note.

Were you able to receive? Android kills websocket connections here and there so either reconnect to relays in settings or restart the wallet. According to lightning2ecash bridge logs the token has been published as an encrypted dm to default relays.

If nothing arrives, ping me and I'll send the token to you.


Minibits uses it's own relay and few public relays as a backup by default.

You might want to send ecash to somebody who's not using minibits and his nip05 address server does not announce his relays. Then you'd need to add manually.

Or you might want to publish all your wallet comms over nostr to your own relay.


Sorry for annoying error, has been due to the mint upgrade that required further patch. Fix landed yesterday, mint works as expected from then on.


Sorry for annoying error, has been due to mint upgrade that required further patch. Fix landed yesterday, mint works as expected from then on.


This seems to be related to setting WoS as a default app for opening lightning deeplinks. Unset it and android will offer all apps listening to such links including Minibits.


If you want to receive zaps as an ecash to Minibits, just link your minibits wallet address to your public profile in nostr client you are using.

You'll then receive zaps as an ecash to Minibits. You don't need to be online to receive, ecash waits for you on the nostr relays.

You can then time to time withdraw from Minibits to any self-custody lightning wallet by scanning or pasting an invoice / address.


Minibits gives you name@minibits.cash wallet address that acts as a nostr nip05 address and as lightning address at the same time.

When you receive ecash to your address, it will wait you as a nostr dm on nostr relay until you open the wallet.

When you receive sats from any lightning wallet or as a zap (if you limk it as your lightning address to your public nostr profile), minibits lnurl server will exchange it to ecash once again delivered to you as dm over nostr relays.