会員限定グッズの販売等を想定し、ERC20トークンを使ってBASEで作ったネットショップに入場制限をかけてみました。
こちらが、トークン購入ページです。
入会ボタンを押すと1ヵ月分のトークンが購入でき、数か月分まとめて購入することもできます。
まとめて購入した場合の画面がこちら。
2ヵ月分購入するので、メタマスクから2 ETH送金しようとしているのが分かります。
その結果がこちら。
トランザクションが成功すると、コントラクトからイベントを記録します。
サーバー側でイベントを感知して、トークンを送金します。
購入画面をみると2ヵ月分のトークンが購入できています。
BASEのページに移動します(ネットショップの内容は遊びで作ったものなので気にしないでください)。
トークンを持っていなかった場合、ダイアログが表示され操作できなくなります。
リンクから購入ページに移動し、トークンを購入して戻ってくるとダイアログが消えます。
最後にトークンを購入したトランザクションが入っているブロックのタイムスタンプと比較して、1ヵ月経過していたらトークンを1ヵ月分返却します。
長くなりましたので省略しますが、購入ページで退会ボタンを押すと、自分の持っているトークンを全て返金して、返却したトークン-1ヵ月分のETHが返金されます。
ユーザー側から見た場合、ずっと離れていて久しぶりに訪問しても、返却されるトークンは1ヵ月分なので、買い過ぎて損することがなく安心して利用できると考えています。
BASEに限らず、様々なコンテンツに応用できると考えておりますが、いかがでしょうか。