NounsDAOを作ろう!(NounsBuilder)
世界で一番うまく回っているDAO『NounsDAO』
このスマートコントラクトを簡単に作れることご存知でしょうか?
今回は、Nouns DAOのスマートコントラクトを実際に作ってみようと思います。
Nouns Builder
Nounsでは、NounsDAOのスマートコントラクトをノーコードで作れる仕組みがあります。
その名も 『Nouns Builder』
このサイトでチュートリアルに従って作業を進めるだけでNounsDAOと同じDAOが出来てしまいます。
※NFT画像は自分で準備する必要があります。
それでは順に見ていきましょう。
0.画像の準備
Nouns Builderでは、ジェネラティブNFTを生成するため、その元となるパーツ画像を準備する必要があります。
今回は、Nounsが公開しているパーツ画像をそのまま使いたいと思います。
このページの「Traits - SVGs」をダウンロードしておいてください。
1.NounsBuilderを開く
https://nouns.build/
こちらのURLがNounsBuiderのページです。
真ん中の『Create Your DAO』ボタンからチュートリアルが始まりますが、今回はテストネットで作成したいので、右上メニューからtestnetへ移動してください。
先ほどと同じ画面ですが、URLの先頭に"testnet"がついて、メガネ横のBuiderの下にもTestnetの文字が表示されるようになりました。
では、真ん中の Create Your DAO ボタンをクリックして進めましょう!!
Create Your DAOボタンをクリックすると、ウォレット接続のダイアログが表示されますので、開発用のウォレットを接続してください。(あとでGoerliETHが必要になるのでウォレットに準備しておいてください)
2.General Setting
最初はGeneral Settingです。
アバター画像、DAO Name、DAO Symbol、Dao websiteを入力して、 continue ボタンをクリックしてください。
3.Auction Setting
次はオークションの設定です。
Auction Durationはオークションの期間です。今回はテストで何回も試したいので5分にします。
Auction Reserve Priceは最低落札金額。
Advancedを開いて・・・
Proposal Thresholdは提案を起票する権利の設定で、発行したNFTの何%を持っていたら起票できるか、です。
Quorum Thresholdは投票の最低投票数です。ここで定義したパーセンテージの投票参加がない場合、その投票は無効になります。
4.Veto Power
Veto Powerは、世のモラルに反する提案が可決されてしまった場合などに備えて、運営が強制的に却下できる権限です。ここではYesを選択しました。
5.Allocation
発行するNFTの配分を決定します。
Percentageに10%を設定すると10回に1回は運営アドレスにミントされます。
テストでは4回に1回としたいため、25%とします。
EndDateは、運営への配分をいつまで続けるか、です。
Contributionsでは、デフォルトでBuilderとNounsのアドレスへ1%配分するようになっていますが、Change Contributionsから変更・削除することもできます。
6.Artwork Setup
画像を設定します。
Collection Descriptionには作成するNFTの説明を、Artworkに最初にダウンロード後解凍したフォルダを指定します。
指定すると以下のようにサンプル画像が表示されます。
7.Deploy
これまで設定してきた内容を確認し、最後にデプロイします。
デプロイボタンをクリックするとMetamaskが立ち上がるので、トランザクション内容を確認します。
もう一度デプロイします。
8. オークションの開始
無事デプロイが完了すると、以下の画面になるのでStart Auctionをクリックします。
(Metamaskの確認が必要です)
オークションが開始されました!
まとめ
想像以上に簡単にNounsDAOのスマートコントラクトを作れましたが、実際にデプロイしてみて分かった不都合点をいくつか挙げます。
- ミント画像はオフチェーンっぽい(ミント時のガス代がそんなにかからなかったための推測)
- コントラクトがVerifyされず、公開されていない
- Openseaロイヤリティが設定できない
- もれなく投票機能がついてくる(オークションだけを導入はできない)
細かいことは気にせず、取り敢えずNounsDAOの仕組みを導入するには良さそうです。
Discussion