At the beginning of the month, the multi-coin multi-platform cryptocurrency wallet Jaxx announced a halt to its integration of Monero into its platform. This came months after the originally planned release date and weeks after a screenshot demonstrating a test Monero transaction in action on the wallet.
The abrupt end to the integration process left many community members confused and coupled with some heated community interactions weeks prior, led to speculation that a relational breakdown between Jaxx and the community was at least partly responsible.
However, this appears to have not been the case. Cointelegraph spoke with Anthony Di Iorio, CEO of Jaxx, on the real reason integration with Monero was stopped so far along in the process.
Cointelegraph: First, in a few words, what happened? Why was the integration with Monero called off?
Anthony Di Iorio: It was called off due to us not being able to get the information after the most recent protocol changes that happened in January. There are certain things that we need to be provided to us when we are creating a wallet. I can give you a few different details of things you need. We need to bring certain information to us, things that we can use to get balances, see transactions, things like that… and the new changes that were done in January with RingCT made it impossible for us to get that information, and without that information, we are unable to provide wallet services. That’s basically what it boiled down to.
CT: What was missing with the information? What specifically, and why?
ADI: A wallet such as ours, which is a lightweight wallet, something where clients don’t have full nodes, we need to get certain basic operations, like getting confirmed/unconfirmed balances, knowing when payments are received, retrieving lost transactions and sending new transactions. These are all things that are required in order to provide wallet services.
The problem is that, with Monero, you cannot ask the node for information about your wallet because the transactions are encrypted. It’s one of those balance things when you have privacy in a protocol. It’s one of those things that you always have to balance out and this is what kind of makes it very difficult and made it difficult to work with Monero because initially, we had to do things differently than what we normally do with wallets.
Initially, when we started doing integration, we realized because the things were encrypted we had to do things differently. It wasn’t like any other Blockchain or any coin that we already integrated, so what we did is we used a similar approach in the beginning to what MyMonero does.
We created a lightweight wallet and a node that brings required information to the wallet. There’s a thing called a viewkey and the viewkey is required in order to see the transactions. What we had to do is we copied the model of MyMonero where we were storing people’s viewkeys on a server so that we could check for the transactions in the wallet.
That’s how MyMonero operates, that’s how we operated, that was the path that we were following, and that’s what we were able to accomplish working until the changes were made to the protocol.
CT: What were those changes fundamentally?
ADI: Monero launched a new version using these new cryptographic techniques where it made it that we couldn’t watch some of the transactions and it made the code that we had developed obsolete up to that point. It broke the method that both MyMonero and we were using to get that information that was required for wallet services.
Ecosystem gap
CT: That sounds like it’s a fundamental gap in the Monero ecosystem that could cause some problems with future integration attempts with whatever company might try, is that fair to say?
ADI: What it does provide is it provides great privacy and great security on that side. But yes, it does make things… again, that’s the whole balance aspect of things where you’re getting more privacy and security but you’re losing out on the ability for the development and things that you need to develop the ecosystem around it.
And that’s where the issue is and that’s really why there hasn’t been the amount of development on Monero because the tools and the difficulty and the privacy features make it very difficult for that ecosystem to grow with companies being able to build on top of it and do things to help that ecosystem grow.
Integration false start
CT: Now there have been a few claims that the Jaxx team was in some way dishonest in announcing that the Monero integration was working a few weeks ago. Is any of that true?
ADI: Not at all. It was working. It was working with the protocol as it was working back then, and again, in the same way, that MyMonero was working and once we had it working I announced the first transactions. And that was all before the changes were made. So to say that we were dishonest in it is not accurate. We weren’t able to come up with a wallet as we had wished we could.
Nothing would make me happier than getting the Monero wallet out. We spent a ton of time and resources trying to get it going and to have a currency such as Monero. That is quite aligned with what we are trying to accomplish with privacy and security, it’s just a no-brainer for us to have. It would just be amazing to have Monero as an option inside of Jaxx. But it just wasn’t possible, due to the recent changes for us at this time to be able to continue working and have it incorporated into Jaxx.
High demand for Monero
CT: What is the usual process that you use when implementing a new coin, including how you work with developers or the community?
ADI: The first thing we do is we look to see in the community what they want added and Monero was the most heavily requested token that was being asked for. So that’s the first thing. We’ll see: what are people looking for? What’s getting the most requests? We’ll say “Hey guys, what would you like to see inside of Jaxx?” There was just a ton of responses to have a Monero wallet just because there hasn’t been one. There hasn’t been a graphical user interface wallet, except for MyMonero. To be able to get Monero on nine platforms, which is what Jaxx currently supports, would be a great win for Monero and definitely something that we wanted.
The first thing that we do is we look at it and say: “Ok, what type of system is it? Is it a Bitcoin/Litecoin clone? Is it an Ethereum? Or, is it an outlier?” What we realized with Monero is that it’s definitely an outlier. It’s not built on either of those two, which we already have the infrastructure, the APIs and the libraries, we have all that done for those.
Monero was a start-from-scratch project for us. We started researching to see what existing libraries were available but we had to start from scratch because there were no libraries.
So the first thing we had to do was building the libraries for Monero because they just didn’t exist. Then what we did is we researched different methods to separate the wallet from the node. Because the node isn’t on the client wallet with Jaxx, we’re a very lightweight wallet, we support many different Blockchains, there’s no way that we could have the nodes on the wallet, so we had to look for a way to separate the wallet from the node to be able to provide the wallet services on the client’s computer and have the node separate. What we did was we decided to follow the same approach as Monero. We wrote the lightweight client for it.
We modified Monero Core to provide some of the information that was not available and necessary for a lightweight wallet. We added our node to index all transactions and provide the necessary APIs for getting the balances and everything else that was required. Then we set up systems so that we can have a way to have the viewkeys on our node because without the viewkeys we are unable to see the transactions from the particular wallet. That’s the process we followed from Monero.
The way we usually have worked with developers is usually with a protocol/platform, the developers are working on the infrastructure, they want to have a wallet, they want to have support. This is what we found with a lot of other communities. This is what we got too: we had a lot of assistance from FluffyPony, who was giving us a lot of help, giving us ideas and putting us on the right path.
That’s where we were able to follow the same path of MyMonero and we saw the possibility to create something very similar to what MyMonero was doing. We were able to integrate Monero into Jaxx in a way that one 12-word seed (which is how it works with Jaxx, you get a 12-word mnemonic that allows you to derive all of the keys for any token, any cryptocurrency), so we had to integrate every protocol in the same fashion so that you can always use the same 12 words. The only difference with the other ones that we’ve dealt with before is that viewkey, which we had to put in place, and that’s what we did.
So usually we’re working with the devs, and we’re asking questions. We’re not experts in these currencies. Until we started working on Monero a few months ago, we didn’t know very much about how it worked, we had to learn, and we had to develop tools and develop everything for it. So that’s what was tricky about Monero. There wasn’t a lot of resources out there, there wasn’t a lot of tools and there weren’t the libraries. That’s what we developed all from scratch. It worked with this, we’d been asking questions on different forums, we’d be getting responses, we’d be asking Fully things and he’d be giving us help and guidance on things and that’s how it worked very similar to other tokens and currencies that we integrated.
CT: Did it work differently in any way?
ADI: Aside from really the challenges of not having a lot of the infrastructure already available, I think it was pretty similar to most of the other ones. Looking back, one thing that we may have done better is, usually, the way we work is that we’ll have a Slack channel inside of our Slack channel for the particular currency. It’s difficult for us to be able to put the resources into really getting out there into the community and being able to put the resources to being heavily involved in the different forums in the channels. We just didn’t really have the resources to do it as much as we would have liked to.
We weren’t dedicating 100 percent of our efforts to there because we just couldn’t. We are a wallet that has to keep up to date with all other tokens and make sure things are working, make sure we’re staying up to date with all the other protocols that we’re doing. But we did dedicate about four times the resources that we had for any other token into this project to get this working. It was definitely a lot more effort and a lot more resources went into trying to get this working than we had to do with any other integration.
CT: Will this experience at all change the way you integrate coins in the future?
ADI: It’s tricky because when we started this we were very confident that we had a path to be able to succeed. I did have a concern a few months ago when I reached out to the community saying that “We’re stuck with certain things right now. There are some questions we haven’t been able to get answered, and we’re asking for more support to try to get through some hurdles that we had faced because we were in some new territory.”
One concern I did have is that there would be changes, this is something that I announced a few months ago on Reddit when I said: “Here are the issues that we’re experiencing with Monero: There are not enough tools out there for developers to build on.”
And the concern that we had was that there could be some core changes that would break what we had to architect because of the amount of work that we had to go into the Monero protocol, go and dig in and try to develop everything for it, rather than having tools outside of the protocol, which would enable us to create things.
So we were concerned that changes could possibly be made that would break what we were doing.
In the future, I think we’ll have to set up a better path to make sure that we know and are more informed or do better research to see what changes are coming and what could possibly affect our ability to integrate a new token.
Even though we knew there could be something in the code that could eventually break what we were doing, we still kept on for months working towards that path of “Ok, let’s do it as things are working right now, let’s get it the way it’s working right now, and if/when things do change let’s deal with it then.”
I think I would do a better job of identifying if we may get stuck down the road because of certain changes that might render what we had done, and not waste the resources if we see that there might be potential for changes coming down the road that might break what we’re doing.
Future integration
CT: Will Monero integration ever be back on the table? If so, when, and under what conditions?
ADI: I am very hopeful that the Monero community, who is very focused on that particular community, whereby again, we have to deal with a number of different Blockchains. It’s not that we can dedicate 100 percent of our resources on one particular thing.
So I’m hoping the tools and the infrastructure will be developed in the future and that we’re going to be able to model what we do based on what we’re seeing those really dedicated on Monero doing.
We’re going to keep an eye on the project. Again, nothing would make us happier than being able to have Monero in our wallet. It would make me really happy if in the future we could pick up where we left off and that there would be a light at the end of the tunnel to get us that integration of Monero.
The conditions would be, I think if we see that with the new system there has been a root developed for us to be able to get the information that is necessary in order to create an integration in a light wallet for something like Monero.
Jaxx update
CT: You had mentioned that the Monero release was originally intended to go along with a big update to the Jaxx platform. What will be new in that update?
ADI: What we were realizing is that we were adding more and more tokens to our wallet and we started to get slowdowns and speed issues for certain customers who were having a lot of transactions. When we first started out with Jaxx we started with Bitcoin. Then we added Ethereum. Then we added a few more. And that was all fine, but you start reaching some limitations, especially when you’re dealing with mobile devices, whereby you can’t be doing too much at once.
What would happen is that you would open Jaxx and it would start scanning all these Blockchains and start doing all this work? We didn’t do a very good job with our original architecture of separating the processes on demand. And that’s what we had to do when we realized until we could add more tokens into Jaxx we would need to do an infrastructure overhaul and an architecture overhaul, which would do a better job to separate processes and have things more in an on-demand fashion, so where if you only care about Bitcoin it’s not going to be downloading everything for all the other chains that we integrated. What we’ve done is we’ve segregated all the different chains and the processes on a more on-demand fashion, which enables much better efficiencies, much better user experience for Jaxx and much better speeds on all the different devices that we support. Our version that we’re releasing soon has a major architecture overhaul.
It also has a much better wallet setup system where you can pick and activate the specific wallets you want and not have the others activated. It allows a much better customization of different currencies that you want. It allows you a guided process of a custom setup of Jaxx, as opposed to also doing an express setup. So there are options to create a fast wallet and there are options to create a much more customized wallet. In general, though, it’s all about better speeds, accuracy and a better user experience. That’s the focus of the new release and we’re really excited that it’s almost done. I think our users who have had the biggest complaint of slowness of the app, that that’s what we’ve addressed, that’s what we’ve spent the most time working on the last many months and I think it opens the doors to the possibility of adding tons more tokens and tons more integrations without affecting the efficiency and speed of Jaxx.