まいにちDapps#9 クリプト決済のサブスクを作る【Superfluid】

ponta

ponta

· 4 min read
Thumbnail

まいにちDappsではこれまで、発行したNFTに対してトークンゲートでユーティリティをつけて付加価値を付ける実装について解説をしてきました。

NFTのビジネスモデルの中で継続的なインカムを得るためには二次流通時のロイヤリティや新規販売くらいしかないという認識が一般的ですが、今回はオンチェーンのプロダクトで継続課金をする方法を見てみましょう。

Thirdweb×Unlockで有効期限付きNFTを作成する

Unlock ProtocolにSubscription機能を持ったMembershipのコントラクトがあります。こちらの使用方法については Thirdwebとユウキさんの素晴らしい記事があるのでこちらにお任せします。

要点としては有効期限と延長する関数を持ったNFTをmintでき、有効期限が切れた場合、有効期限切れのNFTを所持しているという状態になります。NFTがburnされたりTransferされるわけではないですが、balanceOf()を実行すると、有効期限切れのNFTをつ保有している場合 0 が返ってきます。Token-gated Application Architecture

また、有効期限を延長するにはユーザーがトランザクションを発生させる必要があり、自動延長みたいなことはできないです。

ちなみにNFTベースのサブスクリプションについて考察されている記事があったので貼っておきます。

Are Subscription NFTs the Future? Exploring the Pros and Cons of Web3 Online Subscriptions

SuperfluidでERC20トークンでのサブスクを実装する

Superfluidは世界中のDAOや暗号ネイティブビジネスに対してサブスクリプションを可能とするスマートコントラクトのフレームワークです。Superfluidでは既存のトークンをSuper TokenというERC20標準の拡張トークンにwrapします。Super Tokenは定期支払い機能を持っていて、1回のトランザクションだけで定期支払いを開始することができ、デポジットも必要ありません。

まずはどんなものかテストネットで触ってみます。

https://app.superfluid.finance/ を開きます。

Image

Get Testnet TokensでClaimボタンを押しましょう。Matic、fUSDC、fDAIがfaucetからもらえますが、通常のfaucetと違うのはこの時点ですでにsuperfluidでのstreamが始まっている点です。

ImageImage

fUSDC、fDAIが毎秒少しずつ送られてきているのがわかりますね。

Streamingをキャンセルすると、その時点までのトークンがもらえます。

ImageImageImage

自分でStreamを作成して送信してみます。

Image

トークンが送られて残高が減っていくことが分かります。

Image

次に自分のアプリにウィジェットを組み込む方法をみてみます。

Checkout Builderというツールが用意されているので開きます。

https://checkout-builder.superfluid.finance/builder

Image

UIも調整できるので便利ですね。

Image

JSONをダウンロードしておきます。

Next.jsのプロジェクトを立ち上げて必要なモジュールをインストールします。

yarn add @superfluid-finance/widget wagmi @superfluid-finance/tokenlist

こちらのコードを移植していきます。

https://github.com/superfluid-finance/widget/blob/master/examples/widget-vite-react-web3modal/src/App.tsx

Image

drawerはできたのですがConnect Walletボタンを押してもWallet Connectが立ち上がらないというバグが発生してしまいました。

publish IPFSのほうでは上手くいったのでこちらを掲載しておきます。

Image

https://checkout.superfluid.finance/QmebDU9Kx61wNtamDpEhb8EtESfNAejNFzSdG9uZmmXRL4

まとめ

弊社Pontechはweb3に関わる開発を得意とするテック企業です。サービス開発に関するご相談はこちらのフォームからお願いいたします。

また、受託開発案件に共に取り組むメンバーを募集しています!ご興味のある方はぜひお話させてください!


ponta

About ponta

2019年からEthereumを中心にDapp開発に従事。スキーとNBAとTWICEが好き。

Copyright © 2023 Pontech.Inc