コンテンツへスキップ
0%

WalletConnectとは?

Alchemy team headshot

執筆者 Alchemy

2022年4月30日 公開読了時間 1 分

WalletConnectは、単一の統合で使えるオープンソースのプロトコルです。開発者はWalletConnectを使うことで、300以上のウォレットのユーザーが自分の作った分散型アプリケーションにログインできるようにできます。これらのアプリは、Ethereumのような分散型ネットワーク上でホストされています。

この記事では、WalletConnectがエコシステムにおいて果たす重要な役割、プロトコルの技術的な詳細、そしてアプリの使い方について説明します。

ウォレットへの接続にWalletConnectを使う理由

かつてEthereum開発者は、Web3のクリプトウォレットごとに個別の統合を作成し、ウォレットユーザーがアプリケーションにログインできるようにしていました。しかしこれはEthereumエコシステムをMetaMaskに中心化させる結果を招きました。ユーザー数の少いニッチなウォレット向けに統合コードを書く開発者はほとんどおらず、新しいウォレットの初期採用者が不利益を被っていたためです。

WalletConnectは、単一の統合コストで300以上の異なるウォレットにアクセスできるようにすることで、この状況を変えました。現在では3000以上のアプリがログインオプションとしてWalletConnectを提供しており、その中にはUniswap、OpenSea、Raribleといったエコシステム内でも特に大きなアプリが含まれます。

WalletConnectは、開発者があらゆる種類のウォレットのユーザーに自分のアプリを開放することを容易にすることで、ウォレットのデザインや機能における創造性の爆発的な広がりを可能にしました。このプロトコルは、権力の分散と新しいユーザー体験の実現という、暗号通貨の理念を象徴するものです。

WalletConnectはどのチェーンをサポートしているか

WalletConnectは、Ethereum、Cosmos、Polkadot、Near、Solana、Celo、Binance Smart Chainをはじめとする幅広いチェーンをサポートしています。既知の互換ブロックチェーンの完全なリストについては、WalletConnectのドキュメントを参照してください。

WalletConnectと互換性のあるウォレットは何か

WalletConnectは、さまざまなプラットフォーム上の300以上の異なるウォレットと互換性があります。よく使われる互換ウォレットの一部を以下に挙げます。

  • Metamask
  • ‍Rainbow
  • ‍Crypto.com DeFi Wallet
  • Argent Wallet
  • ‍Gnosis Safe MultiSig Wallet
  • Trust Wallet
  • Ledger
  • Coinbase Wallet

WalletConnectの使い方

このセクションでは、WalletConnectを使ってウォレットを分散型アプリケーション(dApp)に接続する方法を、ステップごとに詳しく説明します。ここに記載する手順に従うことで、WalletConnect対応の任意のdAppとウォレットの間で簡単に接続を確立し、dAppとスムーズにやり取りできるようになります。

1. WalletConnectでdAppに接続する

WalletConnectに対応したdAppに移動します。このチュートリアルでは、分散型金融アプリケーションであるUniswapと、ウォレットとしてRainbowを例に使用します。ただし、この手順はWalletConnectに対応した任意のdAppとウォレットに当てはまります。まず、「Connect Wallet」ボタンをクリックします。

Connect Walletボタンが表示されたUniswapのインターフェース

2. WalletConnectを選択する

次に、表示された選択肢の中からWalletConnectを選びます。画面にQRコードが表示されます。デフォルトでは、WalletConnectはユーザーがモバイルウォレットでログインすることを想定しています。ただしデスクトップウォレットを使用する場合は、「Desktop」ラベルをクリックしてください。

ウォレット選択モーダル:WalletConnectを選択しQRコードを表示

3. モバイルウォレットでQRコードをスキャンする

スマートフォンを取り出し、モバイルウォレットアプリケーションを開きます。ほとんどのウォレットでは、下の画像の右側にあるような、中空の四角形のアイコンが見つかります。このアイコンをタップすると、カメラが起動してQRコードをスキャンできます。このアイコンが見つからない場合は、設定メニューから「Scan QR code」オプションを探してください。

WalletConnectのQRコードを読み取るモバイルウォレットのQRスキャナーアイコン

4. 接続を許可する

QRコードをスキャンすると、dAppがウォレットへの接続許可を要求します。これは、ウォレットを制御しているのが自分自身であること、dAppがそのアクセスを認可されていることを確認するための標準的なセキュリティ対策です。モバイルウォレットに表示される指示に従って接続を確認する必要があります。接続が確立されると、ウォレットを使ってdAppとやり取りできるようになります。

dAppへの接続許可を求めるモバイルウォレットのプロンプト

5. dAppへのログインが成功する

おめでとうございます。これでウォレットを通してdAppへのログインに成功しました。これでウォレットを使ってdAppとやり取りし、トレード、ステーキング、資金移動などのさまざまな操作を行えるようになります。資金の安全を確保するため、ウォレットの使用やアプリとのやり取りにあたっては、常にセキュリティのベストプラクティスに従ってください。

WalletConnectは安全か

WalletConnectは安全に使用できます。アプリとウォレットの間で送受信される情報は、この二者のみが保持する鍵によって対称的に暗号化されています。

この鍵はdAppからウォレットへ直接送信されます。ユーザーがQRコードをスキャンする場合でも、デスクトップウォレットでディープリンクを選ぶ場合でも、仲介者は存在しません。

公開されたブリッジサーバーが両者の間の情報のやり取りを処理しますが、このサーバーは情報を復号するために必要な鍵を受け取ることはありません。さらに、開発者は自身でブリッジサーバーをホストすることで、完全な保護を得ることもできます。

この設計の優れている点は、WalletConnectがdAppへのログインにシード(リカバリー)フレーズを必要としないことです。以下の図は、ブリッジサーバーを介したdAppとウォレット間の情報の流れを示しています。

WalletConnectのブリッジサーバーを介したdAppとウォレット間の暗号化された情報フローの図

QRコードの内部には、以下に示すWalletConnectのURIスキームが含まれており、各変数が何を表しているかを説明する表も併せて掲載しています。

WalletConnectのURIスキーム
Required parts
Notes

wc:

Wallet Connect protocol defined in EIP-1328

topic

String

version

Number (eg. 1.9.0)

bridge

Bridge URI (URL Encoded)

key

Symmetric key hex string

WalletConnectのコードベース

WalletConnectのコードベースはWalletConnect Githubで確認できます。

WalletConnectの実装方法

WalletConnectの実装に関する最新の手順については、公式ドキュメントを参照してください。

WalletConnectの代替・競合

WalletConnectには直接の競合は存在しません。WalletConnectとMetaMaskを比較するのは誤った二項対立です。なぜなら、MetaMask自体がモバイルウォレットのログインオプションとしてWalletConnectを使用しているからです。

まとめ

WalletConnectと同様に、私たちAlchemyも自社製品を通じて開発者の作業を楽にすることで、エコシステムを前進させています。

開発者が自前のノード運用をやめてAlchemyのNode APIに切り替えると、インフラを管理することなく信頼性の高いRPCアクセスを得られます。Node APIはAlchemyの分析ツールや開発者ツールと連携し、デバッグを高速化するとともに、重要なリクエストに対するシンプルなAPI呼び出しを提供します。

1000億ドルを超える取引を支え、OpenSeaやNBA Top Shotといった人気アプリを支える製品群を、Alchemy.comで確認してください。

もっと知りたい方は、API3がDAOダッシュボードでWalletConnectの統合を実現するなど、さまざまな形でAlchemyをどう活用しているかをご覧ください。

Background gradient

ブロックチェーンで魔法を生み出す

Alchemyは、最も強力なweb3開発者向けプロダクトとツールを、豊富なリソース、コミュニティ、そして卓越したサポートと組み合わせて提供します。