16
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

NEMのモザイクを使って独自通貨を作ってみる

Posted at

はじめに

これまで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年となり、継続して使用する場合には手続きが必要となります。
nem-howto1.png

3.モザイクを作成する

nem-howto3.png

4.モザイクを送信する

nem-howto4.png

5.作ってみた

supernovaというドメインを取得して、その下に、
planetsというサブドメイン、その下にjupiterというような名称のモザイク(仮想通貨)を
作成してみました。

Supernova
    |-Planets
        |-Earth
        |-Mercury

nem-libraryを使ってJavaScriptから作成したモザイクを操作する

インストール

npm install -g nem-library,rxjs

サンプル

get_balance.js
//アドレスの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);
});
get_namespace_info.js
//作成したネームスペースやモザイクの情報を取得するサンプル
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);
});

おしまい

16
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?