
Axie Infinity スカラーシップの支払いを自動化する
こんにちは、かずぅです。
直近、スカラーを増やしていたら案の定支払い管理が大変になってきました(悲)
100人以上のスカラーを抱えているマネージャーは流石に辛くなってきているのではと思います。
わたしもスカラーへの支払い自動化を進めている途中でしたが、
かずぅのDiscordでgithubにてコードを公開されている方がいるとの情報を教えていただいたので、人柱としてある程度コード読んで実行まで試してみたところ上手く動作することを確認しました。
既に海外では多くのマネージャーが使っているツールです。
製作者の方に記事での共有について確認を取ったところ、ぜひお願いしますとの返答をいただいたので
出来るだけエンジニアでない方でも分かるように日本語で解説してみます。(jsonファイルの編集など、ある程度のIT知識が必要な部分はご留意下さい)
※本noteでは解説しているシステムの利用を推奨しているものではありません。記事を参考にしたことによって生じた損害や損失については一切の責任を負いません。
自動化導入の前提(※必読※)
他人が作ったシステムで秘密鍵を入力する危険性はご理解ください。
最悪の場合送金先が別アドレスに向けられたり、資産をハックされる危険性があります。
今回の場合スカラー用サブアカウントの秘密鍵が必要になるので、マネージャーであればアクシー3匹が入ったアカウントの秘密鍵を利用することになります。
また、送金毎に製作者への1%の寄付が発生します。送金時にclaimしたSLPから引かれる仕様です。
念のため安全性について調査したところ、このシステムはオープンソースと呼ばれシステムが書かれているプログラム言語がインターネット上に公開されている形になっており
内容に目を通しましたが 2021/8/20時点ではバックドア(コンピュータセキュリティ的な裏口)が仕込まれている形跡は発見できませんでした。
悪用するならほぼコードを公開するメリットはなく、作者のTwitterも調べましたが自身でもスカラーシップをやられている方でそこまで怪しいという印象はなかったです。(実際に動かしてみても特に抜かれた形跡はなし)
ただし今後ソースコードが改変されたり、見落としている可能性もあるので絶対に安全とは言い切れない、リスクがあるということはご理解の上、自己責任でご利用ください。
執筆時点での情報なので、今後アップデートにより実行手順が異なる可能性があります。
その場合製作者のDiscordに英語のインストール手順があるのでそちらに従ってください。(後述するgithub内にリンクがあります)
以後、DYOR、NFA。
①自動化システムのzipファイルをダウンロードする
Windows10での導入手順です。Macはまだ開発中の模様。
こちらのサイトから自動化システムのzipファイルをダウンロードします。
画面右側の「Code」のプルダウンから「Download ZIP」をクリックして、ZIPファイルをダウンロード後、解凍しておきます。
②WSLをインストールする
WSLはWindows Subsystemと呼ばれるもので、Windows上でLinuxやUbuntuを動作させるものです。
UbuntuはWindowsやMacと同じOSの種類です。自動化システムがWindows上で実行できないプログラムのため事前に入れておく必要があります。
Windowsの検索窓から「Windowsの機能」を検索して、Windowsの機能へ移動します。
「Linux 用 Windows サブシステム」にチェックを入れて、OKをクリックします。
設定が完了したら再起動が必要なので、一度PCを再起動しておきます。
③Ubuntuをインストールする
②でWindows上でUbuntuが動くようになりました。続いてUbuntuをインストールします。
Windowsの検索窓から「microsoft store」を検索し、Ubuntu 18.04LTSアプリに移動します。
未インストールの場合は青いボタンが「Get」となっていますので、クリックしてインストールを行います。
完了したら「Launch」ボタンになるので、こちらで起動します。
Ubuntuターミナル(黒い画面)が開いたら成功です。初回のみユーザー名とパスワードの入力が施されるので任意の情報を入力しておきましょう。
④必要なパッケージをインストールする
初回のみpythonやweb3.0のインストールが必要です。
以下3つのコマンドを1行ずつ順に入力していきます。だだだっといろいろ流れますが最終的にSuccessfullyかDoneが出てればOK。
Ctlr+Vのショートカットで貼り付けできない場合、右クリックで貼ります。
sudo apt update
sudo apt install python3 python3-pip
pip3 install web3
インストールが完了したらターミナルは閉じておきます。
⑤Ronin サブアカウントの秘密鍵を取得する
Roninのサブアカウントの秘密鍵はアカウントごとに存在しており、Chromeの拡張機能であれば右上の人間マークから「Manage」へ移動して取得します。
該当のアカウントを選択して「View Private Key」をクリックし、Roninのパスワードを入力して「Next」を押すと取得できます。
ここで取得した秘密鍵を控えておきます。
たびたび注意喚起になりますが、間違っても他人に秘密鍵は共有しないでください。流出した場合はサブアカウントから資産を奪われます。
⑥jsonファイルに送金情報を入力する
①でダウンロードしておいた「PayoutScript-xyZ-main」フォルダを開き、「slp-payout-config.json」をメモ帳で開きます。ここにclaimするサブアカウントのronin addressや秘密鍵の情報を入力します。
jsonファイルは以下のような内容になっています。
画像の下線が編集する部分です。間違えないよう正確に入力します。
"AcademyPayoutAddress": SLPを受け取る自分のRonin Walletアドレス
"Name": スカラーの名前
"PrivateKey": 上記で取得したスカラー用サブアカウントの秘密鍵
"AccountAddress": スカラー用サブアカウントのRonin Walletアドレス
"ScholarPayoutAddress": 送金先のスカラーのRonin Walletアドレス
"ScholarPayoutPercentage": スカラーに支払うパーセンテージを0~1で指定(0.3なら30%)
(不要)"ScholarPayoutPercentage_description": スカラーに支払うパーセンテージの説明
中カッコ({})で囲まれた情報が1ブロックであり、送金したいスカラー一人あたりの情報をカンマ区切りで入力しています。
送金したい数だけカンマ区切りで情報を追加していきます。増えるとこんな感じです。
ScholarPayoutPercentage_description はあってもなくてもよいので消してます。
※ScholarPayoutPercentage(スカラーに支払われるパーセンテージ)ですが、先にclaim分のSLPから作者への1%の寄付が引かれるので実際は少し減ります。
ぴったりの割合を渡したい場合は、例えば30%をスカラーに支払っている場合30.4%にするなど端数の微調整が必要です。
⑦実行する
システムが実行される流れとしては、スカラー用サブアカウントでclaimした後、自分のアカウント・スカラーのアカウント・作者のアカウントのそれぞれ3つに指定の割合で一斉送金する形になります。
「PayoutScript-xyZ-main」フォルダに対して、Shift + 右クリックで「Linux シェルをここに開く」を選択し黒いターミナル画面を開きます。
ターミナルで以下のコマンドを実行すると、jsonファイルに設定したスカラーの数だけ自動Claimして送金を行います。
python3 PayoutScript-xyZ.py slp-payout-config.json
以下画像ではスカラーの個人情報等を隠しているので少し見づらいかもしれません。
実行すると、まずは先ほどのjsonに設定したアカウントにclaimしていないSLPがあるかチェックしてくれます。
「Would you like to claim SLP?」と聞かれるので、SLPの数量を確認して問題なければ「y」を入力してEnterを押します。30秒ほど待つと、SLPがclaimできた場合は自動でclaimされRonin walletに入ります。
初回はブラウザでもログインしておき、SLPがちゃんと自分のWalletに入るか確認しておくとよさそうです。
次に、送金を行います。主に色のついた部分で送金に間違いがないか最終チェックしておきます。
値の表示時点で、スカラーへの支払いの割合などが正しいか確認して調整してみてください。
赤:スカラーに送るSLP
青:自分のアカウントに送るSLP
緑:claimするアカウントのronin address(ここは同じになるはず)
橙:上から順に送金先のスカラーのアカウント、SLPを受け取る自分のアカウント、利用料の1%のSLPを寄付する作者のアカウント(自動設定)
問題なければ「Would you like to execute transactions (y/n) ?」と聞かれるので、「y」を入力してEnterを押します。
これで内部的にトランザクションが承認され送金完了です。
jsonファイルに設定したスカラーの数だけ繰り返します。
⑧おまけ:トランザクションのログを見る
プログラムの実行を行うとフォルダ内に「logs」というフォルダが自動作成されます。
logs-日付.txtという形式で実行時のログが保管されていくので、roninchain explorer上で後から簡単に見返すことができます。
おわりに
ここまで読んでいただきありがとうございました!
今回はjsonファイルやターミナルを触ったことがない方にとっては難しいく、リスクもあるような重い内容になりましたが
自動化、外注化に挑戦するマネージャーの方が多いので、一例として紹介してみました。
もしよりよいツールがあったり、間違っている部分があれば教えていただけると幸いです。
それでは👋