はじめに
これまでCounterpartyやEthereumなどで独自通貨を作っていましたが、
今回はNEMを使って独自通貨を作成します。
NEMにはnamespaceとmosaicという
独自通貨を作る上で、便利な機能を持っている為、独自通貨という用途として考えたとき、
利便性に優れているといえます。
NEMとは
NEMはNew Economy Movementの略称。
BitcoinやEthereumと同じように仮想通貨。(仮想通貨の単位はXEM)
ブロック生成間隔が約1分程度とビットコインなど他の仮想通貨と比較すると、
トランザクション承認のスピードが早いことが特徴。
NEMのnamespaceとは
インターネットのドメインのようなもので、サブドイメインのように階層を持つことができます。
このnamespaceは永続的なものではなく、1年間の有効期限付きで、継続するためには
1年毎に使用料を支払う必要があります。(最大文字数は16文字、サブは64文字まで可能です)
NEMのmosaicとは
トークンなどと呼ばれるもので、実際に取引される通貨のようなものになります。
planets:jupiter
planets:xxxx
のような感じでnamespaceの下に紐付けされていきます。
設定可能な項目
説明
フリーテキスト。自由に記述でき、後で変更可能。
初期供給量
発行数。ロックすることもできます。
実際に作ってみる
1.nano walletをインストール
2.サービスから、ネームスペース と ドメインの設定をする
注意点としては、上位のネームスペースのレンタル料として100XEM(記事作成時点のレートで2800円前後)がかかります。またサブドメインのレンタル料として10XEM (現在レートで280円)がかかります。レンタル期間は1年となり、継続して使用する場合には手続きが必要となります。
3.モザイクを作成する
4.モザイクを送信する
5.作ってみた
supernovaというドメインを取得して、その下に、
planetsというサブドメイン、その下にjupiterというような名称のモザイク(仮想通貨)を
作成してみました。
Supernova
|-Planets
|-Earth
|-Mercury
nem-libraryを使ってJavaScriptから作成したモザイクを操作する
インストール
npm install -g nem-library,rxjs
サンプル
//アドレスのXEM + モザイクの残高を確認するサンプル
Object.defineProperty(exports, "__esModule", { value: true });
var nemlib = require("nem-library");
//MAIN_NET、TEST_NETなどから選択する
nemlib.NEMLibrary.bootstrap(nemlib.NetworkTypes.MAIN_NET);
//残高を確認するウォレットのアドレス
var address = new nemlib.Address("");
var accountOwnedMosaics = new nemlib.AccountOwnedMosaicsService(new nemlib.AccountHttp(), new nemlib.MosaicHttp());
accountOwnedMosaics.fromAddress(address).subscribe(function (mosaics) {
console.log(mosaics);
});
//作成したネームスペースやモザイクの情報を取得するサンプル
var nemlib = require("nem-library");
//MAIN_NET、TEST_NETなどから選択する
nemlib.NEMLibrary.bootstrap(nemlib.NetworkTypes.MAIN_NET);
var mosaicHttp = new nemlib.MosaicHttp();
var namespace = "supernova.planets";
mosaicHttp.getAllMosaicsGivenNamespace(namespace).subscribe(function (mosaicDefinitions) {
console.log(mosaicDefinitions);
});