トランザクションをXummで署名してみよう!
Xummとは
Ethereumで開発を行う際はメタマスクを使うのと同じように、XRP LedgerではXummというウォレットがデファクトスタンダードとなっています。
Xummはモバイル向けのウォレットであり、iOSやAndroidで利用することができます。
Xummアプリの準備
XummアプリはApp Store / Google Storeからダウンロードすることができます。
各ストアへのリンクは公式サイトから確認することができます。
インストール後は簡単な初期設定があるため、行っておいてください。
テストネットアカウント
テストネットアカウントの取得
以下のサイトからテストネットアカウントを取得することができます。
Choose Network
のTestnet
を選択し、Generate Testnet credentials
をクリックするとアカウントが発行されます。
表示されたAddress(rから始まるrKcdtakF...
のような文字列)とSecret(sから始まるsEdVspQ8...
のような文字列)をメモしておきましょう!
テストネットアカウントの登録
先ほど取得したSecretからテストネットアカウントをXummへ登録します。
Xummアプリを起動し、設定
→アカウント
→アカウントを追加する
→既存のアカウントをインポート
をクリックします。
アカウントの種類は全権アクセス
、シークレットタイプはシークレットキー
を選択し、先ほどメモしたSecretを入力します。
その後、アドレスの確認、署名方法、アカウント名の設定を行います。
これでテストネットアカウントのインポートが完了です!
接続先ネットワークの変更
この時点では接続先ネットワークがメインネットになっています。
Facucetはテストネットアカウントに行っているため、当然メインネットでは有効化されておらず、残高も確認できません。
接続先ネットワークをテストネットに変更する
設定
→詳細設定
→ノード
からwss://testnet.xrpl-labs.com
を選択しましょう!
選択後ホーム画面に戻ると、アカウントが有効化され、残高が表示されているはずです。
表示されていない場合は一度アプリを再起動してみてください。
ここまででテスト用アカウントの準備が完了しました!
次にXummを使った開発の準備を行いましょう!
Xumm API Keyの取得
アプリケーションからXummを利用するためにはXumm Developer Consoleに登録し認証情報の取得を行う必要があります。
任意の方法でログインし、アプリケーション情報を登録します。
今回はテストでのみ使用するため、仮の入力で問題ありません。
登録後表示されるAPI KeyとAPI Secretをメモしておきましょう!
コード
今回は簡単な説明とするため、Node.jsを利用したバックエンドアプリケーションを作成します。
Xumm SDKのインストール
Xummと接続するためのライブラリとしてXumm Universal SDKを利用します。
- npm
npm install xumm
- yarn
yarn add xumm
コード例
const { Xumm } = require('xumm')
const xumm = new Xumm("api-key", "secret-key");
xumm.payload?.create({
TransactionType : "Payment",
Destination : "rQQQrUdN1cLdNmxH4dHfKgmX5P4kf3ZrM",
Amount : "100" // 100 drops (=0.000100XRP)
}).then((payload)=>{
console.log(payload.next.always)
})
コード実行後表示されたURLにアクセスすると、Xumm向けのQRコードが表示されます。
Xummで読み取ることで署名確認画面が表示され、トランザクションの署名を行うことができます。
もっと試してみましょう
XRP Ledgerは支払いのためのPaymentトランザクション以外にも様々なトランザクションが存在します。
たとえば次のようなトランザクションがあります。
-
AccountSet
: アカウントの状態などのプロパティを変更する -
NFTokenMint
: NFTを発行する -
OfferCreate
: DEXへの注文を作成する -
SignerListSet
: マルチシグを設定する
これらを参考に、先ほどのコードを修正し、他のトランザクションを試してみましょう!
まとめ
Xummを利用したトランザクションへの署名方法について解説しました。
今回解説したバックエンド向けのコード以外にも、フロントエンド向けやXumm内アプリでも利用可能です。
数行のコードだけでXRP Ledgerで利用可能なトランザクション全てでウォレットを介した署名が可能になります。
興味を持たれた方はXRP Ledger開発者のDiscordチャンネルへ是非お越しください!
日本語チャンネルもありますので、英語ができなくても大丈夫です!
Discussion