# Manifoldを使ってNFTコントラクトを作成するチュートリアル

By [ranbuta](https://paragraph.com/@ranbuta) · 2022-03-11

---

![](https://storage.googleapis.com/papyrus_images/ea95094b6215f52a00d6db82b26d1be79d9e14808423c3c38b565da46b17f8ca.jpg)

Manifold（manifold.xyz）ってなに
==========================

[https://manifold.xyz/](https://manifold.xyz/)

*   コーディング知識なくても自分のNFTコントラクトが作成できるツール
    
*   データの格納はArweaveです、IPFSと違う方法で半永久に保存する分散型ストレージネットワーク
    
*   データサイズの上限は200MB
    
*   Ethereumメインネット（とテスト環境のGoerli）だけ対応
    
*   ERC-721（一品物に適する規格）とERC-1155（一品物も、同じものが複数あるもの（入札プレゼントとか）も作れる規格）に対応
    
*   コントラクトデプロイ・NFTミント・ロイヤリティ設定にガス代は必要
    
*   ミントしたあとも、ガス代払えばmetadataの変更は可能、例えばタイプミス修正とか、季節が変わったら背景も（※手動で）変わるなど特殊な作品も実現可能
    
*   ERC-721でも一応ナンバリング（Nanika #1/10, Nanika #2/10…みたいなやつ）ができる機能があります（量が多いとガス代は跳ね上がります）
    
*   ERC-1155で作ったものは一度に複数のアドレスにエアドロができる機能
    
*   ホルダーのスナップショット機能もあります
    

そもそも「独自コントラクト」とは何か
------------------

「独自コントラクト（略して独コン）」とは本来「**自分でSolidityというプログラミング言語でコードを書いたスマートコントラクト**」です、でも日本のNFTコミュニティでは多分ニュアンスが違って、「マーケットプレイス（特にOpenSea）共用コントラクト以外のコントラクト」という意味になってると私は思います

Manifold経由で作成されたコントラクトはあくまで「**Manifoldが提供してるテンプレから生成されたコントラクト**」です、Chocofactory経由もFoundation経由も同様です

でもManifold / Chocofactory / Foundation経由でデプロイしたコントラクトの所有者はクリエイター自身です、Web3というバズワードの哲学的にクリエイターはプラットフォームの共用コントラクトではなく、自分のコントラクトで自分の作品をミントすべきです

FoundationのCEOも言ってます

[https://twitter.com/saturnial/status/1489082568330731520](https://twitter.com/saturnial/status/1489082568330731520)

事前準備
====

1\. ガス代の準備、今30 gwei以下になることが多いので、0.02 ETHあれば大丈夫なはずです、もし120 gweiに高騰したら0.08 ETHくらいでしょうか

2\. テスト環境のGoerli上のテスト用ETHが要ります、このGoerli Faucetから無料で受け取れますが、今（2022年9月）はalchemyのアカウントを作成してログインが必須です

[https://goerlifaucet.com/](https://goerlifaucet.com/)

まずはalchemyのアカウントを作成

![](https://storage.googleapis.com/papyrus_images/a88e0f765b700df49eb9952100248bce608a273dd594564264c7f7803e378c6e.png)

![](https://storage.googleapis.com/papyrus_images/0f9db74284c25accdcf5ed296be164a34fcf8341861f1aac02620ec9a0325cde.png)

ログインしたあとはfaucetに戻って自分のアドレスを入れて「Send me ETH」を押して完了です

![](https://storage.googleapis.com/papyrus_images/8a2c5871b165985898e4d2d592b44d168f3b54edbf5ab52dbea0d6d4b2a27093.png)

Goerli上のテスト用0.1 ETHもらってます、当然このETHは売れません

[https://goerli.etherscan.io/tx/0xc9df7771c0f9589dec281418c8d267c5f1a908618a63ba4db7f7f4d83b8d7b48](https://goerli.etherscan.io/tx/0xc9df7771c0f9589dec281418c8d267c5f1a908618a63ba4db7f7f4d83b8d7b48)

3\. Manifoldのアカウント

[https://studio.manifold.xyz](https://studio.manifold.xyz) にアクセスして

[https://studio.manifold.xyz/](https://studio.manifold.xyz/)

Connectして署名して

![](https://storage.googleapis.com/papyrus_images/ddc8dc93eba94a162ea2d7dbc91e49a20423b0eb1337c78f1ceef64cad6bbd7d.png)

登録して完了です

![](https://storage.googleapis.com/papyrus_images/6fd54b39f3903107c559af19d6d897ce5e161b653d6c70530c9e56ad9d18d470.png)

実際にやってみる（ERC-1155）
==================

### テスト用コントラクトをデプロイ

[https://](https://)[studio.manifold.xyz](https://studio.manifold.xyz) にアクセスしてNew contract

![](https://storage.googleapis.com/papyrus_images/9b55902cfdc1e7923a2c259bc91f0d4f28eea9522a720e1eded35f6ae15c51f8.png)

*   Contract nameはunicode対応
    
*   Symbolは英字大文字
    
*   ASCII markはこだわりがなければ適当でいいです
    

![](https://storage.googleapis.com/papyrus_images/04928bb74ef25b0aa89efddc07b190d370b4cd2c359bcc59fac0e03c6c857746.png)

Deploy on Goerli (記事を書いた当時はRinkeby) 押してウォレットでトランザクション通して、3～5分くらい待てばVerifyまで進むはずです

![](https://storage.googleapis.com/papyrus_images/fadf43c796fddc48b2efd5989bc8feaf7ac58cc6e2d5dfd4ef31adab2c190dc5.png)

![](https://storage.googleapis.com/papyrus_images/78be744b3dcea3789c068a343e389393e9a640becbbc8ca65d4a9ea69b43116f.png)

### テスト用NFTをミント

Goerli上にテスト用のNFTをミントします（一応この手順はスキップできますが、やっておきましょうね）

![](https://storage.googleapis.com/papyrus_images/e793aad0825e8f1c449292b9ef5f242f0d279d27dcf72682d1ed95fd189ab0bf.png)

![](https://storage.googleapis.com/papyrus_images/8c60fd174d58a8da6c8bc39190b9fd0b6155aa742b90e3924627931babee1c62.png)

![](https://storage.googleapis.com/papyrus_images/e9d352914abf067309bdcda0743f6a04f5d09be4b3312356ca1941dc969dea04.png)

下の方に属性（Properties）項目があります、キャラの髪色とか、服装とか、背景のロケ地とか、いろいろ自由に設定できます

![](https://storage.googleapis.com/papyrus_images/10f01a09233776d30d1bf3845e8beac2de20ead43f0a4bc22701ab1c2c946249.png)

ミントするときの受取先は「Airdrop」と「自分」が選べます

![](https://storage.googleapis.com/papyrus_images/65d8c6523dffb4142ecd4fb29838deb5b78d00551e2156654df007f159344219.png)

ERC-1155ならAirdropの受取先は一度に複数のアドレスにミントできます、ガス代節約になります

自分のアドレスにミントする場合は、1枚も1000枚もガス代はほぼ同じです

![](https://storage.googleapis.com/papyrus_images/b5a15f31d701f95a6e6cd5e4fc8f09c434f186dc6834e6e1f6a6d686038978b5.png)

Airdropのトランザクションを通してVerifyが完了すると大量に🔥と💎が画面に湧いてきます

![](https://storage.googleapis.com/papyrus_images/53d029616f1090c76c959e365ad31503110aee516dc03a24d861397df85cf01c.png)

### 本番環境（ETHメインネット）にコントラクトをデプロイ

いよいよイーサリアムのメインネットにデプロイします、一度デプロイすると、名前・シンボル・タイプ（ERC-721 / ERC-1155）・ASCIIアートは永久に変更できないので、タイプミスがないか、本当にこの名前でいいか、よくチェックしてから進んでください

DashboardのDeploy on mainnetを押して

![](https://storage.googleapis.com/papyrus_images/97d692c8479af8ec95aeb8e8d7642dc10294feb83d054031f69d6edc1b70b79f.png)

ここはガス代が要ります、実際は0.0057 ETHを使いました

[https://etherscan.io/tx/0x8e122522e64fed94a1f06f3497378d3f4e916d89aac01ac7ca24ae340d8f43c6](https://etherscan.io/tx/0x8e122522e64fed94a1f06f3497378d3f4e916d89aac01ac7ca24ae340d8f43c6)

トランザクションが通したらVerifyまで待ちます、Rinbekyでやったことと同じです

### 本番環境（ETHメインネット）にNFTをミント

先にGoerliに作ったNFTをイーサリアムのメインネットにデプロイします、Mint on Mainnetを押して受取先を選びます

![](https://storage.googleapis.com/papyrus_images/b802c5e5768d70b08665912da23e3ba8bd7f99d7eb52f484828e57bb26cb319c.png)

テスト用のものと違い、本番用はArweaveにアップロードするので時間がかかります、場合によって10分以上かかることもあります

![](https://storage.googleapis.com/papyrus_images/ad88870bae8621a4ff30838b01cb150e2f487f44a5d1d85db31809fd824c429f.png)

Awaiting signatureまで進んだらミントのトランザクションです、ガス代は要ります、2つのアドレスにAirdropして0.0048 ETHを使いました

[https://etherscan.io/tx/0xb5f295e00478a76d9124c91435a35e56b2b98146d2d2717b307e68ce12705b1c](https://etherscan.io/tx/0xb5f295e00478a76d9124c91435a35e56b2b98146d2d2717b307e68ce12705b1c)

🔥💎🔥💎🔥💎🔥💎🔥💎🔥💎🔥💎🔥💎🔥💎🔥💎🔥💎🔥💎🔥💎🔥💎🔥💎🔥💎🔥💎🔥💎🔥💎🔥💎🔥💎🔥💎🔥💎🔥💎🔥💎🔥💎🔥💎🔥💎🔥💎🔥💎🔥💎🔥💎🔥💎🔥💎🔥💎🔥💎🔥💎🔥💎🔥💎🔥💎🔥💎🔥💎🔥💎🔥💎🔥💎🔥💎🔥💎🔥💎🔥💎🔥

![](https://storage.googleapis.com/papyrus_images/172a57efc942c6f4a7351823a8d78d090673097d094bf403dae5be72dcc38942.png)

ERC-1155ならあとから追加ミントもできます

![](https://storage.googleapis.com/papyrus_images/9b53a41bc7edd6ac21be9b7495e9d17b47ec2a448ae7a08f26ff89064218b22c.png)

### ロイヤリティ設定

別にロイヤリティ要らない人はスキップしてください

![](https://storage.googleapis.com/papyrus_images/c0d6f70253244041b305fb5d9a630dca7ca63cbeaa2cff00635c256e7054746c.png)

「OpenSea以外のマーケットプレイス（LooksRareやRarible）」でのロイヤリティ受取先とパーセントを設定します、OpenSea上のロイヤリティは赤いリンクから別途設定する必要があります

![4.2069%やりたいですけど小数点4桁はサポートされてませんね……](https://storage.googleapis.com/papyrus_images/e298dd3ac232c51c3278d5f5e85c6a2082cf3762841e49304c7ec90cfc1ee837.png)

4.2069%やりたいですけど小数点4桁はサポートされてませんね……

当然直接にコントラクトからでも設定できます、basisPoints: 810はロイヤリティ8.1%という意味です

![](https://storage.googleapis.com/papyrus_images/04d31615b85af35317b9c5d4597b56695c5d851d8fdd7759a818fda012b94a91.png)

* * *

実際にやってみる（ERC-721）
-----------------

基本的にはERC-1155と大差ないです

![](https://storage.googleapis.com/papyrus_images/c71c0197393ea950644daa261d26e766b5e24a122f175819f05c5df2d0102b60.png)

しかしAirdropは一度に1つのアドレスへしかミントできません

![](https://storage.googleapis.com/papyrus_images/c047dcd9f443bad9c7cf8ace36c5bd11cbe37ca3d14c725ebcee63140e4bdfc8.png)

同じものをナンバリングにしてミントする機能もありますが

![](https://storage.googleapis.com/papyrus_images/257e7889d65c3365f5d0d49243ffea0f4a2b655cbf79861792bb0855faec6353.png)

こっちは1つだけのガス代

![](https://storage.googleapis.com/papyrus_images/bd8946e281d0915450acf72e806adf6ae61b816096437e9f7680ed66122a2894.png)

こっちは#1, #2, #3を一斉にミントするガス代、高くなります

![](https://storage.googleapis.com/papyrus_images/7e5a4e50200b07aa9fc91994f63af43de951465d11ea763092e6b9fc5dee22f4.png)

* * *

各マーケットプレイスで確認
-------------

ERC-721で作ったほうはOpenSeaでは自分でコレクションの名前を設定する必要がありました、なんで……

![](https://storage.googleapis.com/papyrus_images/d021368ea98afedc97377b0e647320f6e6a558b90086a55b040b6a9db17d3446.png)

LooksRareやRaribleは普通にmetadataとロイヤリティ読み込めてます

![](https://storage.googleapis.com/papyrus_images/8a1da1364ce719e4cce7a7842e6ccecc4d310bed291001dac1032ab7a544131d.png)

ERC-1155で作った方、LooksRareでは上手くコレクションタイトルと作品タイトルが表示できません

![](https://storage.googleapis.com/papyrus_images/eb6f81a56ad8ccf3e146606e46022c86bcbb39b267d416058771cd9123968990.png)

OpenSeaとRaribleでは問題ないです

![](https://storage.googleapis.com/papyrus_images/81f752f2b915489f567f5478b7232640425ccb0883a4fd7d13b6a90c1640517e.png)

* * *

他にいろいろ
------

現時点のガス代教えてくれたり

![](https://storage.googleapis.com/papyrus_images/ee4166f81e515c33b45c8ad58c0815460a8a0ebb8de209119b5568dcb4ea3371.png)

ホルダースナップショット機能もあります

![](https://storage.googleapis.com/papyrus_images/640c7693e9ec9ba9003f7093502edfc5c862e6fd9ebe843be213c4cc19a757b8.png)

![](https://storage.googleapis.com/papyrus_images/6a39f39efcb62dd7f7c75a9356d20780592b036fb3ff8eeb75bd28054b63ca97.png)

![](https://storage.googleapis.com/papyrus_images/69296aaa797fc5e9b1dde6c5a53fbb4299f6db1d7044bd72e6955be5d58b2851.png)

* * *

最後になにか
======

記事を書くために約0.03 ETHを使ったので、もし寄付する感じでよくわからないなにかを購入すると助かります、あえてOpenSeaではないマーケットプレイスのリンクを出します

売れる気はありません

（2022年3月14日追記）「なにか」が売れてしまいました😳😳😳 [龍犬](https://twitter.com/ryuudog2)さん本当にありがとうございます🙏😭

よくわからないすごいなにか、0.039 ETH、ERC-721規格の一品物です、Raribleにどうでもいいアンロックコンテンツがあります

[https://rarible.com/token/0x91476502b93e73f5458aac1c133ab4b7c299982b:1?tab=details](https://rarible.com/token/0x91476502b93e73f5458aac1c133ab4b7c299982b:1?tab=details)

[https://looksrare.org/collections/0x91476502b93e73F5458AAc1c133aB4B7c299982b/1](https://looksrare.org/collections/0x91476502b93e73F5458AAc1c133aB4B7c299982b/1)

（現在は出品していません）ショボーンさんの顔面、0.0069 ETH、供給量69、ERC-1155規格のものです

[https://rarible.com/token/0x6b321c1f6f94ae1641e03bdf0752061fba71924d:1](https://rarible.com/token/0x6b321c1f6f94ae1641e03bdf0752061fba71924d:1)

[https://looksrare.org/collections/0x6B321c1f6F94AE1641E03bDf0752061FBa71924D/1#about](https://looksrare.org/collections/0x6B321c1f6F94AE1641E03bDf0752061FBa71924D/1#about)

---

*Originally published on [ranbuta](https://paragraph.com/@ranbuta/manifold-nft)*
