ABC Wallet - Another CKB SDK and CKB Web Auth

Team and background

Founded in May 2018, with all the core team members from Tencent, BlockABC has received the angel investment of over 10 million yuan from Bitmain. We boast rich Internet-related experience, a keen insight into user needs, and great perseverance in technology, and, having engaged in the industry for many years, the core founder is a veteran in the blockchain.

ABC Wallet is one of our ongoing blockchain projects. We also launched EOSPark.com, a blockchain explorer product, and later equipped it with such functions as the EOSPark Open API platform, EOSPark SEC contract security platform, contract semantics and web wallet. We are committed to lowering the barriers for novices to the cryptocurrency market and hope to bring the convenience of blockchain technology to everyone.

Project and justification

One Chain CKB

In order to make it easier for developers to build and push CKB transactions, we will implement a new SDK based on ckb-sdk-js and provide a series of developer-friendly interfaces:

  1. An easier and more straightforward transaction building interface that supports many-to-many transaction forms.
  2. Flexible transaction editing functions, convenient for users to define all aspects of transactions.
  3. The miner fees can be calculated automatically or manually.
  4. Automatic derivation of HD Wallet architecture is supported.
  5. And a series of tool functions essential to CKB.

As CKB 2020 Roadmap continues to complete, we will also provide further support:

  1. To support UDT standard. The application of this SDK that selects One Chain CKB will support any token in the UDT standard.
  2. The CKB-based online development toolbox allows developers to quickly solve trivial problems such as address generation, address conversion, and transaction analysis in daily development.

CKB Web Auth

We will extend a set of open source embedded wallet services from ABCWallet-lite and name it CKB Web Auth, which will bring to the community:

  1. A standard protocol for communication between Dapp and wallet, and an SDK based on this protocol that can communicate with iframes.
  2. An iframe wallet development framework, with which Dapp developers can customize their own iframe wallet.
  3. A server that supports OAuth login via Twitter, which mainly provides social platform accounts for iframe wallets. These accounts will be combined with user-defined passwords to generate public and private key pairs.

Developers can build their own server with the open source server, or use the ABCWallet-lite server that also supports this protocol, which not only supports the same OAuth server and iframe wallet, but also brings additional benefits to developers and users:

  1. The user’s public and private key pair can be used across Dapps, eliminating the trouble of multiple transfers.
  2. The public and private key pair based on the social platform account system further lowers the threshold to the blockchain world for novices. The more novice-friendly, the easier to get more users for Dapp developers.
  3. The user’s public and private key pair is kept separate from the Dapp, which reduces the cost of managing the public and private key pair for developers and improves the security of the system.
  4. Without worrying about connection to different wallet environments, developers just need to implement the SDK that complies with the communication protocol for the connection.

Technical specification and implementation

One Chain CKB Architecture

CKB Web Auth

Architecture

Interaction flow

Implementation details

  1. The Web Auth SDK will be a lightweight js SDK to be embedded in a Dapp. Here we will implement a version that supports communication with iframes and examples for Android and iOS versions.
  2. Web Auth Page is a lightweight wallet framework embedded in a Dapp page in an iframe form. It is a vue-based SPA application that contains basic UI elements, but Dapp developers need to further customize their UI.
  3. Web Auth Server is a server that completes OAtuh authorization. It will provide a set of open interfaces for Web Auth Page to complete OAuth authorization. We will build Twitter’s OAuth authorization mechanism in it, and allow developers to expand freely in the form of open interfaces as support for other social platforms.

Milestone

One Chain CKB

Milestone 1: Completed

  1. Support the construction of one-to-many and many-to-many transactions. 2. Provid editable transaction objects.

  2. Support calculation of miner fees based on estimated transaction size.

  3. Support automatic derivation of HD Wallet structure.

  4. Support the derivation of HD Wallet structure for interruption and recovery.

  5. Provid CKB essential tool functions, e.g. public and private key generation and address format conversion.

Milestone 2: 2020-03-27

  1. Current documents and more examples of One Chain CKB

Milestone 3: after UDT Standard published

  1. Support the construction of UDT-standard token transactions
  2. More related documents and examples

Milestone 4: after above

Implement an online toolbox application based on nuxtjs, which is named as One Chain Toolbox temporarily and offers the following visualization tools:

  1. Public and private key pair generation

  2. Address format conversion

  3. Transaction data analysis. Improve transaction readability by supplementing data such as address, balance to JSONify transactions in hex / json format.

  4. Generation and derivation of mnemonic words Structural inspection of HD Wallet

  5. Estimated transaction size

  6. Create transaction

  7. Signing transaction

Milestone 5: 2 month after above

  1. The 1.0 version of One Chain CKB
  2. The 1.0 version of One Chain Toolbox
  3. Complete documents and examples

CKB Web Auth

Milestone 1: 2020-04-13

  1. Detach Web Auth Server from ABCWallet-lite, which also boasts the following features:
  • A common abstraction layer based on OAuth
  • A series of OAuth interfaces
  • A specific implemention for twitter OAuth login
  1. More related documents and examples

Milestone 2: 2020-04-27

  1. Implement Web Auth Page with Web Auth Server as the backend. It is the default UI developed based on vue and boasts the following features:
  • A series of interfaces open to the Web Auth SDK
  • Export flow of CKB public and private keys
  • Authorization flow when Dapp tries to access the public key
  • Authorization flow when Dapp requests transaction signature
  1. More related documents and examples

Milestone 3: 2020-05-17

  1. Develop a common communication protocol between Web Auth SDK and wallet and write a document
  2. Implement the Web Auth SDK

Milestone 4: 2020-07-03

  1. The 1.0 version of Web Auth Server, Web Auth Page, and Web Auth SDK 2. Complete documents and examples
7 Likes

Milestone Updated

Today we have reached Milestone 1 and Milestone 2 of One Chain CKB, here is a short brief:

Milestone 1

All promised features has been implemented:

  1. Support the construction of one-to-many and many-to-many transactions. 2. Provid editable transaction objects.
  2. Support calculation of miner fees based on estimated transaction size.
  3. Support automatic derivation of HD Wallet structure.
  4. Support the derivation of HD Wallet structure for interruption and recovery.
  5. Provid CKB essential tool functions, e.g. public and private key generation and address format conversion.

Milestone 2

A whole new document base on vuepress for One Chain CKB has been published! Any help in translation is welcome.

Document: https://blockabc.github.io/one_chain_ckb/zh-CN/

4 Likes

Milestone Updated

It’s been a while since we reached Milestone 2 of One Chain CKB, after a time of development we have finally arrived at Milestone 3 of CKB Web Auth! here is a short brief:

Milestone 1

We successfully detach and refactor Web Auth Server from ABCWallet-lite which provides:

  1. A common abstraction layer based on OAuth
  2. A series of OAuth interfaces
  3. A specific implementation for twitter OAuth login

Github: GitHub - BlockABC/web_auth_server at develop

Milestone 2

We have implemented Web Auth Page with Web Auth Server as the backend, it provides a default UI the whole CKB Web Auth System:

  1. A series of API based on JSON RPC
  2. The export flow of CKB public and private keys
  3. Authorization flow when Dapp tries to access the public key
  4. Authorization flow when Dapp requests transaction signature

Github: GitHub - BlockABC/web_auth_page

Milestone 3:

We implemented a web oriented SDK named Web Auth SDK, it can be use in your dapps now! And it could also be implemented for mobile-compatible.

Github: GitHub - BlockABC/web_auth_sdk

3 Likes

@linkdesu Does that mean that some application like tippin.me is possible built based on CKB Web Auth?