IDQ Soul Wallet 【2023年2月時点のもの】

IDQ Soul Wallet 【2023年2月時点のもの】

Web 3 Friendly / Web3 の一般的な普及

【2023年2月時点のもの】


What it does


IDQ | Soul Wallet は Web3 の一般的な普及を目指したウォレットプロダクトです。


Web3 時代とは「デジタルで個人が Wallet と PHR ヘルスデータ DID で個人管理ができること」だと考えています。  

Web3 はまだ一般的には普及しておりません。これがその起爆剤になります。


機能性とポイントは3つ:


1. 秘密鍵がいらないのにデジタル ID/送金のセキュアで使い方がすごく簡単!

2. QR コードをスマホでスキャンするだけで Wallet アクセス OK!

3. API ファースト(API 接続のところで今回、産学連携の PDI 認証システムをプラグインするだけで使用できます。また企業間連携やパートナシップも可能)


The problem it solves



秘密鍵を管理しなければならない煩雑さ・難しさ主流になっているウォレット「MetaMask」の UX の課題仕組み上、PC とスマホの両方に対応させるのにも開発コストがかかる


Challenges I ran into


ユーザーに鍵管理の存在を意識させないシステムにするために、署名及び送金が必要となる処理をAPIサーバー側で作り込みましたがここの開発が難しかったです。また、単なるウォレットの開発に加えてDIDの発行及びVerifiable Credentialsの発行用のスクリプトの開発も行いました。特にVerifiable Credentialsについては、まだまだドキュメントも少なく仕組みを理解してスクリプトを作り込むのに苦労しました。


Technologies I used


使用した分散型インフラと API


ION  generateKeyPair

ION  generateRequest

ION  AnchorRequest  

Pinata pinFileToIPFS  

Pinata |Gateway     

Pinata |pinList     


使用した Blockchain


Avalanche Fuji Chain(Testnet)


使用した tech stack


truffleスマートコントラクトの開発のため

React.jsフロントエンドの開発のため

expressAPI サーバー開発のため

superAgentフロントエンドから API を呼び出すため

承認制送金システム実装のため

SmartContract分散型アプリケーション開発のため

ION(DID)DID の生成及び DID ドキュメントの生成のため

ethers.jsAPI サーバー側でスマートコントラクトのメソッドを操作する処理を実装するため

Blocto SDKログイン機能の実装するため

RESTful APIAPI 開発・設計・公開のため

Figma画面デザイン考案のため

ERC20 TokenIDQ Token 開発のため

Verifiable CredentialDID と紐づくデータを検証可能な状態で公開するため

Pinata API IPFS へのファイルアップロードのため

erifiable Credentials と DID ドキュメントの登録・保管・参照のため

Stripe APIIDQ トークン購入機能実装のため

MUI Componentフロントエンドの開発を効率化させるため



How we built it


IDQ Soul Walletは、ユーザーに鍵管理を意識させないこと・DID連携を管理するために3つのコンポーネントに分けて構成されています。



・フロントエンド

・スマートコントラクト(バックエンド)

・API サーバー


フロントエンドは、React.jsで開発を行いました。

スマートコントラクトは、truffleにて開発を行っております。独自トークンのためのMyTokenコントラクトとDID連携及びウォレットの管理のためのFactoryWalletを開発しました。

APIサーバーについては、Expressを使って構築し、秘密鍵を必要とする全ての処理とDIDの生成を実装しております。また、DIDドキュメントを生成してipfsにアップロードしています。


What we learned


DIDの生成及びVerifiable Credentialsの生成方法の学びました。

また、独自実装によりユーザーにメタマスクのようなウォレットアプリの存在を意識させない方法としてバックエンド側でブロックチェーン関連の処理を肩代わりするアーキテクチャの開発手法を学びました。


What's next for


・UNCHAINのWeb3助成金プロジェクトへの応募

・開発者に使ってもらいやすくするために,ブラウザの拡張機能とVsCodeの拡張機能としての開発の検討

・Gtihubのコミット量に応じたトークン発行機能の開発