はじめに
つい先日NFT総合マーケットプレイス「LINE NFT」 4月13日(水)に提供開始というプレスリリースが出てNFTマーケットβが正式リリースになるんだなあと思いました。
開発者としてはコンテンツ流通がどうこうというよりはAPIでどこまで触れるんだろうとかが気になります。
そこで今回はまずLINE Blockchainの概要の説明からサービスの作成、APIリクエストまでをざっとやってみようと思います。
LINE Blockchain
まず、LINEのBlockchainサービスを理解するためには以下のサービス名称をおさえておく必要があります。
- LINE Blockchain
- LINE Blockchain Developers
- LINE BITMAX Wallet
LINE Blockchain
LINE BlockchainはLINE社が運営しているプライベートチェーン・ネットワークです。
LINE Blockchain Developers
LINE Blockchainを基盤として、それを利用するために必要な各種機能を提供する開発者向けプラットフォーム。トークンの作成・鋳造・転送・焼却、ブロックチェーンのトランザクションの記録・取得およびサービス管理機能を提供しています。
LINE BITMAX Wallet
LINEの仮想通貨ウォレットサービス。LINE IDユーザーが保有するトークンを取得・転送できます。現時点でNTFマーケット機能がβ版で提供されています。LINE Blockchain Developers APIでLINE BITMAX Walletの各種機能を利用できます。
各種サービスの連携は下図のように説明されてます。
ざっくり言うとLINE Blockchainを利用した開発を始めるには、LINE Blockchain DevelopersにサインインしてLINE BlockchainのTestnetに参加するところからです。この時点でLINE BITMAX Walletの口座開設は必要ないはずですが、Mainetで実際にサービスを運用する際には必要になると思われます。
LINE Blockchain サービスを登録する
とりあえず体系的なことはこれくらいにしてAPIを使う手順をやっていきます。
LINE Blockchainサービスを作成する
LINE Developer Consoleにサインインして新しいプロバイダを作成します。利用規約にチェックをいれて同意ボタンをクリックすると以下のようなダイアログが表示されます。継続するためには申請ボタンをクリックします。
プロバイダが作成されると以下の画面からブロックチェーンサービスを選択します。
チャンネル名やメールアドレスなど必要な情報を入力します。必須項目をすべて入力してから「チャンネルを作成してLINE Blockchain Developersに移動」をクリックします。
はじめてBlockchainチャンネルを作成する場合はLINE BlockchainのTestnetであるCashewに参加するための審査が行われます。審査結果は登録したメールアドレスに送信されるのでしばらく待ちます。
承認されると以下のようなメールが届いてLINE Blockchainサービスが利用可能になります。
作成したチャンネルのブロックチェーンタブをクリックするとLINE Blockchain Developersに移動
というボタンがあるのでクリックします。
チェーンにCashew
を指定。サービスカテゴリーとターゲット国・地域を任意に設定してサービス同意にチェックを入れ作成
ボタンをクリックします。
作成されたサービスの確認画面が表示されます。ここで表示されるAPI Key
とAPI Secret
をメモ帳などに控えておきます。特にAPI Secret
は今後再表示されないので忘れずにコピーしておきます。コピー後確認
ボタンをクリックします。
Secretをコピーしたかを確認する入力画面が表示されるのでコピーしたAPI Secret
を入力しOK
ボタンをクリックします。
任意のWallet名を入力して新しいWalletを作成します。
作成されたWalletのWallet Secret
をコピーしておきます。
Wallet Secret
を入力してOK
ボタンをクリックします。ここで作成したWalletは今後Owner Wallet
、受信Wallet
とも呼ばれます。
Service Tokenを作成します。任意のToken名
、Tokenシンボル
を入力して最下段の作成
ボタンをクリックします。
Walletを作成したときにコピーしたWallet Secret
を入力してOK
ボタンをクリックします。
Service Tokenが作成されました。確認
ボタンをクリックします。
Item Token用の契約IDを作成します。作成
ボタンをクリックします。
Walletを作成したときにコピーしたWallet Secret
を入力してOK
ボタンをクリックします。
Item Token用の契約IDが作成されました。コピーしてから確認
ボタンをクリックします。
これでブロックチェーンサービスが作成できました。
LINE Blockchain APIを叩いてみる
APIの使い方はAPIリファレンスに記載されています。これに従ってcurlなどで叩いてもいいのですが、認証の手続きがセキュアでやや複雑なため今回は簡単にJavaScript SDKを使って基本的なAPIにアクセスしてみます。
LINE Blockchain Developers SDK for JavaScriptを使ってみる
まず環境を準備してSDKをインストールします。
mkdir lbd-sdk && cd $_
yarn init
yarn add -D typescript ts-node
yarn add @line/lbd-sdk-js
yarn run tsc --init
mkdir src
JavaScriptライブラリガイドに掲載されているサンプルコードを元にサーバー時刻を取得するコードを書きます。
vi src/index.ts
import * as devSdk from '@line/lbd-sdk-js';
const BASE_URL = 'https://test-api.blockchain.line.me';
const SERVICE_API_KEY = 'your own service api-key';
const SERVICE_API_SECRET = 'your own service api-secret';
const main = async () => {
const httpClient = new devSdk.HttpClient(BASE_URL, SERVICE_API_KEY, SERVICE_API_SECRET);
const res = await httpClient.time();
console.log(res);
};
main();
SERVICE_API_KEY
とSERVICE_API_SECRET
の値はサービス作成のときに控えたAPI Key
とAPI Secret
に置き換えてください。
実行してみます。
yarn run ts-node src/index.ts
{
responseTime: 1648366198361,
statusCode: 1000,
statusMessage: 'Success'
}
✨ Done in 1.70s.
正常にサーバー時刻が取得できました。SDKを使うと簡単ですね。
おわりに
Blockchainサービスの登録方法は他のLINEサービスに比べて複雑だと思いますが、そもそもBlockchain開発自体の複雑性を考えるとBlockchain networkの参加からWalletの作成、トークンの発行までがすべてGUIで設定できるのはBlockchain初心者には易しいほうだと感じます。これからBlockchainを学びたいという初学者には開発のながれをざっと体験できるわかりやすい開発環境かもしれません。
今回はLINE Blockchainサービスを登録してSDKを使ってAPIにアクセスしてみるところまでやってみました。次回はTokenの取得や転送など具体的なAPIの使い方を探ってみようと思います。