最近さまざまな場面で目にする機会が増えた「NFT(Non-Fungible Token:非代替性トークン)」。情報の改ざんが難しいブロックチェーンの技術を用いているため、トークンのデータが唯一無二であることを示せる。デジタルアート作品やゲームのアイテムなどをNFTとして保有したり、売買したりする場面が増えている。
本連載では、大人の自由研究として、「普段やりたいけれども時間やお金の都合でできていないことを"自由に研究"」する企業の様子を取材している。今回は前回に続き、元パティシエのエンジニアであるコインチェックの西澤洋祐氏が挑戦した、ノーコードでのNFTマーケットプレイス開発について紹介する。
NFTマーケットプレイスの開発に挑戦
西澤氏は、以前プリンをモチーフとしたNFTを自作した経験を持つ。このNFTは背景や表情、器などパーツごとにデザインが分かれており、アルゴリズムに応じてパーツをランダムに組み合わせたNFTを生成できる、いわゆる「ジェネレーティブNFT」である。その組み合わせは1万通り以上あるようだが、今回はそのうち200個ほどを使用した。
NFTのマーケットプレイス作成にあたっては、ローコード・ノーコードでDApp(Decentralized Application:分散型アプリケーション)を開発できるプラットフォーム「Bunzz(バンズ)」を用いた。同サービスはシンガポール発のスタートアップが手掛けており、スマートコントラクト開発のためのSaaS(Software as a Service)を提供する。
スマートコントラクトとは、ブロックチェーン上にあらかじめ「ある条件が満たされたときに特定の処理を自動で行う」プログラムを実装する仕組みだ。西澤氏はブロックチェーンに、イーサリアムのテストネットであるEthereum Goerli network(以下、ゴエリ)を用いた。
ゴエリはイーサリアムの主要なテストネットだ。イーサリアムの大型バージョンアップ「The Merge」のテストなどに利用されてきた。ブロックチェーンを用いたサービスには常に"ガス代"が不可欠であり、ブロックチェーン上にリリースしたサービスは修正ができないため、無料で利用可能なテスト環境での開発が重要となる。「ETH GOERLI FAUCET」など、無料で利用可能なテスト環境が存在する。
プリンのNFTを売買できるマーケットプレイスが完成!
西澤氏が開発したNFTマーケットプレイスがこちら。「せっかくの自由研究なので、あえてコミカルなフォントを選んでみた」と同氏は語る。
各NFTを選択すると、全体像とNFTを構成するパーツが確認できる。どれもかわいらしいデザインだ。
NFTの購入画面はメタマスク(ウォレット)と連携している。ちなみに、「購入ボタン」の色はプリンのカスタード色を意識したようだ。
また、自身が保有しているNFTは販売することもできる。販売価格は自由に設定できるという。
NFTマーケットプレイス、開発にかかった期間は?
Bunzzを用いたスマートコントラクトの設計は、約15分程度で完了したそうだ。プログラミング言語としてはイーサリアムのコントラクトによく用いられる「Solidity」が用いられたそうだが、今回はノーコード・ローコードツールであるBunzzを活用したので、直接コードの記述はしていない。
余談ではあるが、SolidityはJavascriptと構文が似ているのでプログラミング初心者でも読み書きしやすいとのことだ。一方で、誰でも記述しやすいので、デプロイ後に悪質な攻撃者に脆弱性を突かれる例も増えているので、注意が必要だ。
フロントエンドの開発には、Next.jsを用いた。仕事と両立しながら、プライベートの時間を使って約2~3週間ほどで仕上げたという。
「ブロックチェーン技術によって成り立つWeb3やNFTは、最近ではバズワードにもなっています。でも、『まだよくわからない』で止まってる人も多いのではないでしょうか。今回自由研究に挑戦して分かったのですが、実は意外と簡単にブロックチェーンを使ったスマートコントラクトの仕組みは作れます。ノーコードでポチポチとクリックするだけで作業は進められますが、その都度出てくる専門用語を調べることで、より理解が進むと思います」(西澤氏)
正直に言うと、筆者自身も今回の取材で西澤氏に自由研究をお願いするまで、イーサリアムのテストネットの存在を知らなかった。もちろん、まさか個人でNFTのマーケットプレイスを(しかもノーコードで)開発できるとも思っていなかった。
予想以上に"Web3"はすぐそこまで近付いているのかもしれない。まさに「百聞は一見に如かず」である。この記事を読んで「せっかく無料のものがあるならやってみよう」と思う読者が一人でもいてくれたら嬉しい。