Help us understand the problem. What is going on with this article?

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

More than 3 years have passed since last update.

はじめに

これまで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をインストール

https://nem.io/downloads/

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

http://chain.nem.ninja/#/browse/supernova.planets

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

https://github.com/aleixmorgadas/nem-library-examples

インストール

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);
});

おしまい

oggata
iPhoneゲームの制作をしています。3Dで描かれた動物をモチーフにしたパズルゲーム、ネコダンなど。愛車HARLEY-DAVIDSON-XL1200R. http://oggata.tumblr.com
http://oggata.tumblr.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away