GroundX Wallets #1: Kaikas

Tech at Klaytn
7 min readSep 16, 2021

--

See the complete list of articles here.
🇰🇷: GroundX의 월렛 #1: Kaikas

GroundX has introduced many different products with its public blockchain Klaytn, which include its own wallets. In this post, we will be looking at Kaikas, one of Klaytn’s wallets.

Kaikas?

Kaikas is a digital wallet that allows you to manage accounts, sign transactions, send tokens, and search transaction history. It is currently available as a browser extension and mobile application. You can download the browser extension here, and the mobile app in App Store or Google Play.

About the mobile app

Kaikas is currently available as a browser extension and mobile application. You can manage your account using both of them, but token transfers for the mobile version are temporarily disabled at the moment due to policy issues, and you can only store/send NFTs. The mobile version is undergoing renewal and is planned to be launched later in the year.

User Features

Safe Account Management

The name “Wallet” can be pretty misleading as one is led to imagine a physical space that stores assets, but is more like an account manager than a wallet. It stores the address and keys. Your assets are actually in the blockchain. The keys merely grant you access to them.

Kaikas uses HD (hierarchical deterministic) addresses, which allows you to create multiple keys using a single seed. If you keep your seed phrase safely, you won’t have to remember each key for your accounts. The seed phrase is also used to recover your accounts, so take good care.

Below is what a seed phrase actually looks like. It is from an actual account, so go ahead and see what it feels like to hack an account. 😘

Another thing you have to keep safely is your Wallet Key, which includes your Private Key and Klaytn Wallet Key. You can find the Wallet Key in Account Details as shown below.

Your Wallet Key is also used to import accounts, so if you lose it, your account may not be recovered. Be careful!

Token Transfers

You can also send tokens using Kaikas. More specifically, a token transfer happens by submitting a transaction to the blockchain, which requires a signature. And what do you give the signature with? Your Private Key! Since Kaikas stores your address and Private Key, you can send and receive KLAY, KIP-7, KIP-17, KIP-37, and NFTs or view transaction status or history.

FYI: NFTs are not “visible” in the browser extension as of now. You can view them on Kaikas Mobile or KlaytnScope.

Custom Tokens

You can also add Klaytn-based custom tokens as shown below. To do this, simply click on [Token List] and you will see the [Add Token]. You can browse and add KCTs (Klaytn Compatible Tokens) used in different BApps.

It’s also possible to add your own custom tokens. Below, a token called G1 which was minted on Baobab Testnet using KAS Console has been added to the list.

Integration with BApps

Many BApps emerging on Klaytn lately have integrated Kaikas. Kaikas acts like an interface at the front end between the users and the service. The features we have seen earlier, like logging in, signing transactions, using KLAY etc. can be implemented easily with Kaikas.

Let’s look at a couple of examples where Kaikas is used. First, there is the DeFi service KLAYSwap. You can use Kaikas to stake or exchange KLAY and KCTs via KLAYSwap. If you want to use KLAYSwap with assets from a different blockchain, you have to convert them into KCTs using Orbit Bridge, which also involves Kaikas.

Klaytn’s very own NFT minting service KrafterSpace also uses Kaikas. Below you see the pop-up window for logging in. You can see that you are required to sign.

The NFTs not seen on the web extension are now visible on KrafterSpace as shown below. You also sign the transaction using Kaikas when sending NFTs.

Network

Using Baobab network allows you use Kaikas without spending actual KLAY. You can receive play money (test KLAY) to test out the different features. TO do that, select Baobab Testnet in the top left corner of the Kaikas window and click on the link under the [Send] button, or just visit https://baobab.wallet.klaytn.com/faucet, where you will be asked to provide your Private Key or Klaytn Wallet Key.

Developer Features

Klaytn Provider

If you are a blockchain developer, you can also integrate the Kaikas to your service to introduce various features as seen above. For this purpose, Kaikas acts as a Klaytn Provider.

Klaytn Provider means that with Kaikas, you can use the JavaScript global object window via window.klaytn. This allows you to create various interactions on the browser, just as in the BApps that have integrate Kaikas we saw earlier. More specifically, there are properties that allow you to check the current network or address of the user, and whether Kaikas is installed or not, as well as methods for granting access, registering tokens, and automatically refreshing pages. For more details on Klaytn Provider, please refer to this link.

Let’s take a closer look at one of the properties mentioned above. The klaytn.networkVersion property checks which network the user is currently on. It returns the following information:

‘1001’: Baobab Test Network
‘8217’: Cypress Main Network

Below you see an actual implementation. It is the pop-up window during login on KrafterSpace, indicating that you are on the Baobab Testnet.

Caver

Kaikas allows you to interact with the network in place of a Klaytn Node, which also makes Klaytn’s SDK Caver accessible. You can either download Caver yourself and wrap it with Klaytn Provider, or use Caver 1.4.0 provided by Kaikas in the form of (window.)caver.xxx. For more information on Caver, please refer to caver documentation. If you want to use Caver in the form of window.caver.xxx, refer to this link.

Custom RPC

RPC (Remote Procedure Call) is a protocol for network communication, and acts like an interface that enables interaction with the blockchain. In the course of developing an app, you may have to configure your own network on your local device for testing purposes. And these custom networks can also be added on Kaikas.

Below is an example of adding a such network. More specifically, for a private local EN (Endpoint Node).

|Network Name
Enter a desired name.

|New RPC URL
Default value is http://localhost:8551, but you can change it.

|Chain ID
Since we are connecting a Klaytn EN to Kaikas, you should enter the network chain ID supported by that EN. If you are using Cypress the ID is 8217, and with Baobab, 1001. You can also set up a separate network, in which case you would enter the chain ID designated for that network.

|Symbol
You enter the token symbol for the network, like KLAY.

|Block Explorer URL
The Block Explorer for Cypress is scope.klaytn.com, and for Baobab baobab.scope.klaytn.com. If you set up a separate network, enter the URL of the Block Explorer for that network.

If you want to see a tutorial of how Kaikas can actually be implemented, go check out this link: https://github.com/klaytn/kaikas-tutorial.

Further details about using Kaikas for development can be found here: https://docs.kaikas.io/. If you come across any problems or have questions, feel free to ask for help in the Klaytn Developer Forum!

Conclusion

In this post, we’ve taken a look at Klaytn’s wallet, Kaikas, As already mentioned, Kaikas is undergoing renewal to ensure functional synchronicity between the mobile and web browser versions and is expected to launch later on in the year.

Stay tuned for our next post, where we will introduce Klips. Thank you!

--

--