Internet Computer の基礎 — パート3:サイクルウォレットへの資金供給(日本語訳)

tokuryoo
DfinityJP
Published in
11 min readAug 29, 2022

Medium の DFINITY 公式の記事 Internet Computer Basics — Part 3: Funding a Cycles Wallet (2022/7/30) の日本語訳です。

キャニスター と Dapp を稼働させるためのサイクルを得るためのコマンドラインと NNS フロントエンド Dapp の利用ガイドです。

Internet Computer では、開発者は稼働中のキャニスターに「サイクル」を供給する必要があり、このサイクルはサイクルウォレットに保存されています。前回は、サイクルウォレットの作成方法と、DFINITY Cycles Faucet から無料でサイクルを得る方法について説明しました。今回は、コマンドラインまたは Network Nervous System(NNS)フロントエンド Dapp を利用してサイクルを購入し、より多くのサイクルを入手する方法について説明します。

ICPユーティリティトークンを取引所で購入する方法

まず、Coinbase や Binance などの取引所から ICP ユーティリティトークンを入手する必要があります。ここでは、Coinbase で ICP トークンを購入する方法の一例を紹介します。

  1. Coinbase のアプリにサインインする
  2. 「Trade」タブに移動します
  3. 「Internet Computer」コインを選びます
  4. 購入を完了します

Binance、Kraken、Gemini のような他の仮想通貨取引所でも同様の流れになるはずです。

ICP トークンを取引所から開発者のアカウントに送る方法

NNSフロントエンド Dapp などの Internet Computer ツールは、ツールが直接管理するアカウントでしか動作しないため、取引所のアカウントから開発者のアカウントに ICP トークンを送る必要があります。

まず、ICP トークンの送付先であるあなたの台帳のアカウント ID を知る必要があります。

dfxを使用してサイクルを購入する予定がある場合(これについては後述します)、以下のコマンドを入力しておきます。ただ、資金を送る前に、identity ファイルをバックアップしておいてください。

%  dfx ledger account-id
5c40ac64d8f8d12f4c1355ec0b1cf54725322f4ecf2162fbda1937c3c0cf4886

NNS dapp から台帳のアカウント ID を取得するには、https://nns.ic0.app で Internet Identity の認証情報を使います。下記のように、残高のある口座の一覧が表示されます。

アカウント ID は、NNS の「Accounts」ページで取得できます

アカウント ID を確認したことで、トークンを送信する準備が整いました。Coinbase のアプリでは、以下のような流れになります。

  1. 「Pay」 画面に進みます。
  2. 「Send. 」を押します。
  3. ICPトークンを選択します。
  4. コマンドラインから受け取った台帳のアカウント ID を入力します。
  5. 注文をプレビューし、「Send.」を押します。
Coinbase からあなたの開発者アカウントへのトークン送信

数秒以内に、あなたの口座の残高が変更されたことを確認できます。ここでは、dfx identity の残高を確認する方法の一例を下記で示します。

%  dfx ledger --network ic balance
0.74960000 ICP

コマンドラインから新しいウォレットを作成する方法

これで、あなたのウォレット用の新しい空のキャニスターを作成できます。

%  dfx ledger --network ic create-canister $(dfx identity get-principal)
--
amount 0.25
Transfer sent at BlockHeight: 3342057
Canister created with id: "ttk2q-5yaaa-aaaap-qadba-cai"

キャニスターを作成したら、このキャニスターにウォレットをデプロイする必要があります。このttk2q-5yaaa-aaaap-qadba-caiは、前のステップで受け取ったキャニスターの ID です。

%  dfx identity --network=ic deploy-wallet ttk2q-5yaaa-aaaap-qadba-cai
Creating a wallet canister on the ic network.
The wallet canister on the "ic" network for user "old_identity" is "ttk2q-5yaaa-aaaap-qadba-cai"

これで、下記のように、新しいウォレットの残高を確認できます。

% dfx wallet --network=ic balance
4.211 TC (trillion cycles).

現在のウォレットの設定は、あなたのファイルシステムの~/.config/dfx/identity/<identity_name>/wallets.json フォルダに保存されています。例えば、私のパソコンでは、このファイルは下記のようになっています。

{
"identities": {
"old_identity": {
"ic": "ttk2q-5yaaa-aaaap-qadba-cai"
}
}
}

既存のウォレットにサイクルを追加する方法

例えば、既にウォレットがあったとして、キャニスターをデプロイするのに十分なサイクルがないとします。どのようにサイクルを追加するのでしょうか?

下記の手順に従って処理します。

  1. ICPトークンをあなたが管理する台帳のアカウント ID へ送ります。
  2. ICPトークンをサイクルに変換し、サイクルウォレットキャニスターに預けます。

これらの操作は、コマンドラインまたは NNS フロントエンドの Dapp を利用して行えます。

コマンドラインを使用してウォレットにサイクルを追加する

まず、台帳のアカウント ID に十分な資金があることを確認します。

% dfx ledger --network=ic balance
1.42550150 ICP

この例では、私のアカウントに ~1.43 ICP あります。資金が足りない場合は、「ICP ユーティリティトークンを取引所で購入する方法 」の項をご覧ください。

次に、下記でウォレットアドレスを取得する必要があります。

% dfx identity --network=ic get-wallet
ttk2q-5yaaa-aaaap-qadba-cai

この例では、私のウォレットアドレスはttk2q-5yaaa-aaaap-qadba-caiです。

dfx ledger top-upコマンドを使用してウォレットにチャージできます。

% dfx ledger --network=ic top-up --amount 0.5 ttk2q-5yaaa-aaaap-qadba-cai
Transfer sent at BlockHeight: 3350701
Canister was topped up!

サイクルの残高が増えたことを確認できます。

% dfx wallet --network=ic balance
4.211 TC (trillion cycles).

また、下記のように、アカウント残高が ~0.5 ICP 減少していることを再確認できます。

% dfx ledger --network ic balance
0.92530150 ICP

NNS のフロントエンドアプリを使ったウォレットへのサイクルの追加

グラフィカルな UI がお好みの場合は、NNS のフロントエンドアプリを使ってウォレットにサイクルを追加できます。

下記のように、このコマンドで取得できるウォレットキャニスターのアドレスが必要です。

% dfx identity --network=ic get-wallet
ttk2q-5yaaa-aaaap-qadba-cai

この例では、私のウォレットアドレスはttk2q-5yaaa-aaaap-qadba-caiです。

次に、https://nns.ic0.app で Internet Identity の認証情報を使用して NNS dapp にログインしてください。下記のように、残高のある口座のリストが表示されます。

NNSの「Accounts」ページからアカウント残高を確認できます。

「Canisters」タブに移動し、「Create or Link Canister」をクリックします。

NNS の「Canisters」タブ

下記のように「Link Canister to Account」を押します。

NNS の「Add Canister」画面

下記のように、先ほどターミナルから受け取ったウォレット ID を入力し、「Attach Canister」をクリックします。

NNS の「Attach Canister」画面

キャニスター ID を含むキャニスターステータス画面が表示されます。あなたの NNS の ID をキャニスターのコントローラーとして追加していないため、「You are not the controller of this canister. 」というステータスメッセージが表示されます。これで OK です。このキャニスターにサイクルを追加することは可能です。これを行うには、下記のように「Add Cycles」ボタンを押します。

NNS の「Canister Details」画面

下記のように、サイクルの購入に使用するアカウントを選択します。

NNS の「Top Up Canister」画面

サイクルに変換したい ICP の量を入力します。何サイクル入金されるかのプレビューが表示されます。その後、下記のように「Review Cycles Purchase」を押してください。

NNSサイクル購入画面

下記のように、「Confirm and Send」ボタンを押すと、購入が確定します。

NNS の「Review Cycles Purchase」画面

これで取引は完了です!

NNS のサイクル購入確認画面

下記のようにコマンドラインを使ってウォレットの残高を確認できます。

% dfx wallet --network=ic balance
19001371501346 cycles.

まとめ

この記事では、下記をどのようにできるかをデモしました。

  • 取引所から ICP トークンを入手する。
  • コマンドラインから新しいウォレットを作成し、ICP のアカウントから資金を供給する。
  • NNS のフロントエンド Dapp を使って、コマンドライン または GUI からウォレットにサイクルを追加する。

これで、いくつかのキャニスターを本番環境へデプロイする準備が整いました!次回の「Internet Computer の基礎」では、キャニスターのデプロイメントについて説明する予定です。

____

internetcomputer.org で構築を開始し、forum.dfinity.org で開発者コミュニティに参加しましょう。

--

--