Taking the initial steps to building on a blockchain can be rather daunting if you don’t know the tips and tricks that will save you hours of development and research time. dfuse is talking to experienced developers in the community so as to pass this valuable information along. This week we spoke with Tony Chen from TokenPocket.
Could you introduce yourself?
I am Tony Chen, co-founder and CTO of TokenPocket. Before working in the blockchain industry, I worked in Baidu Cloud Computing for 4 years to develop storage-related products. In 2013 I learned about Bitcoin and blockchain in general. In 2017, I began to learn to write smart contracts on Ethereum. With the knowledge I’ve accumulated over these years, I am now mainly responsible for TokenPocket’s support for dapps and technical research on different public chains.
Could you present TokenPocket’s vision?
TokenPocket’s start-up teams are all from various technical origins. Our knowledge in this new field of blockchain and wallet technology is relatively stronger compared to other teams. EOS completely overturned the idea of wallets in the ETH era: accounts, permissions, resources, voting and so on, were all very new things at the beginning. Supporting most of the unique functions on the EOS mainnet gave us a big number of early EOS users. Then the Scatter-compatible protocol boosted the first boom of EOS dapps. Later, we supported the first decentralized method to register EOS accounts with mobile email address, which lowered the entry point. We are also the only one that supports cold, hot and offline EOS wallets. We recently developed the MiniWallet SDK to make use of the EOS custom permission features to make native dapps more smooth and secure.
Take a look at our TokenPocket Github page, and we have many interesting open source projects and tools for developers to take advantage of.
In general, at TokenPocket, it is our vision to provide developers with a better environment and ability to develop various dapps, and to make it easier and safer for ordinary users to use wallets.
What were the main challenges you faced when developing on blockchain?
For us, the biggest challenge has been to change the way we think when developing on a blockchain. We tend to always go back to our past experience from developing on the Web to try to solve the blockchain problems.
For example, there have been a lot of native dapps recently, such as EOS Dynasty and Crypto Sword and Magic. Native dapps provide better game performance, but also face a problem: if the private key is directly imported into these dapps, there could be security risks, but the existing wallet SDK would keep asking for authorization for transactions every time which is troublesome for the user. To solve this problem using our previous experience, our team put our focus on working out the communication between clients. But there are too many limitations, especially on iOS. We had to change the approach. By using the EOS custom permissions feature and adding a key with only dapp-related action permissions on the dapp side through the SDK, this problem was solved.
Working with different dapps, we also saw many developers realizing very interesting functions by finessing unique blockchain features. New tech brings us many challenges, but also unlimited opportunities and fun at the same time.
Is it immediately clear to users that they are on a blockchain, versus interacting with web apps?
First of all, I think when a new technology has just emerged, educating people about it is more important than lowering the entry point. Especially for something that has strong financial attributes like blockchain. I don't want our users to know nothing about blockchain, but we will try to provide a smooth and secure experience during the early stages when users are still getting comfortable. Like when automobiles first came out, we had to learn how to drive a car. When almost everyone understood the working principle of automobiles, the focus begins to shift to developing auto-driving.
I understand that the ideal state of a wallet should be the same. Almost anyone has the capability to know what blockchain is and how a decentralized wallet works, but we can also make users use it securely and effortlessly.
What advice would you give to a developer who wants to build a project on blockchain?
It is undoubtedly very important for developers who have just entered into the blockchain field to surround themselves by the community. Especially at the very early stages of development, the problems that may block you for a long time can sometimes be easily solved through a two-minute discussion with some other devs in the community.
At the same time, no matter what kind of project, standing on the shoulders of giants can often achieve twice the result with half the effort. Don't try to build more wheels, make use of the existing tools and services is necessary. We used dfuse to build the internal mainnet data monitoring system, which can meet almost all of our data needs.
We have a Wechat community with almost 400 people at TokenPocket. We welcome everyone to join us. You can find a lot of useful developer tools at the developer page on TokenPocket’s official website.
If you think that you have some great insight to share and would like to be featured on “In the Eyes of a Blockchain Developer”, please feel free to reach out to us! We would love to share your story and help inspire the many developers who join the blockchain space each and every day.