今回実現したいこと:
VeryLongNouns⌐◨-◨がmintできるコントラクトを開発し、自由にmintできるサイトを作成します!
Playgroundと同じ仕組みを用いて、ランダムに生成されるVeryLongなNounsをその場で画像としてダウンロードするだけではなく、フルオンチェーンで本家のNounsと同じようにメタデータもその場で生成して、オリジナルなNFTとしてmintすることができます!
わたしはNounsのコンセプトはもちろん、かわいらしいデザインも大好きで、Playgroundをいじっているのが楽しくてしかたないのですが、気に入ったNounsのデザインができたときに、これをこのままミントできたらとてもいいのにな、とずっと思っていました。
そして今回、海外発のNounsと、日本発のVeryLongAnimalsという二つのとても人気の高いmemesを融合したキャラクターをVeryLongNounsという形で実現できたら、とても面白いのではないか、そしてそれぞれのコミュニティをブリッジしつつ、関係性を発展させていくことができたら、と考えました。そのアイデアを実現するべく、このコンセプトに共感してくれたエンジニアのAraさんと一緒に実装を進めているところです。
特に今回の企画では、本家のNounsと同じように、ETHメインネットでのリリースとフルオンチェーンのNFTにこだわっています。また、それ以上に私たちが今回のために考えたいろいろなこだわりと、解決するための方法が、文章の下の方の開発メモに書いてあります。
まずは特定のNFT保有者のみmint可能にします。
Nouns本家のNFT, VeryLongAnimals,NounsDAOJapan発行のNFTなどの保有者に向けてmintを開放します。AL. WL保有者への先行mintも考えています。その後パブリックでmintできるようにします。
本家のNounsを保有しているホルダーさんは、自分の保有しているNounsと全く同じ組み合わせのVeryLongNounsをmintできるようにもしています。また、新たにランダムな組み合わせでも自由にmintできるようになっています。一度出た組み合わせは全く同じ組み合わせが出ないような仕組みになっています。
また今後はNouns本家の仕組みなどをさらに活用・応用した形の展開も考えています。
ユーティリティとしては、marimosphereが主催するイベントに優先的に参加できる権利や今後のグッズ化なども検討しています。また、ベリロン側とのコラボも積極的に行っていきたいです。
ホルダー向けのイベントや展覧会、アーティスト支援、海外への展開なども積極的に行っていきたいと考えています。また、ぜひクリエイターコラボや、キャラとかグッズとか絵本なども作りたいです!
今回、エンジニアのAraさんの努力とスキルにより、難しい技術的課題を乗り越えて、Nouns本家よりもデータ量の多いグラフィックをフルオンチェーンにすることが可能になりました。また、marimosphereの思い付きから生まれた、Playgroundで遊びながら、そこで見つけた自分のお気に入りのVeryLongNounsをmintすることができるという楽しさを提供することが可能になりました。
みなさんにVeryLongNounsのNFTを楽しんでもらえたら幸いです!どうぞよろしくお願いいたします。
企画制作:marimosphere
エンジニア:Ara
開発メモ:
VeryLongNouns 開発における工夫
画像サイズの拡大
本家は 32x32 pixel だが、64x64 に大きくした
view 関数処理の肥大化による gas limit エラーを回避するため、内部的な svg の Base64 変換処理をなくし、代わりにパーセントエンコーディング処理を導入した
2 種類の NFT
本家 Nouns ホルダー版とランダム版という 2 種類の NFT を用意した
本家 Nouns ホルダーは、自分が持っている Nouns と同じパーツの組み合わせで、同じトークンID のものを mint できることがコントラクトで保証されている
ランダム mint 版は、トークンID が大きい数値となっている
ランダム mint 版は、本家 Nouns と同じ色の背景は選ぶことができない
同じパーツの組み合わせを重複させない仕組み
同じパーツの組み合わせは、ただひとつだけ mint できる
重複チェックを効率的に行うために、各パーツ番号に対してシフト演算を使用した
ジェネレーションの導入
希少性をつくるためにジェネレーションという概念を導入した
最初に決めた上限(例えば 1000 個)までに mint された NFT は、Gen 0 の属性が付与される
上限を決めるごとに、ジェネレーション番号は増えていく
本家 Nouns ホルダー版は常に Gen 0
これにより、Playground 的に誰でも上限なく作れて保有者数がスケールすることと、Allow List ユーザーや早期取得者にとっての高い希少性を両立できる
追加のフルオンチェーン・メタデータ
本家 Nouns のメタデータは name, description, image だけだが、ここに 2 つを追加した
ひとつは本家 Nouns ホルダー版かどうか(Type: "Original" or "Random")
もうひとつはジェネレーション番号(Generation: 0, 1, 2 ..)
コントラクトでの販売機能
本家 Nouns ホルダー版、ランダム版それぞれの価格設定を可能とした
Pre Mint 機能を、管理者による署名をコントラクト内で検証することで実現した
面白いプロジェクトになると思うので、応援よろしくお願いします!