generated at
Pochi Bukuro の開発体験記
2022-12-302022-12-312023-01-01Pochi Bukuro というプロジェクトに取り組んでいた。学びが多く、いいテンションで取り組めたので少し記録を残しておきたい。


謝辞

まずなにより、いっしょに遊んでくれた chanoha に感謝である。chanoha がいなければ走り始めることもなかっただろうし、たとえ走り始めたとしてもリリースにいたらなかったんじゃないかと思う。

数年来の友人である chanoha とは 2022-08-27 にひさしぶりに話す機会があって「へぇ、あんたもブロックチェーンに興味あるんだ」となって、ふたりともウォレットに Kawaii SKULLNFT が存在していたので意気投合した。それから Discord にサーバを用意し、ブロックチェーントークンについて思いつくことがあればメモ代わりに Discord のチャンネルに書き込む、といった日々を過ごしてきた。

2022-12-25 の時点では、ぼくは「年賀状」「お年玉」とアイディアの種を記録していて、それに chanoha が「ポチ袋」と返してくれている。やっぱり chanoha がいなかったら Pochi Bukuro のアイディアは出ていなかったかもしれない。


発端

2022-12-30chanoha とビデオチャットをした。ひさしぶりの同期的な会話の機会だったので、お互いの近況を話しつつ、来年はトークンのアイディアを形にしていきたいね、活動のギアを上げていきたいね、といった話をしていた。そのまま会話が収束して「よいお年を〜」と解散してもおかしくなかったが、ビデオチャットの終盤で

ポチ袋トークンにするとしたらこんな感じかね
わりとコンパクトな実装で済みそうね
やるなら 2023-01-01 にリリースしたいよね

という話になり、そのまま Hackathon が開幕した。幸い、ふたりとも年末の予定が詰まっていたりはしなかったので、各位が動ける時間を使って各位の担当タスクを進めていくことにした。

着想

chanohapNouns プロジェクトにデザイナとして関わっていて、直近 2 〜 3 ヶ月でブロックチェーントークンに関する理解を深めていた。pNouns の体験記をたくさん聞かせてもらっていて、とても刺激的。

>@fujimono: 中島さんとの共同作品第一号!嬉しいなー
>@fujimono: pNounsプロジェクトのおかげで生まれた、中島さんとの共同作品第二弾!めちゃ可愛い!!
>@fujimono: 中島さんと一緒にものづくりできるようになったきっかけのプロジェクト。共同制作リリースタイミング的には第3弾だけれども、気持ち的には第0弾🎉 フルオンチェーンの可能性と楽しさを広げていきたい。

また、ぼくらの間で「トークンはエモい」といった話を何度かしてきた。スマートコントラクトはけっこう無機質で、よく自動販売機のたとえで説明される通り、自動販売機は無機質じゃないですか。ちょっとでもお金が足りなければ商品を購入できなくて、淡々と契約通りに動作するのがスマートコントラクトの長所。

そこに有機的な意味を帯びさせるのは人間の認識の世界の話。スマートコントラクトに「こういうふうに楽しんでほしい」という意味付けをすることで、そこにエモーションが生じる余地ができる。

お年玉」だと ETH そのものに目が向くけれど「ポチ袋」なら ETH を包む外側の意味を表現できそうだね、ってことになった。受け取った ETH は使ったらなくなるけれど、ポチ袋はウォレットに残り続ける。思い出。

学び

やっぱりプロダクション・リリースするつもりのプロジェクトには学びのチャンスが詰まっている
Solidity でのスマートコントラクト実装の理解度が 10 倍くらいになった
先人たちが公開してくれているソースコードが宝の山
開発環境、ツールチェイン
Hardhat が便利
compile、deploy、verify を活用している
JavaScript および TypeScript 製のツールが多いので
OpenZeppelin のライブラリがすごい… 基本はこれらを組み合わせて作り上げていく感じ
テストネット Goerli での動作確認は Etherscan のおかげでシュッとできて助かった
GitHub Copilot が提示してくれるコードがけっこう使える
Pochi Bukuroトークンの画像がオフチェーンで、それ以外はオンチェーン
画像の扱いさえ覚えればフルオンチェーントークンも実装できそう、という手応えを得た
フルオンチェーントークンを 2023 年のうちにつくってみたい!

https://etherscan.io/address/0x3e305a30df4b3681cdcbc3c42ad51cac82aea718#codeスマートコントラクトのコンストラクタに渡した引数の内容が記録されている。 _designer chanoha のアドレス、 _programmer にぼくのアドレスを設定してある。Pochi Bukuro が利用されたときのフィーの自動分配を実装できたのはよかった。ザ・スマートコントラクトという感じの体験。


今後

スマートコントラクトとインタラクトするウェブページをつくってみたい
フルオンチェーントークンをつくってみたい
とにかくいろんなトークンを設計・実装して知見をためて、トークンでなにかをやりたい人のまともな相談相手が務まるくらいになりたい
トークンをつくって配る人に向けた便利ツールを開発して提供してみたい
スマートコントラクトが別のスマートコントラクトと連動?協調?するような、コンポーザビリティを実感できるようなやつをつくってみたい