Skip to content

Releases: minibits-cash/minibits_wallet

v0.1.8-beta

29 May 10:04
Compare
Choose a tag to compare

With v0.1.8-beta new Minibits architecture for receiving zaps and all lightning payments to minibits.cash addresses comes out.
Realtime encrypted notifications, claim ⚡sats on wallet start 🚀

Current implementation over nostr relays has few serious set backs:

  • communication through relays is slow when receiving many zaps at once
  • notifications shown are local, triggerred only when the app is in the foreground so missing primary use case
  • very difficult to keep websocket connection stable on mobile device

So what is coming in v0.1.8-beta:

  • optional push notifications delivered even app is closed / backgrounded (off by default for new installs, enable in Settings!)
  • firebase messaging is used only as a data carrier. Notification shown is constructed only on device
  • all data encrypted to keys living on device only
  • ecash is never sent through notification, it is claimed by wallet on wakeup using api sending all claimable tokens as a batch over TLS, with tokens encrypted to device keys again, so that MITM or some api auth leak won't leak your ecash to an attacker
  • claiming fully works without notifications enabled.

What's new apart from notifications:

  • more logical navigation to Send / Receive based on user feedback from v0.1.7-beta giving choice to transact ecash or lightning
  • new recovery tool to recover wallet address only from Settings for cases, where balance recovery is not necessary, such as moving wallet to new device

Untitled-2024-05-27-1350

v0.1.7-beta

14 May 11:38
Compare
Choose a tag to compare

minibits_units_800

New native release of Minibits wallet is out! Minibits now supports multiple currency units issued by mints. With this change, wallet adapted heavily its UX and navigation:

What's Changed

  • Wallet paged screen is now organized by units, not by mints. Last visited unit is remembered and shown on next start.
  • Lighnting (topup and transfer) transactions are initiated in selected mint context (you can still change your mind and select another mint before submitting transaction)
  • Send and Receive bottom buttons now handle Ecash transactions (could be further adapted based on feedback)
  • Mint balances colors are now not random but aligned to currency units
  • Selected mint, unit and balance is shown in header when making a new transaction
  • Lightning and ecash transactions have been redesigned
  • UI of completed transactions screens were redesigned and aligned
  • Donation UX has been improved (and donation for custom lightning address increased to whooping 500 sats)
  • Mint information kept by the wallet can be now refreshed, e.g. in case the mint lists new currency
  • Nostr relays can be re-subscribed to using new button on Relays screen header
  • Transactions moved to own bottom tab
  • Wallet profile and address is accessible from wallet screen and address can be copied
  • In-progress preparation for full support of i18n translations
  • Overall upgrade of used libraries and React Native version
  • Wallet now fully uses v1 Cashu API specification when talking to the mints

Attention

  • Before upgrading make sure you made a backup of your mnemonic phrase
  • Updating includes one-time migration of data model and reset of recovery indexes because of cryptographic changes. In order to keep recovery using mnemonic phrase working, balance remaining in the wallet during upgrade should be sent to yourself or through another wallet (in a fact swapped by the mint for fresh Ecash). To avoid unnecessary risks, you can empty balance before upgrading and then move it back again.

What's missing

  • Internal Tor daemon had to be removed because of incompatibility with newer platform versions. Help to make it work from someone with deep java / android skills would be appreciated
  • Signing of APK binaries (to be done soon)

How to install

For those using Google Play Store, download Google Play release
For all others, there are now platform-specific APKs that have much smaller size to download. Universal APK remain available.

Special thanks to contributors

https://github.com/deerwhisper2310
https://github.com/KraXen72

Full Changelog: v0.1.6-beta.31...v0.1.7-beta.5

v0.1.6-beta

06 Feb 10:17
Compare
Choose a tag to compare

This release contains multiple changes and critical bugfixes released in the past weeks in multiple 0.1.5-beta over the air updates. Release equals functionally to v0.1.5-beta.37 version.

However, for all users of .apk package it is highly recommended to update as the new over the air updates will target 0.1.6.-beta version number and thus won't be delivered to older .apk installs

List of packaged changes comapred to the last v0.1.5-beta native release:

If your device has Google Play Services, you can install smaller application bundle optimized for your device architecture:
Google Play release

v016

v0.1.5-beta

12 Dec 23:42
Compare
Choose a tag to compare

Minibits comes with seed-based backup, that allows you (in cooperation with the mint) to recover your ecash balance in case of device loss.

How does the recovery work if the mint does not keep any context for particular wallet? Wizardery is achieved via ecash (blinded messages) created using so called deterministic secrets - where normal ecash uses random secret to be created by the wallet and (after blinding) sent to the mint that signs it, in this case, ecash secret is created using special derivation path that includes serial index incremented for each ecash note.

In case of device loss, new wallet is able to pre-generate bulks of ecash notes and provide them as blinded messages to the mint. If the mint tracks the same notes as issued, it re-signs the messages and returns them back to the wallet, that allows the wallet to effectively recreate lost ecash balance.

Find the detailed description here: https://det-sec.gandlaf.com/

How to backup?

Go to Settings > Backup and Restore > Off-device backup and copy the 12 words mnemonic and save it outside of the device.

What are the limitations?

After upgrade, existing balance is NOT automatically backed up (as it was created using random secrets). To kick-off the backup, existing balance needs to be sent and received. Easiest way is to send/share ecash, copy the generated token and then receive it immediately by pasting back to the same wallet.
Working backup is apparent by going to Settings > Manage mints and tap on any mint. At the bottom of the shown modal windw, Current recovery index is shown and should have above zero value.

How to test the recovery?

  • Test only with low amounts or with your own mint
  • Copy the 12 words mnemonic and existing mints URLs
  • Factory reset existing wallet (Settings > Developer options > Factory reset)
  • Start the wallet again and after intro slides, choose Wallet recovery
  • Paste the mnemonic, add mint(s) URLs to recover from and Start recovery. You will see the progress and any recovered balance. In case of wallets with longer history, repeat the recovery for higer recovery index intervals to get to unspent ecash.
  • Try to send and received recovered ecash. If you'll get errors, please turn on logging in Privacy settings and set log level to debug in Developer options and replay the transaction leading to the error + raise an issue on Minibits Github https://github.com/minibits-cash/minibits_wallet

What are the limitations?

Recovery currently works only for keysets currently used by the mint, not for the past ones rolled out by the mint. This will be implemented later.

Google Play release

minibits_v015

v0.1.4-beta

11 Nov 22:27
Compare
Choose a tag to compare

This release re-aligns .apk releases with Google Play releases. Because of prolonged approval times, app version with Tor daemon has been so far available for download only as a standalone .apk release on Github. Now that it is available on Google Play Store, versions and features of both releases are identical once again.

This release packages multiple bug fixes and feature improvements that were released using over-the-air updates in the meantime:

  • Privacy setting to turn on or off error logging
  • Set log levels in developer settings
  • New payment requests UI

Google Play release

v0.1.3-tor.2-beta

28 Oct 21:57
Compare
Choose a tag to compare

Release contains a fix to allow connections to the mints behind Tor using .onion addressed over cleartext HTTP.

v0.1.3-beta

26 Oct 09:49
Compare
Choose a tag to compare

New Minibits wallet version focused on interoperability and privacy:

Minibits v0.1.3-beta now becomes full member of Lightning ecosystem:

  • Reacts to lightning, cashu, lnurlw and lnurlp deeplinks
  • Allows paying to static QR codes, links and lightning addresses, including NOSTR zaps (LNURL Pay)
  • Allows withdrawals into the wallet from services supporting LNURL Withdraw

On top, univarsal .APK of Minibits that you'll find below now has its own Tor daemon, that allows to connect to the mints with .onion addresses. Mints thus does not know the IP address of the interacting wallet.

Another neat usecase is to run your own mint without the need to have public IP address and domain. You can expose it via Tor service that the wallet can connect to without additional networking setup.

Further technical changes include:

  • Completely revamped parser of incoming links and QR codes
  • Decreased amount of error logging
  • Temporary usage of local cashu-ts library until proposed changes needed for Tor support are reviewed, finalized and merged

Google Play release

Many thanks to @swedishfrenchpress, @Ciugam and @callebtc for help and contributions!

minibits_v013

v0.1.2-beta

22 Sep 06:31
Compare
Choose a tag to compare

Minibits has entered OPEN beta testing on Google Play. To install it from the store, head here on PC or tap here on Android.

The same released version is available as a standalone APK, please accept offered over-the-air update after an installation.

Major new features compared to the last alpha release:

  • You can send payment requests to your contacts. Payment requests are lightning invoices that are shared with your contacts over NOSTR relays. Wallet of the receiver notifies and shows incoming payment requests and allows them to pay them immediately.
  • You can replace automatically assigned and random wallet NOSTR profile (with @minibits.cash address) with your own external NOSTR profile. This involves replacing managed private (nsec) key by your own. It means, that you can then use your public NOSTR address as an ecash payment identifier at the same time. All ecash and lightning invoices sent to you as direct messages are then retrieved by the wallet and can be claimed or paid. You can reset back to the @minibits.cash profile, but your keys will be regenerated.

Even much more stable and fetaure-full that alpha, all usage warnings still apply! Happy testing and thanks for all contributions.

minibits_beta

v0.0.8-alpha

28 Aug 00:55
Compare
Choose a tag to compare
v0.0.8-alpha Pre-release
Pre-release

Every Minibits user now gets unique wallet name and picture in the format @minibits.cash that can be used to send coins to. You can change your name if you wish.

New Contacts feature allows you to keep your private contacts at one tap from sending some coins. Moreover, you can now add your followers from your NOSTR account as your public contacts.

This is still alpha release, please follow Github issues for more details about the limitations or any known bugs.

minibits_v008

v0.0.7-alpha

31 Jul 22:23
Compare
Choose a tag to compare
v0.0.7-alpha Pre-release
Pre-release

This release contains:

  • Numerous smaller bug fixes and UI improvements
  • Ability to select coins and send them while the sending device is offline

Offline SEND
You can now SEND e-cash while the device is offline. New coin selection allows to pick exact coins to be sent, without the need to connect to the mint.

With deferred receive while offline released before, Minibits wallet now supports scenarios, where an e-cash can be exchanged with both devices staying offline using QR code. Please note, that receiving e-cash offline means trusting the payer until the receiving wallet can connect to the mint and exchange received coins.

minibits_v007