This page contains all of the most up-to-date release notes for Tari Aurora.
Review the release notes below.
Hello everyone! In this release we are introducing a big change to our project…..the new and shiny Tari address format! Are you excited already? 😅
The new Tari address can now be split into five components: network, features, view key, spend key, and checksum. It’s still represented by the collection of the emojis, however, its “raw” form is now not a hex but it’s encoded to Base58.
The network is always the first emoji in the address where:
This approach will help our users quickly verify that the address is on the right network.
The features data is a second emoji and it contains the information about the features available for that address. Every bit in that byte encoded into that emoji represents a single feature. Currently, the address uses only the first two bits:
The view key is an optional, 32 emoji-long address component that is used to make one-sided transactions. Without a view key, the receiver’s wallet is unable to perform a Diffie-Hellman key exchange and decrypt the transaction.
The spend key is a 32 emoji-long component that represents the wallet. It’s basically a component that the “old” wallet address was before the change.
The checksum is a calculated value that can verify that the whole address is valid. That’s all. It’s nothing to see here.
So, the concept of the view key allows you to have a cold wallet or a wallet that scans the blockchain for you.
Well, that change touches almost every aspect of the App. From transactions to contact book and from the deep links to Bluetooth sharing, every single App feature is now using the new Tari address format. This update required a few changes in UI to make the whole address human readable.
First, we removed almost all appearances of the avatars from the app. The first emoji is now always the same inside the one network, so there is no reason to show the first emoji next to the name/alias and address.
Second, we replaced the old address bar with a new one. The new bar is showing the network, features, and the truncated spend key.
However, if you want to see the all address components, then the only thing that you need to do is to click on the info button on the right. From this place, you can also copy that address as emojis or Base58 encoded.
…and that’s all for today. See you soon!
In this release, we focused on security, stability, and fixing reported issues. 💪
To make our App more secure we introduce two new features:
Address poisoning prevention system
We are aware that some of the Tari addresses can be similar to each other and you can accidentally send tokens to the wrong address. To prevent that, from this version onward, whenever the App detects a similar address in your transaction history or your contact book it will show a dialog that compares both addresses and allow you to select the right one.
Screenshots and video recording prevention
In this release, we disabled the possibility of making screenshots and screen recordings when the App is on the screen. You can always disable that option from the settings menu. However, the screen with your wallet’s passphrases will always have that feature turned on due to security reasons.
Now, whenever the App starts running it will check and sync the list of available base nodes. This will help establish and maintain a stable network connection.
Coinbase transaction maturity
The app will now prevent users from using, joining, or splitting Coinbase’s UTXO before it matures on the blockchain. The coinbase’s transactions require far more (700) blocks to mature than regular transactions.
New block explorer
We have finally reenabled access to the block explorer. Now you can use a new and improved version of this tool directly from the App. You can access it from the transaction details screen or the settings menu.
In this release, we focused on stabilization, small UI/UX improvements, and fixing reported issues.
Users have been reporting that some of Aurora’s features are difficult to find or are in unintuitive locations. We’ve gone ahead and moved them to where you’d most expect to find them:
For better transparency, we’ve added a data collection consent dialog. We don’t want to collect any data from your device without your consent. To be clear, we’ve never collected personal data, only diagnostics related to the operation of the app. So, from this version onwards, we will ask you once on start, about permission to send anonymous data (logs, device type, OS version, etc.) that will be sent with crash and bug reports. You can always change that option from the settings menu.
And you always have the option to build a MAX PRIVACY version of Android from source that does not use any Apple, Google, or other 3rd party services. We have fixed an issue with connection with push notification services. The App will again be able to get push notifications.
In this release, we were focused on improving the user interface and overall user experience. After the update, you should see some significant changes in the UI. We hope that you will like the App’s new look.
The new home screen is the most significant change that we made in this release. It has a completely new, clean look with a nice, mellow, animated background. From this screen, you can now:
That’s a lot of functionalities encapsulated into a user-friendly UI. We hope that the new home screen will be much more useful for you than the old one.
The transaction list was moved from the home screen to the separate view accessible from the home screen. The new screen remains almost unchanged with two small changes. First, you can search the whole transaction list using the search field at the top of the screen. The second is that the UTXOs wallet is now accessible from the screen instead of the home screen. To see your UTXOs you need to tap on the button in the top-right corner.
The “Send To” screen also gets a new coat of paint. The new screen now looks similar to the contact book. The new list is split into three sections. First is the row that allows you to start the transaction using data from another device shared by Bluetooth. The second and third section are the same as in the previous version, the first is the three most recent contacts and the second is the list of all contacts that the app keep locally.
The new QR code scanner gets a minor UI update and a major functionality improvement. The new scanner now acts differently depending on the context. Now, if you scan a QR code that is expected by the current context (e.g. contact details when you open the scanner from the “send to” screen) that information will pass back to the screen that is waiting for that data. However, if you scan any other QR code type that is recognizable by the app, then the scanner will want to perform a default action for that data type. If you approve that, the action will be performed and the app will automatically close the scanner. Of course, if scan the QR code that isn’t recognizable by the app then the scanner shows you an error.
The new app version will use the new version of the FFI library that is incompatible with the previous one. On start, you will be asked to remove your current wallet and create a new one. The new nodes are already working with a new version, so you shouldn’t experience any connectivity issues after the update.
Like in almost every release, we fixed several issues reported by our users. In this release, we fixed issues where in some cases the app was crashing, sped up some animations, and fixed UI issues that appeared on some devices and/or OS versions.
In this release, we focused on improving and extending existing functionalities. Using Bluetooth Low Energy you can now initiate a transaction, the contact’s menu has now a quick action menu and the app is now connecting to the new network. More about that below.
After the update, you will be able to initiate a transaction using data from the nearby Bluetooth-enabled device with our App installed on it. To do that, the only that you need to do is to go to the contact book, tap on the “Bluetooth Connect” button and put your device next to the receiver’s phone. The App will automatically get the receiver’s public key and initiate the transaction flow.
In this release, we replace the capsule menu with a new rotary menu as a quick action menu presented when the user selects the contact. The new menu is capable to show more buttons than the previous menu that have very limited space for that. We hope that you will like the new UI.
We are making one small step towards MainNet. We decided to switch from NextNet to StageNet. This network will be a non-production version of MainNet so now you can “taste” how the MainNet will look alike.
We hope you enjoy the new features! Please provide feedback on Discord, or at [email protected].
In this release, we continued working on the contact book. The new screen has now become a hub where you can easily manage all your contacts and transactions. The most prominent changes are:
Since the last release Transaction and Contact Book screens shared some functionalities. We decided to remove that redundancy by removing the transaction screen and moving the remaining features from the transaction screen to the contact book and user’s profile screens. Now, you can send your tokens from the Contact Book screen by selecting them from your contacts list or searching by name, Tari address, hexadecimal public key, or Yat. The request Tari feature is still available and was moved to the user’s profile page.
To improve the way how our users share their contact we decided to improve that functionality. Now, you can select and share multiple contacts from your contact book. After selecting contacts you can share them in one of the four methods. You can:
You can share your own contact using the methods described above, directly from the user’s profile screen and the “visibility” of your device from the settings menu.
That’s all for this release, we hope that you like the way how we improve the app. See you next month with another update.
In this release, we focused solely on the contact book, a new tab where you can check and interact with the contacts from the app and your’s system contact book. Let’s dissect it into parts:
This is the place where everything starts. It’s a list of all your contacts and Tari addresses. From this point, you can interact with your contacts using a fast menu. To show it, you need to tap on the contact.
The possible actions depend on the contact’s type. You can send Tari, mark a contact as a favorite, link your Aurora contact with the contact from your phone book, and show the contact’s details.
From this screen, you can also see all your favorite contacts by selecting the “Favorites” tab, and add a new Aurora contact by taping on the add button in the top right corner.
This screen shows all additional contact info and allows you to edit some of the details. As with the fast menu, from this point, you can send tokens, mark a contact as a favorite, and link it with another contact.
Using the edit button, you can also edit the contact’s name and link a Yat to this contact (this option is available only for the phone book and linked contacts). If the Yat has BTC, ETH, or XMR wallets attached to it, you will be able to interact with them by clicking on the buttons that will appear at the bottom of the screen to navigate to the 3rd party wallets installed on your device (like Trust or Cake Wallet).
We have already mentioned that in this release you will be able to link Aurora’s contacts with contacts from your phone book. Associating contacts gives you a few additional benefits. The linked contact will use the name and picture from your phone book and show it in the transaction list, transaction details, or contact list.
Secondly, contacts in your phone book with attached emoji ID or/and Yats will have additional rows/buttons. Contacts with emoji ID will now let you send Tari directly from the contact book! Contacts with Yat will move to the Yat page after you tap on it.
We are still working on the contact book feature, so you should see more quality-of-life improvements related to contacts and emoji IDs. Stay tuned!
This release focuses on implementing staged security. This philosophy is geared towards keeping users’ funds safe and secure while keeping out of their way as far as possible.
In this release, we reenable the cloud backup functionality. However, the feature is now more secure. If you don’t set the password for your backup, Aurora will perform a minimal backup, storing only the UTXO spend keys to your cloud account. To perform a full backup, which includes transaction notes and contact aliases then you must specify a password to encrypt your data.
We have added a simple system to give you more feedback when backing up your wallet. Aurora now displays a pop-up with information on what you should do to secure your funds. The information differs depending on your current security level/stage and balance.
We’re aware that some of the new staged wallet security features can be confusing the users. To make it easier to understand, we created short onboarding accessible from the backup settings menu or directly from reminder pop-ups.
Pop-ups queue. The App will now show pop-ups one-by-one to be sure that you don’t miss any info.
We fixed a few minor bugs reported by our users.
Hello, hello, the new year is just around the corner and we just pushed the last release this year to the Apple and Google app stores.
Dark and Purple color schemes are in the house! From this release, you will be able to switch between one of the three color schemes or just use the color scheme used by the system. To do that, visit the “Select Theme” section in the settings menu and select the right option.
"Dark" Color Scheme
"Tari Purple" Color Scheme
To improve our users’ safety, from this release, the App will automatically remove old log files from the App’s local storage. The remaining files will be used only for bug-fixing reasons and will be sent to us only with your bug reports.
We are now working on major changes related to the backup security. To move forward, we need to disable all cloud backup options till the next release. For more information about it, please check this document: Staged Wallet Security.
…and that’s it. That was the last blog post this year. See you again next year!
Hello again! We just released a new version of the mobile wallet to Google and Apple stores, where we focus primarily on streamlining and fixing the existing functionalities. But, as always, we found some time to introduce something new. This time, we extend the backup functionality. More about it below.
In this release, we added Dropbox as a new backup option. Now, you can use the new option as your backup service of choice or use it alongside the already existing backup option (iCloud Docs on iOS and Google Drive on Android). Backups will be automatically uploaded to the selected services whenever the balance or transaction list changes but not often than once per minute.
This feature is not available on the private build of Aurora.
We replaced the mail composer with a simple bug report screen. We hope the new screen will improve communication with our users and give us a better picture in situations when something isn’t working as it should.
The debug menu finally has a unified look. The main menu now looks like the rest of the app, and the log’s list UI was significantly redesigned.
Both the Tari protocol and Aurora are in the development stage. This means that from time to time, something needs to be reset/removed/updated/etc.
We want to make the experience of using our app as smooth as possible, so, in this release, we added a very simple functionality that informs you about breaking changes in the protocol or application.
Case in point: You will see this pop-up after updating to 0.17.0 because of the recent Esmerelda reset and be directed to create a new one.
That’s all…for now. See you next month!
Hello everyone! We’re back after a long break. Since the last release, we have worked on the bundle of internal and external improvements that moves our App a step ahead toward version 1.0.0. So, let’s not waste more time, and show you what’s new in this release.
Tor and Tari network are two cornerstones of the Aurora app. Managers that handle their connectivity have been part of the App from the beginning. However, the App has been in development for a long time, and many things have changed since then. To have better control over the connection process and improve the safety of your actions, we decided to improve how we handle the connection and data validation processes in the App. We developed new, single-purpose managers that monitor and manage connectivity states. All these micromanagers are now monitored by an independent handler that acts depending on the Internet, Tor, and Base Node connection state.
In this release, we also checked our UI components and fixed all issues we found. We were able to find and fix the following:
We also have time to fix a few of the most commonly reported issues:
On Android:
On iOS:
One of our goals in this release was to improve the privacy of our App. Tari is a privacy-centric project, so naturally, we want to incorporate this philosophy into the Aurora project.
From the first release of Aurora it has been possible to build a “private build” that strips all functionality involving Google services and user-improvement tools (aka trackers) from the app. However, we do include some of these libraries in the store version of the apps to help us diagnose issues and bugs.
As part of this release, we reviewed the code related to our loggers and made some key changes. We completely removed the Matomo tracker that sends us anonymised information about user activity. As an aside, the Matamo instance is self-hosted by Tari Labs and data does not go through any 3rd party servers.
On the other hand, to compensate lack of information needed to reproduce issues sent to us by our users, we implemented a “breadcrumb” functionality where we added additional hints about the actions performed just before the issue (or crash) appeared. This information is 100% anonymous, stored locally, and sent only with a bug or crash report. 🔎
Last but not least. In this release, we switched the network that Aurora is connecting to. The new network is called Esmeralda (or “Esme” in short) and is the first stable Tari network. At the same time, we’re dropping support for the Dibbler network due to the incompatibility between them. So, if you still want to play with the old network, you shouldn’t update the App right away.
Ok, that’s enough for today. I hope you like all the changes that happened under the hood. Till next time!
In this release, we introduced an exciting new feature for Aurora power users - the coin wallet.
Blockchain systems like Bitcoin and Tari keep track of value through Unspent Transaction Outputs (UTXOs). UTXOs are just like the coins or bills stored in your physical wallet.
When you buy something for $3 in a store and you only have a $10 bill, you hand over the entire $10 bill and wait for your item and $7 in change.
Tari works exactly the same way. The only difference is that our “bills” can be in any denomination. They’re not limited to 1, 5, 10, 20 and 100 denominations like fiat money is.
Your Tari wallet is a collection of unspent coins. When you send Tari to someone, you have to spend one or more coins in their entirety. Once the transaction is mined shortly thereafter, you receive a new coin representing your change.
If you only have a single 10,000 XTR coin in your wallet and you send someone 1 XTR, you’ll see your available balance drop to zero for a spell until your change becomes spendable.
This is the same reason you see the infamous “Hold your horses” error message when trying to send multiple transactions one after the other.
The new Coin Wallet feature in Aurora fixes this!
The new Coin Wallet screen shows you the coins you have in your wallet. It lets you break up big coins into smaller ones and avoid having to hold any horses ever again.
You can also combine smaller coins into larger ones. If you hate carrying large amounts of change in your wallet – even if it is a digital wallet – then this option is for you. (For reasons we won’t get into here, combining coins is also a good security practice if you receive a lot of one-sided payments).
Your coins are displayed graphically, with higher value coins being larger than lower-valued ones. You can also see which coins are spendable, or are still being confirmed or are time-locked.
We hope you enjoy this feature! Please provide feedback on Discord, or at [email protected].
Hi everyone!
We just released a new version of the mobile wallet to Google and Apple stores. It’s a minor update, but it’s just the calm before the storm. The few subsequent upcoming releases will bring some bigger and more exciting changes.
Stay tuned!
We’re slowly preparing for the mainnet (#whenmainnet). We want to be ready for unexpected activity peaks on our network after we switch to the production network. So, from this release, we’ve added the possibility to adjust your transaction fee when there is congestion on the network. This option remains hidden if there isn’t any reason to manipulate the fee at the moment (e.g. when blocks are not full), and the fee will be automatically set to the minimum.
We noticed that some of the animations are sluggish or have unnecessary delays. With some help from our UX team, we decided to speed up some of the animations to make our up more responsive.
We also found a time to fix several bugs reported by our users.
That’s all for this month. See you next time!
Another month, another update! This month we focus primarily on existing usability issues. We hope that you will like those small changes that make our App even easier to use.
If you want to know more about the block with your transaction I have a good news for you. From this release you will be able to check info about the block by opening the block explorer page directly from the transaction details page.
We noticed that the wallet recovery process could fail unexpectedly due to the problem with the connected base node. To improve that process, we added a possibility to select the base node used for recovery before you start the process.
A one-sided payment transaction doesn’t keep any info about a message and gif that you can send to the receiver using a regular transaction. In this case, showing the “add a note” screen to the user is nothing more than a useless choir. To simplify and speed up the process, we removed this step from the transaction flow for transactions marked as one-sided. This makes one-sided payments even faster than before!
In this release, we also make a few eye-appealing changes to some of our UI components. First, we added icons to the options in the settings menu. This change should allow our users to find the right option much faster. Second, we updated our pop-up functionality. Now it’s based on the new view hierarchy, which helps us build and show modular pop-ups much easier and more standardized way.
The first day of the astronomical spring is behind us. So, it’s time for a spring cleaning!
We updated the UI of the transaction list, transaction details, and the seed words list screens. The first two will now show tailored information about the one-sided payments. The last one was updated to match the style used in the other part of the app.
The app will now be able to handle the QR codes and deep links with the new data structure. Don’t worry if you are still using old QR codes. Aurora will support the legacy format for the next six months.
More about the new format here
The Android App will now be able to configure custom Tor bridges, request the Tor bridges configuration from torproject.org, or scan the QR with the configuration for the settings menu.
Every spring cleaning can’t be done without squashing pesky bugs hiding in the corners. In this release, we fixed several bugs reported by our users.
What’s up? We’re constantly working on improving the Aurora wallet. The new version of our app with some fascinating new features just hit the Android and iOS app stores.
With this release, we’re introducing a new way how you can send tokens. Now, you can send funds to another user even if they are not online. One-sided payments can be significantly faster than regular transactions. However, this type of payment isn’t entirely anonymous, so please be aware when you choose this type of payment.
We improved the way how the app presents error messages. Now, some messages will have a technical error code at the end. This code can be used in communication with our service desk. We want to extend this functionality to cover all errors over time in the future.
Now, when you visit an invalidated transaction details screen, you will see short info about why it was rejected.
You will now be able to visit the block explorer page directly from the app. To do that, you need to go to the settings page and tap on the “Block Explorer” button.
App Will now present the app version at the bottom of the settings screen.
We just released a new version - 0.10.0 - of the Aurora App in both the iOS and Google Play stores. This version contains a few exciting changes that we know you’ll love!
With this release, we also announce the end of Tari Labs’ 32-bit support for Aurora. With essentially zero 32-bit devices running Aurora out there, we don’t have enough test miles to say that the backend library (written in Rust) works perfectly under all scenarios. Anyone wanting to compile 32-bit versions for their own purposes is still able to, of course. But TariLabs won’t be providing 32-bit binaries as of v0.10.0.
In this release, we’re dropping support for Weatherwax and Igor networks and upgrading to the latest testnet: Dibbler. After the update, our users will be logged out and navigated back to the welcome screen.
You can now generate invoices with Aurora!
With our new “Request Tari” screen, you will generate a QR code that, when scanned, will populate the “amount” and “receiver” fields in the sender’s app.
This is going to be so handy for saving up towards those new Lambos.
Thanks to feedback from the community, your profile screen will now indicate whether you’ve connected a Yat to Aurora. This is a huge quality of life improvement and brings Yat and Tari even closer together.
The app will now highlight the invalid seed words on the restore wallet screen to make a restoration process even easier.
The new version of the Aurora App just hit Google and Apple apps stores!
In this version, we added a few quality of life improvements that make our app more accessible and pleasant to use.
We noticed that restoring the wallet from seed words isn’t an easy process. To improve and speed up the process, we added an autocompletion feature that allows you to select the correct word without entering the whole phrase manually. The seed word encryption algorithm now includes your wallet’s birthday, so that only the portion of the blockchain that is relevant to your wallet is scanned rather than the entire history. This is an enormous optimisation and one that only improves with time.
Unfortunately, this is a breaking change and restoring from old seed phrases will no longer work. (We wouldn’t do this if it wasn’t testnet).
Important note: You will no longer be able to restore your wallet from seed words if it was created with an older app version.
Aurora is now supporting more eye-appealing, full-screen Yat visualizations.
Important note: Yat integration is still in beta, so some functionalities can be changed or improved in the near future.
In this release, we improved how we encrypt your wallet-related data and speed up the process of gathering and handling data related to the balance.
Important note: The new encryption method isn’t compatible with the old version of the Aurora wallet. Your wallet data will be removed after the update.
Hello there! We are back!
We just released the new version of the Aurora App to the Apple and Google apps stores.
What’s new in v.0.8.0? 🤔
Important note ☢️
This update is incompatible with the previous app versions. You will lose access to your wallet and iCloud backups after the update.
One more thing!
A few days ago we launched our discord channel. Consider joining our growing community for more information about Tari and Aurora app.
Attention, Aurorans! Users on this newest version will not be able to transact with users from earlier versions, and vice versa.
Why? The emoji set used for addresses was changed to thwart Telegram, which has a nasty habit of borking many Emoji IDs pasted there by changing their gender (and thus their underlying unicode).
Also, you can now back up your wallet. If you’re not into emojis, one might hope you’re still into securing your fake money. Hit the gear icon on the profile screen to back up your wallet to iCloud on iOS and Google Drive on Android, so you can restore it onto a different device if your phone is lost or broken.
The complete list of updates for iOS:
The complete list of updates for Android:
Android Private 0.2.0 release notes:
The Tari Aurora private release removes all requests to central servers (Tari tXTR faucet, Tari push notification server, Tari Matomo analytics server and Tari Sentry bug reporting server) from the regular release. It also removes the Google APIs used for backup and restore feature, which means there’s no backup and restore support in the private release as of v0.2.0. You also won’t be able to get free tXTR since a request needs to be made to the Tari central faucet server.
The private release APK can be downloaded here: https://github.com/tari-project/wallet-android/releases/tag/v0.2.0-jniLibs-0.13.0
Previously, you could not receive or complete Tari Aurora transactions without opening the app in the foreground each time. Now, transactions will be able to silently complete in the background thanks to new app extension background sync functionality. If this process fails for any reason, you’ll receive a push notification.
And if that’s not enough for you…
iOS v0.1.14
Android v0.1.14
The Aurora wallet keeps getting better. Some really exciting new features in the latest Aurora wallet release.
iOS v0.1.13
Spring is a time for small pleasures: Flowers blooming. Birds chirping. Better visibility around network status and progress when you first send a transaction.
Other changes aside from the new animation above:
Android v0.1.13
The Aurora wallet keeps getting better. Some really exciting new features in the latest Aurora wallet release.
Tari Aurora v0.1.3 (iOS)
Shiny new features:
Boring but still useful:
v0.1.11 (Android)
WHAT’S NEW
Minor bug fixes.
Version 0.1.0 marks the first official release for the Tari Aurora Wallet. Here are some of the highlights in this release.
Tari Aurora is useful from the start
Tari Aurora focuses on driving engagement around tXTR for all potential users, not just developers.
A faucet server automatically gives every installed wallet some tXTR to experiment with and send. The friendly Tari Bot then teaches new users how to send their first tXTR transaction with Aurora.
Users can also visit the TTL Store, hosted by Tari Labs, where tXTR can be redeemed for exclusive, limited-edition Tari merch. Users are encouraged to send and receive Tari, run a full node to mine, and build up enough balance to claim exclusive swag.
Thinking beyond the traditional address
We have worked very hard on this release to make Aurora a seamless, intuitive user experience.
In Aurora, we introduce users to the Emoji ID 👋🐴❤️🚢. Your Emoji ID identifies your wallet on the network. Behind the scenes, the wallet handles the generation of unique spending keys for every transaction. Rest assured, all the privacy and confidentiality benefits imparted by Mimblewimble are maintained.
Aurora has an address book that acts and feels like any other local address book on your phone. Once you assign aliases to emoji IDs, you can send XTR to your friends and family as easily as you would send a meme.
Tor-enabled privacy
All direct communications between peers are end-to-end encrypted.
The Tari Aurora wallet makes use of Tor out of the box. Every time the app starts, a hidden onion service is created behind the scenes, ensuring IP address obfuscation and that all your communications between yourself and other nodes and wallets on the network are entirely private.
Nearly all cryptocurrency wallets make use of a proxy server or other centralizing system to simulate peer-to-peer communication between wallets. Mobile phones generally do not allow for incoming connections. Try establishing a direct Bitcoin Lightning channel from one phone to another in any of the most popular non-custodial lightning wallets; this problem will manifest.
Tor allows Tari Aurora wallets to be first-class citizens on the Tari network and speak to each other directly. This enables us to build the foundations of an actual peer-to-peer communications and cryptocurrency network[1].
In this release, the wallet communicates with a set of whitelisted base nodes to obtain chain data. We are exploring how to mitigate or remove this limitation in the future. In the meanwhile, anyone can configure Aurora to point to their own node.
When a wallet needs to make a connection to a peer that it does not have routing information for, it will send a “Discovery Request.” This encrypted message is routed through the network’s distributed hash table, which means that other nodes will be able to perform network analysis.
Pioneering Rust in a mobile environment
For the more technically inclined, here are some details about what is happening under the hood.
In Android, the wallet library runs as a foreground service, which means that we don’t have to make use of Google’s push service to notify the user when transactions are incoming. Unfortunately, this added privacy is at the cost of higher battery consumption, a trade-off we are willing to make at this stage. Currently, we are working on methods to reduce power consumption while providing superior privacy.
The lib_tariwallet engine is written in Rust, with C-bindings to the JNI and Swift codebases. This means that both the iOS and Android apps have exactly the same wallet library codebase under the hood. The Tari communications stack is used to communicate with peer nodes and other wallets.
Using Rust means that the wallet library has robust performance and memory guarantees. But this is a first release,so there are bugs and wrinkles to squash, smooth, and iron out.
Rust is a great language, but it is still very young with many parts of the ecosystem immature. We were largely on our own in figuring out how to build, deploy, and execute Rust code inside two mobile operating systems. This was especially tricky since early versions of lib_tariwallet had to bring their own versions of the ZMQ messaging service (a C/C++ library), the libSQLite database (C) and the LMDB memory-mapped key-value store (C) and teach them to play nicely with the native operating systems; both of which are very stingy when it comes to providing resources to network-heavy libraries like these. Fortunately, we’ve recently dropped the dependency on ZMQ. And are exploring how to reduce additional dependencies to minimize the install footprint of the wallet and reduce the surface area for bugs.
[1] Full disclosure: The iOS app makes use of Apple’s Push Notification Service to wake up the app when handling incoming transactions. This allows us to provide real-time responsiveness in the Aurora wallet and a far superior user experience.
We also collect anonymized data about app usage on a self-hosted Matamo instance.
The Aurora wallet is entirely open-source and hosted on Github (iOS and Android). You are welcome to inspect the code to see what data is collected. It’s also possible to remove the Matomo analytics and push notification code. It will not affect the overall functioning of the wallet, except where it impacts user experience (such as having to have the wallet in the foreground to receive funds on iOS).