Social Hack Day #50
2023-05-27 MintRally UX Upgrade Sprintの第一歩として参加した
@codeforjapan: 記念すべき50回目となった今日の #socialhackday では、6つのプロジェクト、オンライン+オフライン合わせて30+名の皆さんにご参加いただきました🙌 17時から進捗報告&プチ懇親会です💃

@hal_sk: ソーシャルハックデー50回目、開催中です。
今日はハイブリッド開催で、会場参加もたくさん!ありがとうございます🙌
今日はgussuri(睡眠記録)、Open Data Package manager、流山Make our City、HackDays(web3)、もりポ(脱炭素)、アフターピル検索のプロジェクトが登録されてます。
#socialhackday

@nishio: Social Hack Day #50 に参加したよ!
https://opensea.io/ja/assets/matic/0x7d895ca96caa5344ec0b732c6e1defa560671e14/442
MintRallyは上記のような「参加証明NFT」を発行するサービス
全体
- 物理会場に来ていてもまずZoomに入る
- Code for Japan
- オンラインオンリーとハイブリッドとを隔月でやってる
- g0vのjonthonからインスパイア
- 自己紹介
- Notionを情報共有の場として使う
- Notionのアクセス権をもらってテーブルに自分のレコードを追加
Code for Japanでは、SlackとNotionを活用してコミュニティ運営をしています。 Code for Japanのこれら2つのワークプレイスには、シビックテックに興味がある方なら、どなたでもご参加いただくことが可能です。
- 僕は初めてだったのでその場でSlackとNotionに参加した
- 今回のイベントページを見つけようとして、検索と間違えてHomeのタイトルを編集してしまったw
- すぐ戻したからセーフw
- 今回はZoomのチャットのURLからいった
- 検索欄が目立つところにないのでサイドバーのツリー表示からたどるのが想定フローなのだろう
- Social Hack Day #50
- 自己紹介は3つのキーワードを書く
- 時間が限られてる時に自己紹介をするのに良い仕組み
- 周りの人がどんなことを書いているか、自分が書いてる最中にも見える
- 3つキーワードがあると長々と話すことが防げるし、「西尾です、よろしくお願いします」みたいな情報ゼロの自己紹介をする人が連鎖してそういう空気になり自己紹介の場自体の有用性をスポイルしてしまうリスクも避けられる
- このタイミングで初めての人にリアルタイム共同編集の体験をさせるのはうまいオンボーディング設計だな
- 各プロジェクトの紹介と今日やることの発表
- 全部それぞれ面白そうだね
- 現状がどうで、今日は何をする予定かを話す
- ある種の「朝会」のような感じ
各プロジェクトチームに分かれる
MintRally
(時間軸のログではなく、後から調べたこと考えたことも加筆して再構成した)
最近Ethereumのアドレスがない人でも受け取れるようになった?
- MAGICLINKを使う?
- non-custodial?custodial?
- MAGIC側がEthereumのアドレスを持って、それに対してメールアドレスでのアクセスを提供するものだと理解した
ネットワークの切り替えとは何か
- Ethereumのメインネット
- Polygonという別のネットがある
- これはEthereumに安く書き込める
- なぜ?
- トランザクションをバッチにして書き込むから
- なるほど、コンピュータにおいてメモリフェッチのコストが高いからより高速なキャッシュメモリを間に挟む的なやつね
- バッチで書き込むならバッファの分だけ実際にEthereumに書き込まれるまでの遅延が増えると思うがどの程度増えるのか?
- こういうのをL2プロトコルという?
- PolygonのハッシュがEthereumに書き込まれる?
秘密鍵どうしてる?
- パスワードマネージャーにいれてる
- 大金が入ってるなら推奨は印刷して金庫に入れること
- 結局リスクと利便性のトレードオフ
- 大金が入ってないならリスクが小さいから雑にしてもいい
- ウォレットという呼び名がユースケースによってはミスマッチだよね
- というわけでこのページではもっぱら「アドレス」と読んでます

発行されたNFTがMetaMask上で見えない
- ちゃんともらえたのかな?となる
- これは単にMetaMaskのUIの設計の問題
- MetaMask側がアドレスに新しいNFTが付与されてるかをチェックして表示してないだけ
- 表示したいなら新しいのがあるよと教えてやる必要がある


- コントラクトのアドレスとIDで特定できる
- MintRallyのURLを教えたりする必要はない、これが面白いところ
- つまり、よくあるスタンプ発行サービス的なやつはスタンプの情報がそのサービスの中にしかないから、他のサービスに情報を共有しようとするとURLとかで伝えるしかない
- 一方でMintRallyが発行したNFTはブロックチェーンという「共有メモリ」に書き込まれているので、どこに書き込んであるかのアドレスを渡すだけでよい
- 受け取る側がMintRallyのことを知る必要はない
OpenSeaにもインポートできる?
Polygonscan
Etherscan
- Ethereum
- 僕が売ったNFTのトランザクション

- おっ、これ売買した二人の財布の中身の金額変動が見えてるのではw
- 台帳が全世界公開共有されてるって仕組みを考えれば当たり前だが、ウォレットを財布とイメージしてたらギャップあるよな
- 確かにここに100万円とか入れてたら、手に札束を持って歩いてるようなものか
これらをBlock Explorerと呼ぶ
Q: 実際に発行する側をやる場合、どれくらい掛かるのか?
- 参加者が無料で受け取る方法と、参加者がGAS代を払う方法がある
- GAS代=コンピューティングリソースの代金
- 受益者(=この場合NFTを受け取る人)が払うのが一般的
- しかしイベント参加者に参加証を配るというサービスの目的にはミスマッチ
- 受け手がウォレットにMATICを持っている必要があるから
- MintRallyは両方できる
- 参加者が増えるにつれて費用も増える
- 大雑把に一人当たりどれくらい?
Testnetで発行者を試してみよう
- PolygonのTestnetをMumbaiと言う
- Testnet、てっきりローカルで自分で動かすものかと思ってたがそうではないらしい
- 何が違い?
- 通貨に金銭的価値がない
- その場合、テストネット上でのトランザクション実行のガス代が誰からも支払われないことになるが…
- メインネットのGAS代に含まれてるんだろうな、ある種のフリーミアム
- だとするとテストネットで行えることが、メインネットより制限されてないといけないわけだがそれは何か?
参加証明NFTを何に使うか?
- NFTにどのような効用(Utility)を持たせるかは設計次第
- この質問回答、非エンジニアにニュアンスが伝わらないかも
- 「へー、磁石は鉄にくっつくんですね!これは何に使うんですか?」「何に使うかはあなたの自由ですけど…」みたいなノリ
- POAPは事例集を公開してる
- https://poap.directory/
- 例えば特定のトークンを持っている人だけ参加できるZoomリンク
- Proof of Humanity
- SoulBound Token
- これは譲渡不可なトークンを作るアプローチだがVitalikは「ブロックチェーン上にすべての移転記録が残ってるのだから新しい仕組みを作る必要はない」と言っていたらしい
- プロトコルのレイヤーではなくアプリケーションのレイヤーでよい
- 最初の所有者を表示するか、最終の所有者を表示するか、ビューの違いに過ぎない
- POAPは進化しない、参加回数によって進化する機能がMintRallyの優れてる点
- これによって「何度も訪れている常連さんにサービス」的なことが可能になる
Testnetでイベントを作る
- つまずいたところをMiroに貼る
- MATICのガス代がなぜ1000000と表示されるのか?
- TestnetのMATICに通貨価値がないならその取得手段が購入とは別に存在するのでは?
Dune
開発する
Hardhat
- 手元でブロックチェーンを動かす
- 今回はSolidityの開発はしないので入れなくてよい
MintRallyは自前でデータを持ってない
- チェーンだけでやってる
- 自前でデータを持たずにこんなウェブアプリが作れるってすごいな
Callback
- 別ページを見せておいて終わったら通知
- (一般名詞すぎて検索で見つけられなかった)
Pinata
とりあえず簡単にできそうなところとしてイベントグループを逆順にしてみる
- forkしてpushしてpullreq(普通の流れ)
- 事前に手元でテストケースを走らせるとかはない
- issueはタイトルは英語、中身は日本語のこともある
DeWork
HACKトークン
中頃にシャッフルタイム(他のプロジェクトを見に行く)があったが、ヘッドセットを持ってきていなくて目の前の人とZoomの向こうの人の会話を聞くことが困難だった(スピーカーから出すとこちらの人の声が二重になる、スピーカーを止めると向こうの人の話し始めを聞き損ねる)
最後にプロジェクトの進捗シェアと、良かったことシェア