個人開発者がブロックチェーンを活用したサービスを3ヶ月でリリースした話
初めまして。個人開発歴3年ほどのhossiiiiと申します。
今年5月に特定のトークンを保有している人だけが参加できる投げ銭ライブ配信サービス「TokenLive」を着想から3ヶ月でリリースする事ができました。
*TokenLiveが現在PCからのみ閲覧可能です。
COMSAのNCFT活用を見越してトークン保有者限定のライブ配信ツールを作りたいと考えています。 pic.twitter.com/vffQlj6G08
— hossiiii (@hossiiii1) February 22, 2022
特定のNFTやNCFT(譲渡不可なトークン)を保有しているアカウントのみが参加できる会員制ライブ配信サービスをリリースしました。https://t.co/RscTfnnCmD
— hossiiii (@hossiiii1) May 11, 2022
NFTアーティスト⇄購入者
Symbolノード運営者⇄委任者
など、さまざまな用途でご活用下さい。#Symbol #TokenLive
既にYoutubeLiveやツイキャスなど投げ銭をできるライブ配信サービスは数多くありますが、実際にその中で投げ銭をしている人はコアな数パーセントのファンという統計が出ています。
TokenLiveでは特定のトークンを保有している人が参加できるという特性から、よりクローズドで配信者と視聴者の距離が近い関係が構築でき、使うたびにエンゲージメント(関係性)が強化されていくと考えています。
![](https://assets.st-note.com/img/1655248858262-jHliX8I5kn.png?width=1200)
TokenLiveは既存のライブ配信サイトと競合するのではなく、その中でより深い関係になりたいファンとを繋ぐツールとして活用して頂きたいと思っています。
ここで、TokenLiveの特徴をもう少し説明させて下さい。
1.メールアドレスやパスワードなどの個人情報は扱わずにログインが可能
TokenLiveではブロックチェーンのアカウントを連携することでメールアドレスやパスワードなどの個人情報をTokenLive側で保管しないようにしています。アカウントの秘密鍵も同じようにTokenLive側で保管していません。*1この仕組みは後述します。
この個人情報を保有しなくても良いという事は、画期的です。
サービス提供側で個人情報を保有しないという事は、情報漏洩リスクや管理コストの面でメリットがあり、利用者も自分の個人情報を不必要に提供する必要がないため不正から自衛する事ができます。
2.特定トークン保有者のみがライブに参加できる
仮にオンラインで、⭕️⭕️限定のライブを開催したいと考えたとします。現状一番現実的な方法は、特定のURLを知っている人だけが参加できるというものです。しかしこれは、悪意ある誰かがURLを公開してしまう可能性があります。他に事前登録をした人だけが参加できるという方法もありますが登録する方も、それを管理する方もとても手間がかかります。
TokenLiveでは特定のトークンを保有している人(アカウント)のみがライブに参加できます。このトークンは譲渡不可にする事で転売の防止をすることも、回収可にすることでトークンを使い回すことも簡単にできるので運営側の手間は非常に少なくてすみます。
3.投げ銭は暗号資産を利用し直接相手に届く
通常投げ銭を行う場合、視聴者が事前に投げ専用のデジタルアイテムを購入しておきます。(ツイキャスならお茶爆、YoutubeLiveならスパチャ)
この時点で運営側はいくらかの手数料を上乗せしておきます。視聴者から送られたデジタルアイテムは後日運営側から出金手数料を引いて配信者に送金されます。なので、投げ銭をしてもその何十%が差し引かれ、数日後に配信者に届くのです。
TokenLiveではより視聴者の応援したい気持ちが配信者に直接届くように、お互いの間に入ることなく、暗号資産を直接相手のウォレットに届けるようにしています。そのため中間手数料は0円としています。(暗号資産を送金する手数料は僅かにかかります*1円未満)。投げ銭をしてから数秒〜1分以内にウォレットに届くため、配信者がその場で何かを買ったり使ったりすることも可能です。
4.利用料はライブルームを予約する際に暗号資産で支払い
TokenLive側はどこで手数料を取っているのかというと、配信者がライブルームを予約する際に、時間や人数、配信の画質に応じてルーム予約料を頂いています。この時、配信者の負担が増えてしまいますが、参加するためのトークンを有料で販売したり、事前に一部のファンに予約料を支援してもらうことで負担が軽減されればと考えています。
ルームの予約情報に関してもTokenLive側で保管するのではなく、全てブロックチェーン上に記録されます。支払いを暗号資産にする事で
予約情報をブロックチェーンに記録する事 ⇄ 予約者がTokenLive側に予約料を送金する事
が同時に実行されるようになっていて、どちらかが失敗すれば両方が行われないようになっています。
という事で、今までのDBで個人情報を管理するプラットフォームとは違い、完全に個人間でのやり取りができるWEB3.0まで行かなくてもWEB2.5くらいのサービスとして開発できました。
これらの機能は全てSymbolというブロックチェーンを活用して作られています。実際に使ってみて、個人開発と相性がいいなと感じた部分があったので感想とともによかった点をシェアできればと思います。*こちらは完全な個人の見解なので一つの意見として聞いてもらえればと思います。
No1. 個人情報を扱わなくて良い
昨今サービス運営側として個人情報を取り扱うリスクやコストが高まってます。またこれからのWEB3.0への動きで、個人情報の管理をプラットフォームから個人へ持たせる流れも強くなってきていると感じます。
運営側が個人情報を扱わなくてはいけない理由として以下のようなシチュエーションがあると思います。
・ログイン
・サービス利用料の管理
・お知らせなどの通知
・犯罪時など情報提供として
Symbolでアカウントを作成すれば、それがSymbolを活用するどのサービスでも利用できるログイン情報にする事ができます。送金などをする際にアカウントの秘密鍵をサービス毎に入力してもらう必要はありません。現在SSS ExtensionというChrome拡張機能が存在しており、ユーザーのブラウザ側に秘密鍵を保管することで、誰にも秘密鍵を渡すことなく送金などの処理を安全に行う事ができるようになっています。
![](https://assets.st-note.com/img/1655256739963-tKQOQVbXBa.png?width=1200)
仮にユーザーがプレミアムサービスを契約したいとします。
その場合は、プレミアムトークン(Symbolではmosaicと呼びます)を購入アカウントに送付し、代わりに暗号資産(SymbolではXYMが暗号資産になります)を送付してもらえばOKです。今後そのプレミアムトークンの有無でサービス内容を分ける事ができます。*トークン送付以外にもアカウントに対してメタ情報を付与するなど他にも色んなやり方があります!
お知らせなどの通知は、Symbolのメッセージ機能が使えます。メールと同じようなものです。このメッセージ機能は暗号化し、他の人には見えなくする事も可能です。
犯罪時の情報提供に関しては、サービス側が個人情報を保持しない事によって提供する物がない状態にするのが良いと考えます。
No2. 簡単にブロックチェーンを実装できる
TokenLiveをリリースするのに3ヶ月かかりましたが、実際にブロックチェーンに関する所だけで言えば、2、3週間ほどです。それ以外はReactのお勉強やライブ配信の実装に時間がかかりました。
私の場合、最初はSSS extensionのデモページで送金のコードを見たのが最初でした。こんな簡単に送金できちゃうの!という感じでした。
function App() {
const [address, setAddress] = useState<string>('')
const [message, setMessage] = useState<string>('')
const [isRequest, setIsRequest] = useState<boolean>(false)
useEffect(() => {
if (isRequest) {
window.SSS.requestSign().then((signedTx: SignedTransaction) => {
new TransactionHttp('https://sym-test.opening-line.jp:3001')
.announce(signedTx)
.subscribe(
(x) => {
console.log('x', x)
setIsRequest(false)
},
(err) => {
console.error(err)
setIsRequest(false)
}
)
})
}
}, [isRequest])
const handleChange = (state: string, setState: Dispatch<string>) => {
setState(state)
}
const submit = () => {
const tx = TransferTransaction.create(
Deadline.create(1637848847),
Address.createFromRawAddress(address),
[],
PlainMessage.create(message),
NetworkType.TEST_NET,
UInt64.fromUint(2000000)
)
window.SSS.setTransaction(tx)
setIsRequest(true)
}
他のブロックチェーンと違い既に検証済みのAPIやSDKを使うだけなので、コントラクトを一から書かなくて良く、ブロックチェーン上での不具合を気にせず安心してコードを書く事ができます。
今では有志の方が速習Symbolという知識ゼロから体系立ててSymbolを学習できる教材を作ってくれています。(正直公式のドキュメントより100倍わかりやすい)
こちらの速習Symbolで非エンジニアの方が9日で全て走破できたそうなので、エンジニアの方はもっと早くいけそうですね!
【#速習Symbol 9日目走破!!🐻⚡️】
— 元祖ねむぐま🐞モザワン2⚡ (@nembear) June 9, 2022
今日で13章すべてを走破いたしました。次は強いままリスタートで1章に戻って繰り返しをやりたいとおもいます。目標の全章突破をやり遂げられてやっぱり嬉しいです。https://t.co/lXBIpUpv63#Symbol #XYM #ブロックチェーン #プログラミング初心者と繋がりたい https://t.co/r4gJxtuKE6 pic.twitter.com/TpolJEwiqo
No3. どんな言語でも使える
私の場合はJSのSDKを利用しました。
公式ではPythonとJSのみSDKを提供しているのですが、本来Symbolは利用する言語に関わらずスマートコントラクトを利用できるという思想の元作られているそうです。なので情報の参照や送金などはAPIを介して実施する事ができます。
現在PHP、Rust、GOなど有志の方がガンガン検証を進めてくれています。個人的にはFlutterを使ったアプリ開発が好きなのでDartも今後検証してくれたら嬉しいなと思います。
No4. 困った時に助けてもらえる
いくら簡単だと言え、わからない事がわからない、前提がわからないから躓くような事が私は結構ありました。そんな時に非常に助かったのはSymbolの開発者コミュニティの存在です。
内容を見ていると、初心者が質問しちゃってもいいのかな?というハイレベルなチャットが飛び交っていますが、ちゃんと #ヘルプ だったり #アプリ開発 だったり適切なスレで発言すれば、必ず疑問に答えてもらえます。
というのも有志の方は今後Symbol開発をするプログラマをまず1万人に持ってくという目標のもと、技術サポートにものすごく力を入れています。
まだまだ、Symbolを活用したサービスが少ないので、本当に手厚くサポートしてもらえますし、自分も本当に手厚くサポートして頂きました。
いつか恩返しがしたいと思いながら、まだまだ全然できていませんが自分もこれからSymbol開発を始めたいと思っている人の力になれたらと思っています。
No5. マーケティング不要
もう一つとてもありがたいと思う事に、SymbolのTwitterコミュニティがあります。
彼らは本当にSymbol愛があって、Symbolを使ったサービスやツールを使い倒してくれますので、個人開発者であれば自分の作ったサービスが使われないという一番の悲劇を回避する事ができます。
また、使ったフィードバックをくれるので、協力して不具合を修正したりより使いやすいサービスに改善していく事ができます。実際に自分も何名もの方にフィードバックを頂きながら修正を積み重ねていけています。
そして活動してく中で
PR用の動画を作りたいのですがよろしいですか?とわざわざ告知用の動画を作ってくださる方がいたり
#Symbol ブロックチェーンを利用した拡張機能の開発が進んでますよ😆
— 花畑@NABPDOBWK5I2LBRJ3RLCADX3ZYGOCAMDJOI6XBY (@HANABATA_KE) May 29, 2022
技術者のみなさんありがとうございます🙏
拡張機能が追加されることで色々なことが出来ます😊
ピースが繋がることでさらにより良いサービスが出来ることも #Symbolの魅力 です😊#SSS_Extention #NFTDriveEX #TokenLive pic.twitter.com/4BNBGDFUcE
まだ解決できない不具合の検証やその回避方法を記事にまでしてくれる人がいたり
先日 #TokenLive でやらかした経験談をまとめました。
— りょー|SymbolWallet「EXYM」𓊝 (@ry0_cha_ng) June 7, 2022
✅何が原因でそうなってしまったのか?
✅どうすれば回避できるのか?
これらについて書いています。
OBS使われる方も増えてくるかと思いますので、導入予定の方はぜひご一読ください。
楽しいTokenLiveライフを!!!#Symbol #XYM https://t.co/94JhZ0VYuX
個人開発者にとってとても暖かい環境だなと感じますし、よしもっと良いサービスにしていこうというモチベーションにも繋がっていきます。
普通に考えて、不具合が出て謝るのはこちら側のはずなのに、それを一緒に改善していける利用者さんが沢山いるってすごい事だと思います。
No6. 支援してもらえる環境
私の場合は使ってなかったのですが、SymbolではQuestと呼ばれるクラウドファンディングのようなサービスが立ち上がっています。
このQuestとは、個人開発に限らず何か成し遂げたい事を掲げると、それに賛同した人が資金援助をしてくれるサービスです。
実際に掲げた事が成し遂げられたかどうかは、クエスト完了後の賛同者の投票で決まります。(中には投票なしで援助される場合もあります。)
このように、みんなが使いたいと思う企画があればQuestに投稿することで支援を受けられる可能性があります。
またQuestとは別に、Symbolでの活動を頑張っている人に対して個別に支援をしてくれる方もいらっしゃいます。かくいう私も支援して頂きました。
こちらは自分からは申請できませんが、きっと良いサービスを作っていたら目に止まってくれるかと思います。
まとめ
個人開発者の中で、ブロックチェーンって?WEB3.0ってどうやって使えばいいの?という方、沢山いると思います。(私自身もそうです)
ただ、これは実際に使ってみて感覚を掴んでいくしかないと思っています。
机上の空論より、実際に何かサーブスを作ってみる。既存のサービスに少しでも取り入れてみる。
それが容易にできるのがSymbolブロックチェーンだと思っています。もし使っている中で、そこから他のブロックチェーンを学んでもいいし、移行してもいいと思います。
Symbolは正直まだまだ利用人口が少ないので、たとえ作ったとしても使われる母数は決まっています。
しかし少なくてもガッツリ使ってもらえるし、ブロックチェーンの勉強にもなるし、今後普及が進めば今サービスを作った人はその先行者利益を受ける事ができます。
もし、Symbolで開発してみたい、興味を持ったという方がいればお気軽に、本当にお気軽にDMやリプいただければ、私でわかることはなんでもお伝えしますし、分からなければDiscordへお送りします笑
とにかく楽しいですよ!一緒に楽しみましょう!