5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ERC1155: 1つのコントラクトで複数の種類のトークンを管理する方法と事例

Last updated at Posted at 2023-06-07

ERC1155について

本記事では、ERC1155に関して、概要、動機、実装、事例を簡単に説明します。

概要

ERC1155[EIP]は、複数の異なる種類のトークンを1つのコントラクトで管理するための規格です
同じ種類であれば代替可能で、異なる種類であれば代替不可能となり、代替可能性と非代替可能性を併せ持つことが特徴です。
Enjinというゲーム系のプロジェクトによって提案されました。
[EIP] https://eips.ethereum.org/EIPS/eip-1155

動機

複数種類のトークンを作成する際のガス代の節約を動機に提案されました。
例えば、ゲーム開発などでは、数千種類のトークンを作成する必要がある可能性があります
数千種類のERC20をデプロイすると膨大なガス代がかかります。
1つのコントラクトで管理できればガスを節約することができます。

実装

tokenに対して、idとamountを割り振り、idがtokenの種類、amountがその量を表すような実装です。
実装につき、下記をご参照ください。
[openzeppelin ドキュメント] https://docs.openzeppelin.com/contracts/3.x/erc1155
[実装] https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC1155/ERC1155.sol
特に、safeBatchTransferFromでは、複数のアイテム(装備一式など)を一括で送信できます。もしアイテムがERC20によって表現され、複数コントラクトに分かれていた場合、カスタムコントラクトに対して、approveし、一括送信のトランザクションを組む必要がありますが、そういったことも必要ありません。

事例

Enjinは、ゲーム向けにトークン発行プラットフォームを提供しています。
Enjin CoinというFTを裏付けて、ゲーム開発者は誰でもERC1155を発行、販売[ENJIN market]できます。
ERC1155をバーンすると、裏付けられたEnjin Coinを取り出せます。
これにより、ERC1155が発行されればされほど、Enjin Coinが希少価値が上がります。また、NFTの最低価値も担保されます。
[ENJIN marketplace] https://enjinx.io/eth/marketplace

補足

ERC1155にはいくつかの注意点があります[qiita]
ERC1155では、ownerOf関数が定義されていなく、token_idに対する所有者を得るには、indexerなどを活用する必要があります。その他、下記の記事に注意点が載ってあります。
[qiita]https://qiita.com/okamu_/items/6dc57360d5bb262da546

5
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?