Not many people know about the origin of the name Canoe, but it’s a great one. Want to fill in those who don’t know?

Tyler: The original name for Nano was Raiblocks and Raiblocks were named after Rai stones which were huge stones the Yap islanders used as currency. Colin named the cryptocurrency Raiblocks ironically since Rai stones were very large and difficult to transfer ownership of. When Rai stones were moved they used canoes to transfer them from one party to another. The Canoe wallet is the tool used to transfer your Raiblocks (Nano) from one user to another.

What led you to build a wallet around Nano?

Göran: I have always viewed Crypto from a distance, understood the basics but never bought any or read up properly on the subject. Then back in november, december last year for some reason… I started looking more closely. And as a developer I tried to find the tech that I believe in. So from the start I felt that I wanted something that was “mining free” because the insanity of burning coal in China to power custom hardware… nah, must be something we move past. And thus I basically ended up looking at Byteball, IOTA, RaiBlocks (Nano). For various reasons I felt RaiBlocks (Nano) had the cleanest focus, a proper distribution story etc. It just ticked most checkboxes for me. Early on I felt that … wait, why is there no good wallet? And since I had looked at Byteball — they have a very good wallet — when I looked a bit closer I realized that the Byteball wallet is a clone of the open source wallet called Copay from Bitpay, one of the strong Bitcoin companies. I started by trying to clone the Byteball wallet, but failed to build it, so after some hours I went upstream and cloned Copay instead. It was easy to build and get hacking on it. And the license is MIT.

Any history on how the canoe team came together?

Göran: I started the Canoe project due to the lack of wallets in the then RaiBlocks community. Eventually I started talking about the Canoe project in the Nano discord under the development channel. Rami, Tyler, Stef, and Nico all got involved in the project and have contributed in their own ways. Canoe is Open Source, both in license (MIT) but perhaps more importantly, in spirit. Anyone can join and help, we build it together. All discussions around development is public on our discord. Joining in is just a matter of doing the walk and not just the talk.

What improvements are you looking at making to the wallet?

Göran: Very soon in v1.0.1 we are going to be adding some new language options such as Simplified Chinese, Brazilian Portuguese, Bulgarian, and Romanian. In v1.1 we are going to add support for people using the same seed in multiple different wallets. Canoe currently stores your blocks locally and doesn’t re-sync with the Nano network unless you do a repair. Larger features we are still planning are Alias support. We actually had aliases fully working but we were not happy with the level of centralization and the possible attack vectors. We wrote up a new plan for a DNS/SMTP model of aliases and some members of the Cryptocurrency community have been building a protocol called opencap around those ideas. We are also looking into scaling our proof of work generation. As more people use Canoe we have to do the work for all these transactions. We are building a prioritized mining pool where anyone can contribute their extra GPU or CPU power. The queue will prioritize the requests to prevent spam.

What makes Canoe unique that allows the team to deploy to so many different platforms such as iOS, Android, MacOS, Windows, and Linux?

Tyler: Canoe is written using web tech, on mobile it uses Cordova and on desktops it runs in NW.js which is similar to Electron. It is the only cross platform single codebase Nano wallet.

Tell us a bit about the Canoe backend server.

Tyler: The Canoe backend with the MQTT backbone is currently used by multiple different wallets. It consists mainly of a main server written in Nodejs (canoed) and another one also in Nodejs for the rateservice. Canoed acts as a frontend for the Nano node and routes a subset of the RPC calls to it. We use Redis to maintain the session state (associations between account numbers and wallet ids) and we use Postgresql to maintain block timestamps and the credentials for connected wallets. Currently Nano Blocks and Pocket Nano both use the Canoe backend. Anyone can run their own Canoe backend and connect to it inside the canoe app. This way you don’t have rely on our servers being up and you can generate your own work. There is a guide to setup your own backend here https://github.com/getcanoe/canoed/wiki/Setting-up-a-canoed-backend

What are some of the features of the Canoe wallet that you are proudest of?