Pochi Bukuro の開発体験記
2022-12-30、2022-12-31、2023-01-01 と Pochi Bukuro というプロジェクトに取り組んでいた。学びが多く、いいテンションで取り組めたので少し記録を残しておきたい。
謝辞
まずなにより、いっしょに遊んでくれた chanoha に感謝である。chanoha がいなければ走り始めることもなかっただろうし、たとえ走り始めたとしてもリリースにいたらなかったんじゃないかと思う。
数年来の友人である chanoha とは 2022-08-27 にひさしぶりに話す機会があって「へぇ、あんたもブロックチェーンに興味あるんだ」となって、ふたりともウォレットに Kawaii SKULL の NFT が存在していたので意気投合した。それから Discord にサーバを用意し、ブロックチェーンやトークンについて思いつくことがあればメモ代わりに Discord のチャンネルに書き込む、といった日々を過ごしてきた。
2022-12-25 の時点では、ぼくは「年賀状」「お年玉」とアイディアの種を記録していて、それに chanoha が「ポチ袋」と返してくれている。やっぱり chanoha がいなかったら Pochi Bukuro のアイディアは出ていなかったかもしれない。
発端
2022-12-30 に chanoha とビデオチャットをした。ひさしぶりの同期的な会話の機会だったので、お互いの近況を話しつつ、来年はトークンのアイディアを形にしていきたいね、活動のギアを上げていきたいね、といった話をしていた。そのまま会話が収束して「よいお年を〜」と解散してもおかしくなかったが、ビデオチャットの終盤で
- ポチ袋をトークンにするとしたらこんな感じかね
- わりとコンパクトな実装で済みそうね
- やるなら 2023-01-01 にリリースしたいよね
という話になり、そのまま Hackathon が開幕した。幸い、ふたりとも年末の予定が詰まっていたりはしなかったので、各位が動ける時間を使って各位の担当タスクを進めていくことにした。
着想
chanoha は pNouns プロジェクトにデザイナとして関わっていて、直近 2 〜 3 ヶ月でブロックチェーンやトークンに関する理解を深めていた。pNouns の体験記をたくさん聞かせてもらっていて、とても刺激的。
[https://twitter.com/fujimono/status/1606451199078989826 @fujimono]: 中島さんと一緒にものづくりできるようになったきっかけのプロジェクト。共同制作リリースタイミング的には第3弾だけれども、気持ち的には第0弾🎉 フルオンチェーンの可能性と楽しさを広げていきたい。
また、ぼくらの間で「トークンはエモい」といった話を何度かしてきた。スマートコントラクトはけっこう無機質で、よく自動販売機のたとえで説明される通り、自動販売機は無機質じゃないですか。ちょっとでもお金が足りなければ商品を購入できなくて、淡々と契約通りに動作するのがスマートコントラクトの長所。
そこに有機的な意味を帯びさせるのは人間の認識の世界の話。スマートコントラクトに「こういうふうに楽しんでほしい」という意味付けをすることで、そこにエモーションが生じる余地ができる。
「お年玉」だと ETH そのものに目が向くけれど「ポチ袋」なら ETH を包む外側の意味を表現できそうだね、ってことになった。受け取った ETH は使ったらなくなるけれど、ポチ袋はウォレットに残り続ける。思い出。
学び
- やっぱりプロダクション・リリースするつもりのプロジェクトには学びのチャンスが詰まっている
- Solidity でのスマートコントラクト実装の理解度が 10 倍くらいになった
- 先人たちが公開してくれているソースコードが宝の山
- 開発環境、ツールチェイン
- Hardhat が便利
- compile、deploy、verify を活用している
- JavaScript および TypeScript 製のツールが多いので
- OpenZeppelin のライブラリがすごい… 基本はこれらを組み合わせて作り上げていく感じ
- テストネット Goerli での動作確認は Etherscan のおかげでシュッとできて助かった
- GitHub Copilot が提示してくれるコードがけっこう使える
- Hardhat が便利
- Pochi Bukuro はトークンの画像がオフチェーンで、それ以外はオンチェーン
https://etherscan.io/address/0x3e305a30df4b3681cdcbc3c42ad51cac82aea718#code にスマートコントラクトのコンストラクタに渡した引数の内容が記録されている。_designer に chanoha のアドレス、_programmer にぼくのアドレスを設定してある。Pochi Bukuro が利用されたときのフィーの自動分配を実装できたのはよかった。ザ・スマートコントラクトという感じの体験。
今後
- スマートコントラクトとインタラクトするウェブページをつくってみたい
- フルオンチェーンのトークンをつくってみたい
- とにかくいろんなトークンを設計・実装して知見をためて、トークンでなにかをやりたい人のまともな相談相手が務まるくらいになりたい
- トークンをつくって配る人に向けた便利ツールを開発して提供してみたい
- スマートコントラクトが別のスマートコントラクトと連動?協調?するような、コンポーザビリティを実感できるようなやつをつくってみたい