As part of our new journey at Kik, we started working on the Kin wallet SDK for mobile. This is a great opportunity to take a deeper step into the world of cryptocurrency. We had to research and decide if the wallet SDK should be native Android and iOS or Javascript, and whether it should be deployed via binary or WebView. The options were:

go-ethereum — Go library supported by Ethereum web3.js — Javascript library supported by Ethereum web3.j — Lightweight Java and Android library

We explored and created a simple integration with those options. I explored go-ethereum right away, reading their docs and taking a few online courses, but I wanted to do more. I had to build something with go-ethereum myself in order to better understand how everything works. The integration with Geth (go-ethereum) is pretty simple. I started running a Geth node on my Mac and synced the block history on Mainnet. It took a while to sync, but eventually I had a fully running Geth on my Mac.

My next goal was to set up an Ethereum node on a mobile device. It took hours, but it was just a POC so I thought, “Why bother having a full node on my mobile device?” I consulted with some of our blockchain specialists and asked if we had to have a full or light node on the mobile device. They told me it is not a requirement at the moment and suggested to use Infura as a node provider.

The experience was smooth, and I had a connection to Testnet quickly. I created an account and started sending tokens to the world ;) You can send to yourself test tokens here on Ropsten. Enjoy!

With go-ethereum, I created a simple app that allows users to create as many accounts as they wish with a public address and then added a feature that checks the balance. Then, I played with the ability to send transactions passing ETH from one account to another. It was a really great feeling building the app and see how it all fits together.