Although community interest in the NEO blockchain was very high in the year after its launch in October 2016, many of NEO’s infrastructure and development milestones remained far away. Because the NEO blockchain was born with no light wallets or hardware wallet support, any users who wanted to take custody of their NEO and sign transactions on NEO were forced to download and sync the entire blockchain to their desktop computers. Only the powerful but cumbersome NEO-CLI and NEO-GUI full node software was available at launch.
However, O3’s mobile wallet developers were among the nascent development groups that began pushing the pace in the summer after the blockchain’s launch. Co-founders Andrei Terentiev and Apisit Toompakdee announced their open-source light wallet for iOS, O3 Wallet, on October 1st, 2017, and managed to get it published on Apple’s App Store before the month ended.
Apisit Toompakdee recently spent a morning in his Tokyo development office speaking with NEO News Today’s Colin Closser about his project’s past and future.
NNT – Colin: So, you’ve been thinking about mobile development for a few years now.
Apisit Toompakdee: Yeah. I’ve been doing mobile development probably since 2010, when I moved to San Francisco, I started getting into mobile. But I think before that point I was mainly doing the back-end, front-end stuff. Like, in 2010 I’ve been straight mobile since then.
NNT – Colin: Were you naturally just playing with your phone, and you wanted to develop stuff for it?
Apisit: I think it was mainly the job that I got in SF. They asked me, “Can you build a mobile app for us?” At the time, I didn’t know anything about XCode or iOS and I just dove into it. And the more and more I learned about it, it got me toward building the UI and UX into a small screen. I think it’s a little bit more challenging than building a back-end, really. That’s what I like about mobile.
NNT – Colin: It’s more challenging because you’re building everything into a small screen, and it’s touch-only?
Apisit: Yeah, that, and also, you can express what you want your software product to be, more than just building the back-end.
NNT – Colin: Yeah, one of the first things that struck me about O3 was when the mobile app came out with multiple wallet support, you guys fit a lot of features into it. In some ways, I feel like your mobile app was ahead of the desktop, especially with multiple wallet support. What’s the role of the wallet that you see in the future? We are all developing for a smart economy, but do you see people using it with vending machines–what’s the future you’re trying to build, for mobile especially?
Apisit: Andrei and I are both mobile developers. In the early days, we had the advantage of building what we wanted to see in the product. I don’t do much stuff on mobile anymore, though, as Andrei is taking care of both iOS and Android.
I think one thing about mobile–it’s just with you all the time, right? And now the mobile phone is getting cheaper and cheaper, and getting into the hands of everyone. Of course, we start by building a product, a wallet just for people like you and me. But after that I think it has some potential to move and build into lower end phone for the rest of the world. I think about Facebook Lite, that kind of thing. It has some potential to get into that kind of adoption.
NNT – Colin: I guess it makes sense. You think about the next 10x for the cryptocurrency user base, it has to be if not majority mobile, at least a third. And I guess if people are going to be using it every day, then it has to be on your phone, because we don’t carry computers around.
NNT – Colin: One of the things that I always noticed about your project — I previously interviewed Vincent from NEO Economy, and you guys have something in common. Everyone else, myself included, designed a token and tailored a project to sell the token. But there’s clearly another way to do this. How has your experience been coming up with business models that don’t force you to go through your own O3 token? Is it liberating to not have to worry about pushing your token all the time?
Apisit: Yeah, I think it’s one thing we decided, me and Andrei, in the early days. We were just like “Oh, we are probably not going to have a token, because it feels like a distraction.” So we focused more on building the actual product, and then trying to figure out everything later. And luckily, at the beginning we received some funding from NEO. So we were putting everything into building the product itself– rather than splitting time between building the product and focusing on how we’re going to use a token, how we’re going to build the token’s stuff.
NNT – Colin: My experience with fundraising has been that it’s a tremendous distraction. A traditional business model that focuses on revenue and profit is not a distraction, but somehow, a token–if you have a token, it kind of swallows up all the air in the room.
Apisit: Hmm…yeah, yeah, yeah. There’s always something that you have to think about. Like, you wake up and you see that people talk shit about your token, you have to follow up, and have some group on Telegram–It’s a distraction.
NNT – Colin: [Laughs] That’s funny, because the project that O3 reminds me most of is Switcheo. You guys both came out of nowhere, well–to me you came out of nowhere, with a furious development pace, at about the same time. You have a lot of the same culture, which is engineering-first, you both build, build, build. And they have a token and you don’t, so it’s not a distraction for everyone.
Apisit: Yeah, that’s true.
NNT – Colin: So how did you get started? NEO injecting you with capital obviously gave you the runway to develop O3, but when did you think that people would actually use your wallet — like, more than 100 people?
Apisit: We actually started around this time two years ago [July of 2017]. Actually, Andrei convinced me to look into NEO. He was into crypto back then, and then he came up to me: “You should learn how to build a smart contract.” And he came over to my place, and we learned how to build a smart contract, but that was on Ethereum.
NNT – Colin: I saw your Tweet about that.
Apisit: That’s when everyone started. And he told me to look into NEO, and we started building the mobile SDK for NEO at the time. Doing some crypto, and we realized: “Oh. Why not build our own wallet?” Using the SDK that we built. We had some knowledge about building a mobile app, so we started by building the iOS app, published on [Apple’s beta testing platform] TestFlight, and people seemed to like it, so we just started from there, adding more features, and doing more stuff.
NNT – Colin: That’s really cool how you guys started with mobile, and that makes sense–my observation is, the desktop app is good and if you’re really heavily using dApps, it’s always there for you–but when I think of O3, I think of O3 on my phone.
Apisit: I think that most people do. And because we started with mobile, some people don’t even realize that we have desktop, and we have to push out more articles, saying “Here, guys, we are on desktop, too.”
NNT – Colin: So one of the things that you guys capitalized on when Ontology launched, is you were very fast in supporting Ontology in the wallet. Now, I know that they have a lot of shared infrastructure, as even Ontology addresses, some of them are the same as NEO addresses. There are a lot of multi-asset wallets in the world. Do you want to expand into other areas, or are you looking to compete in the NEO realm–the NEO and Ontology realm?
Apisit: We’ve been experimenting with that one. Lately, we found common ground, where we have Coinbase, a custodial solution. Users from anywhere can sign up for Coinbase and create a wallet, where they have Bitcoin, Ethereum, and some other coins, addresses to recieve the asset. So, I think that what we found, is that even though people prefer the non-custodial solution, there’s still some group of people that don’t want to bother managing the key. And we want to have some solution for them to manage all of that in one place.
You know, there’s so many Bitcoin and Ethereum wallets on the market already. To convince, to try to get people to switch, moving the key between wallets seems like a lot harder. To copy the key, and paste it into a mobile wallet that you either trust, or don’t trust — I don’t know.
NNT – Colin: Yeah, you increase your attack surface. Exporting private keys is a nightmare, try to avoid it when possible. You get hacked, and you’re like “I don’t know where this could be from, I used it in three different programs.”
When you came out with this Coinbase Connect stuff, I was very skeptical. I was like, “Oh, no, now there’s a single program. And if it’s compromised, they can clean out your custodial funds [exchange wallet] at the same time as the non-custodial funds. But I was looking the other day and it seems like Coinbase has some restrictions in place to prevent that, such as a daily limit on withdrawals.
Apisit: Definitely. I think for us, Coinbase security is pretty on point. So, they have a daily spending limit, the default is like $1. You have to manually type in how much your daily spending limit is when you connect your Coinbase account. And of course, everything, like the token, the access token [OAuth2 login authorization], is encrypted by the password that you set when you connect with Coinbase. Everything is saved locally.
NNT – Colin: How do you plan to use Coinbase in the future? You already have some fiat gateways, but there’s gotta be some more integration coming. Can you fill us in on that?
Apisit: Did you notice where we have the O3 Swap? You can use that to exchange Bitcoin, and the other coins, into NEO, right? And that uses the dAPI to make it easier for you to paste the address to get the NEO coins. We make it easier for the user to send the assets from the other account that they already have. So, you connect Coinbase, and you can have some USDC on your Coinbase. You can use O3 Swap to exchange USDC to NEO.
We don’t really connect any of your personal information to Coinbase, really. We just build software that will let you manage the coins on Coinbase. You actually send from Coinbase directly to the swap service that we have, and you receive your NEO. And in the future, what we’re working on is O3 Pay, where we expose the API to the other services. Let’s say you want to pay in USDC, you can use the exchanger that we have to pay with O3.
NNT – Colin: That’s pretty cool! I like USDC. I understand that every stablecoin is basically custodial with counterparty risk, but it’s a good product.
Your wallet design, it seems like you’re going for a full-featured wallet. Part wallet, part payment solution, part dApp portal. It’s a “light wallet”, but it’s very feature-heavy.
Apisit:Yeah, I think we try to see what sticks. We build it and see the features people really like or not being used. Then we simplify, and we are taking a lot of stuff out. For instance, in the mobile app, we have four tabs instead of five tabs now. We combined news, token lists, and the dApp list, into one place. And we are looking into simplifying more things on the desktop.
NNT – Colin: It seems like, with no token — or even if you had a token — the fiat gateway seems like a very promising source of revenue. Providing a source of NEO for people who have cash, right? Are there other revenue models that you’re looking at that you can share, or that you want people to know about?
Apisit: Yeah, the fiat gateway, that’s one of them. We have the O3 swap one, and the fiat gateway where people can buy NEO with the USD and Euro. Our feedback with the fiat gateway was that our fees are too high. We can’t do much with that, because the partner that we work with has a fee because it’s a credit card payment.
But now, we’ve been working on another version of O3, to combine all the solutions into one. And we are looking at working with another partner, which will lower the fee a lot.
NNT – Colin: I also wanted to ask you about Japan, and Tokyo. None of you are Japanese, of the six people on the team. How did you end up meeting in Tokyo? That’s as good a place as any, but how did it happen?
Apisit: We all love Japan. So we all came here, we met. Me and Andrei met at the old workplace, and Alex [Knight], we used to work together. And then Arco [Oliemans] was on Twitter, helping us to do some translation. At first, Andrei and I thought, “This guy must be Japanese.” He was translating English to Japanese pretty well, and speaking Japanese pretty well. And then we met for the first time, and he was a blonde guy.
And then we met Nick [Fujita] through a NEO event that we had a workshop at. We all like NEO, and like blockchain, and like Japan. So that’s how we came to work together.
NNT – Colin: I was checking your team page, and I was pretty impressed that it’s only six people, because you guys get a lot of output per person.
Apisit: Yeah, I think that one of the things is we stay pretty focused…and try to avoid as much distraction as possible. Like, communities–we don’t have a group on Telegram, we just have some asynchronous chat on the forum.
NNT – Colin: How do you run support?
Apisit: We support by email. We have an email, support@O3.network, it’s taken care of by Arco. We also reply [to user reviews seeking help or giving feedback] on the Apple App Store and the Google Play store.
NNT – Colin: Do you have any plans to grow the team? Or is this a good size where you’re building everything you want to, you’re not burning too much capital, and everyone likes each other?
Apisit: For me, I think I want the product to go faster. But due to our limited resources, we just have to build, make the process better, basically. Digging through our process, trying to eliminate things that we don’t need. Right now, we acually just got a new person. He started early this month. His name is Nikolai, he was a contributor of many blockchain projects. He’s not on the team page, we have to add him.
NNT – Colin: So this is NEO News Today, and you guys are a NEO wallet. How has your experience been with NEO itself? NEO is definitely, like, a high-technology chain that’s very much still in beta. How has your interactions with it been, to make a light wallet?
Apisit: I think when we started, we actually spent a lot of time trying to figure out the protocol. Because at the time, the documentation wasn’t really that good. So we would have to look into the code, and have to figure out, how to do this, why NEO did that.
It’s gotten a lot better. It’s been up and down; of course, we are developers ourselves, so we are trying to improve things. We build tools, and infrastructure to help ourselves move faster. And some of those things we’re trying to push into the product so that the other developers can use.
Before the dBFT 2.0, and before NEO-CLI version 2.10, I think we had to monitor the NEO-CLI very heavily, because it would crash, or get a stuck block. We would have to get up in the middle of the night to re-sync the chain. But now, it’s gotten a lot better, it’s great. It runs really smoothly now.
NNT – Colin: I know you guys speak with NEO a lot, but what do you want to see from NEO that doesn’t exist yet? I know there are some things coming in NEO 3.0, but what are you, as a developer of a wallet and using the blockchain every day, looking for out of NEO in the future?
Apisit: I think that most of what we are looking for has been accounted for. I think that the team from NGD Seattle, they’re trying to make the F5 Experience, I think that’ll be great for developers who are trying to build something on NEO. And then I see the teams from NEO Research, from COZ, doing a great job of building more tools.
I think one thing would be about a portal for developers, and then some documentation. I think it’s already been worked on, but that’s what I’m looking for, to see an improvement on that front.
And then, I have to say, the dev experience on NEO is getting a lot better. People seem to be focusing on tools, and building things for the other developers. So I think in the coming year when NEO 3.0 launches, we will be seeing better adoption on the developer side.
NNT – Colin: I think there’s room for both projects, but Ethereum definitely isn’t closing the door on NEO. So, it’ll be fun, and we’ll see.
Your wallet is very dApp-focused. Is there anything that drove you to make a wallet that was so focused on serving dApps?
Apisit: Yeah, we are focusing on dApps because we are the ones that initiated the dAPI protocol on GitHub. So, Nick is the one who’s been working on that. He’s also been working with the dApp company, trying to build that, with some integration with our wallet.
On the integration side, the consumer side, we are trying to grow the number of users of our wallet. So we can tell those companies, we have the user base. If you launch your dApp on our platform, here is the users that will be able to use your dApp right away.
And of course, right now, what we need to improve on is the dApp experience on the mobile side, to make it on par with the desktop.
NNT – Colin: [Laughs] A chance for things to go the other way, for the mobile to catch the desktop. I know Vincent from NEO Economy is super fired up about your protocol. Is that an official NEP [NEO Enhancement Proposal] yet?
Apisit: Yes! I think it just got into the final state. I think it’s like, NEP-12?
NNT – Colin: Congratulations! I’ll have to check that out, that’s a big step.
Apisit: It is a big step. And what’s good is there’s a lot of wallet providers trying to adopt that one. Like Teemo, NEX, and NEO Line. It’s good for the users to have more choices.
NNT – Colin: I recognize Teemo, as an extension wallet, is also very dApp-focused. Do you have any plans to make an extension wallet, or will you stick to desktop and mobile.
Apisit: I think we just have a different approach. If you see, we have a desktop app that can communicate with the browser. So that’s what our approach is.
NNT – Colin: Okay, so that’s your version of the extension wallet experience. It’s filling the same role.
So how would that work on mobile then?
Apisit: So, the other thing on mobile that we are trying to do, is the app-to-app communication. For example, if you have another app on mobile, you can sign the transaction on that app, and it will communicate to O3. And O3 will sign.
NNT – Colin: Oh, it’ll push a notification, saying like, Blocklords is asking you for 3.0 GAS. Approve the transaction. I’m looking forward to two things. I’m looking forward to seeing a notification while playing a NEO game on my phone. And I’m looking forward to buying an O3 cap, because that one is really sweet. Best of luck!
Apisit: [Laughs] Yeah, I think we have them! I’ll send you one.
Apisit Toompakdee is co-founder of O3 Labs.
About The Author: Colin Closser
Colin Closser, M.D., was a speaker at the first NEO DevCon in San Francisco. A devoted contrarian, he has managed the improbable: a peaceful and healthy life, despite holding a medical degree. He aspires towards the wisdom of Michael Lewis and Nassim Nicholas Taleb.
More posts by Colin Closser