> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sequence.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Sequence Builderでゲーム内通貨をデプロイする方法

> ERC20コントラクトをデプロイしてミントすることで、独自のゲーム内通貨を作成する方法を学びます。ファンジブルトークンとノンファンジブルトークンの違いについても理解しましょう。

## はじめに

このガイドでは、ERC20コントラクトをデプロイしてミントすることで、独自のゲーム内通貨を作成する手順を解説します。

通貨トークンは、ゲーム内経済や取引、プレイヤー同士のやり取りに新たな価値や可能性をもたらします。

#### ERC20トークンとは？

ERC20トークンはデジタルコインであり、[ERC20というルールセット](https://ethereum.org/en/developers/docs/standards/tokens/erc-20/)に従っているため、インターネット上のさまざまな場所で簡単に利用できます。これらのトークンは価値を表したり、特定の用途で使われることが多いです。他によく使われるNFTとは異なり、これらのトークンはファンジブル（代替可能）です。

#### ファンジブルとノンファンジブルの違い

ここが重要な違いです。

ファンジブルトークン（ERC20トークンなど）は互換性があり、1単位は他の1単位と同じ価値を持ちます。ドルやユーロのように、簡単に分割や合算が可能です。

ノンファンジブルトークン（ERC721トークンなど）は、デジタルアートやコレクティブルのような固有のアイテムを表します。各トークンは唯一無二で、同じもの同士で直接交換することはできません。

<Warning>
  前提条件：プロジェクトの作成

  このガイドは、すでに[Builderにサインアップし、プロジェクトを作成済み](/solutions/builder/getting-started)であることを前提としています。
</Warning>

## ステップ1：コントラクト画面へ移動

左上の `project` から通貨を作成したいプロジェクトを選択し、`contracts` セクションに進み、`+ Deploy new contract` を選択します。

<Frame>
  <img src="https://mintcdn.com/sequence-0fb8d9e6/L5_N-K7qQI5_ZReo/images/collectibles/select_project_new_contract.png?fit=max&auto=format&n=L5_N-K7qQI5_ZReo&q=85&s=5a96f2b1a86676cc3ab0fced82f58e95" alt="プロジェクトと新規コントラクトの選択" width="1906" height="820" data-path="images/collectibles/select_project_new_contract.png" />
</Frame>

## ステップ2：通貨トークンの選択

`View more contracts` をクリックします。

<Frame>
  <img src="https://mintcdn.com/sequence-0fb8d9e6/L5_N-K7qQI5_ZReo/images/collectibles/view_more_contracts.png?fit=max&auto=format&n=L5_N-K7qQI5_ZReo&q=85&s=305453b406ff6fc5f128c921e5ac255c" alt="さらにコントラクトを見る" width="1396" height="613" data-path="images/collectibles/view_more_contracts.png" />
</Frame>

Currency Tokenコントラクトを選択し、`deploy` をクリックしてSequence監査済みコントラクトをデプロイします。

<Frame>
  <img src="https://mintcdn.com/sequence-0fb8d9e6/L5_N-K7qQI5_ZReo/images/collectibles/select_currency_deploy.png?fit=max&auto=format&n=L5_N-K7qQI5_ZReo&q=85&s=8d663a656e405e120008f17ebea25227" alt="通貨の選択とデプロイボタン" width="2544" height="1175" data-path="images/collectibles/select_currency_deploy.png" />
</Frame>

## ステップ3：コントラクトの詳細を入力

コントラクトの `name` と `symbol` を指定して、詳細を入力します。

<Frame>
  <img src="https://mintcdn.com/sequence-0fb8d9e6/L5_N-K7qQI5_ZReo/images/collectibles/currency_contract_details.png?fit=max&auto=format&n=L5_N-K7qQI5_ZReo&q=85&s=5df7691bb2d0829ed64957eed8d3b26c" alt="通貨の選択とデプロイボタン" width="2544" height="1175" data-path="images/collectibles/currency_contract_details.png" />
</Frame>

<Warning>
  注意：

  `name` や `symbol` は後からBuilderのインターフェースで変更できますが、Sequence内では更新されるものの、一般的なエクスプローラーは情報を再インデックスしないため、最初に入力した内容がそのまま残ります。
</Warning>

## ステップ4：コントラクトのデプロイ

[http://sequence.app/sign-transaction](http://sequence.app/sign-transaction) のポップアップウィンドウからコントラクトをデプロイし、`confirm` を選択して署名します。

<Frame>
  <img src="https://mintcdn.com/sequence-0fb8d9e6/L5_N-K7qQI5_ZReo/images/collectibles/sign_deploy_transaction.png?fit=max&auto=format&n=L5_N-K7qQI5_ZReo&q=85&s=a7eb1738ac94a5a9fc5ccde9b8c5a181" width="200" data-path="images/collectibles/sign_deploy_transaction.png" />
</Frame>

<Warning>
  本番ネットワークでは、Builderによるデプロイは自己負担として扱ってください。関連するウォレットやコントラクトにGas Sponsorshipを設定していても、デプロイを実行するウォレットにはデプロイ用のネイティブガストークンが十分に必要な場合があります。
</Warning>

<Note>
  すべてのテストネットでは無料で取引できます。
</Note>

## ステップ5：コントラクトにMinterロールを追加

まず、`contracts` セクションで先ほどデプロイしたコントラクトを選択します。

<Frame>
  <img src="https://mintcdn.com/sequence-0fb8d9e6/L5_N-K7qQI5_ZReo/images/collectibles/select_contract.png?fit=max&auto=format&n=L5_N-K7qQI5_ZReo&q=85&s=5ff50a2faf0d4f9798aaf6d4fb86c9d7" alt="コントラクトの選択" width="2560" height="1100" data-path="images/collectibles/select_contract.png" />
</Frame>

次に、`Write Contract` セクションに進みます。

<Frame>
  <img src="https://mintcdn.com/sequence-0fb8d9e6/L5_N-K7qQI5_ZReo/images/collectibles/select_write_contract.png?fit=max&auto=format&n=L5_N-K7qQI5_ZReo&q=85&s=c2595f9779036854c41ffe0bbd3be3c8" alt="コントラクトの書き込み" width="1797" height="762" data-path="images/collectibles/select_write_contract.png" />
</Frame>

Write Contractタブの `grantRole` セクションで、以下の内容を入力します。

`bytes32 role`: `0x9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6`
`address account`: `<Wallet Address>`

ウォレットアドレスは右上からコピーし、トークンを受け取るウォレットに送信できるようにします。

<Frame>
  <img src="https://mintcdn.com/sequence-0fb8d9e6/L5_N-K7qQI5_ZReo/images/collectibles/copy_address.png?fit=max&auto=format&n=L5_N-K7qQI5_ZReo&q=85&s=f15836abd22c6a65a0691e808595ab50" alt="アドレスのコピー" width="1637" height="764" data-path="images/collectibles/copy_address.png" />
</Frame>

<Frame>
  <img src="https://mintcdn.com/sequence-0fb8d9e6/L5_N-K7qQI5_ZReo/images/collectibles/grant_role.png?fit=max&auto=format&n=L5_N-K7qQI5_ZReo&q=85&s=252c397e379737f715a8614a003a1162" alt="ロールの付与" width="1567" height="729" data-path="images/collectibles/grant_role.png" />
</Frame>

`write` を選択し、これまでと同様にポップアップウィンドウでトランザクションに署名して完了します。

`Response Success` の確認メッセージが表示されます。

<Note>
  入力するロール文字列は、solidityでは`solidityPackedKeccak256("MINTER_ROLE")`、javascriptでは`ethers.solidityPackedKeccak256(ethers.toUtf8Bytes("MINTER_ROLE"))`の結果です。
</Note>

<Tip>
  一般的には、リレーヤーウォレットを使ってトランザクションを送信するCloudflare Workerなどのオフチェーン計算を利用するパターンが多く、その場合はアカウント欄に入力します。詳しくは[こちら](/guides/mint-collectibles-serverless#mint-collectibles-using-a-gasless-serverless-transactions-api)をご覧ください。
</Tip>

## ステップ6：ウォレットアドレスにトークンをミント

`Write Contract` セクションの `mint` カードに進み、トークンを受け取りたいウォレットアドレスと、18桁の小数で表したトークン数を入力します。たとえば100トークンの場合は `100000000000000000000` と入力します。

<Frame>
  <img src="https://mintcdn.com/sequence-0fb8d9e6/L5_N-K7qQI5_ZReo/images/collectibles/mint_currency.png?fit=max&auto=format&n=L5_N-K7qQI5_ZReo&q=85&s=475c5e69bd32d4782bc8f9ec71bac6ae" alt="トークンのミント" width="1540" height="730" data-path="images/collectibles/mint_currency.png" />
</Frame>

## ステップ7：ミントした通貨の確認

これで完了です！

`Transactions` タブで、ウォレットアドレスに対してブロックチェーンに送信されたトランザクションを確認できます。

<Frame>
  <img src="https://mintcdn.com/sequence-0fb8d9e6/L5_N-K7qQI5_ZReo/images/collectibles/view_currency_transactions.png?fit=max&auto=format&n=L5_N-K7qQI5_ZReo&q=85&s=5b7e0e89708d3ff096b8973368fa9c97" alt="通貨トランザクションの確認" width="1336" height="519" data-path="images/collectibles/view_currency_transactions.png" />
</Frame>
