Doc

Overall setting

Explanation of the setting files used with mijin.

Port setting

The following ports are used as default with mijin.
The ports used other than the default ports are also shown below for your reference.

  • mijin : 7895
  • nic(nem public) : 7890
  • websocket(light wallet etc..) : 7778

Port 7895 needs to be left open for communication among the nodes with mijin.

Mijin's port settings may be changed through following the procedure below.

config.properties

# setting path, protocol, and port
nem.protocol = http
nem.host =
nem.httpPort = 7895
nem.httpsPort = 7896
nem.webContext = 7778

peers-config_mijinnet.json

{
"endpoint": {
"host": "host number",
"port": 7895,
"protocol": "http"
},
"identity": {
"name": "arbitrary",
"public-key": "public key"
}
}

Installation procedure

Install mijin on your server with the following procedure.

  1. Placement and unzipping of "serverjars.tgz"
  2. Placement of "nemesis-mijinnet.bin"
  3. Placement of "startnem.sh"
  4. Setting and placement of "peers-config_mijinnet.json"
  5. Setting and placement of "config-user.properties"
  6. Execution of the following commands.
    echo "@reboot screen -S mijin -d -m /home/username/mijin/startnem.sh" | sort - | uniq - | crontab -
  7. Activation of mijin with the following commands.
    screen -S mijin -d -m /home/username/mijin/startnem.sh

peers-config_mijinnet.json

This file sets the host that administers Peer-to-Peer data exchange. The member node names and public-keys will be registered as the host, port, protocol and identity, and placed in all nodes. The hosts of the nodes will be registered as well.

Registration example
{
  "_info": "this file contains a list of all trusted peers and can be shared",
  "knownPeers": [
    {
      "endpoint": {
        "host": "40.74.117.224",
        "port": 7895,
        "protocol": "http"
      },
      "identity": {
        "name": "mijin1",
        "public-key": "838bb9202f1466e176edcd7093e84a602530c09b9f1ac72455b6f399cea3eb4e"
      }
    }
    {
      "endpoint": {
        "host": "52.187.5.62",
        "port": 7895,
        "protocol": "http"
      },
      "identity": {
        "name": "mijin2",
        "public-key": "c952c6fa705511323b8f60097ab97093d0d862d335a1e8f597d6411d83cf01b2"
      }
    }
    {
      "endpoint": {
        "host": "13.88.24.92",
        "port": 7895,
        "protocol": "http"
      },
      "identity": {
        "name": "mijin3",
        "public-key": "ef8576c0fdb6ffc9b6e4ae25d1efb9fa313ee4e7b12d87828cedbc9aed52e3fd"
      }
    }
  ]
}
Key explanation
host IP address
port normally use 7895
protocol http or https
※ as of 2018.2.20, checked only http
name The name of the node.(arbitrary a set of alphabets)
public-key ノThe public key used to identify the node.

When a new node is added, the setting data added to one of the member nodes will be read by all other nodes. After files are automatically updated, Peer-to-Peer data exchange will start.

config-user.properties

This file sets the individual nodes.

Key Explanation
nem.shortServerName server name
nem.folder place to put log and db file
nem.maxThreads thread pool setting(default: 500)
this setting affects CPU and memory
nem.protocol telecommunication protocol(http or https)
nem.host IP address of host
nem.httpPort http port
nem.httpsPort https port
nem.webContext websocket port
nem.apiContext not use
nem.homePath not use
nem.shutdownPath /shutdown fixed
nem.useDosFilter DOS filter setting
  • true ... 50 request/second limit
  • false ... no limit
nem.nonAuditedApiPaths API allowed
nem.network mijinnet fixed
nis.shouldAutoBoot auto node startup
nis.bootKey node private key(node sets up as one account. need to set up private key of this account)
nis.bootName node name(arbitrary a set of alpjabets)
nis.shouldAutoHarvestOnBoot Automatically start harvesting or not when a node boot up
nis.additionalHarvesterPrivateKeys Private key for a node that would receive harvesting XEM
nis.nodeLimit The number of nodes with which a node broadcasts
nis.timeSyncNodeLimit The number of nodes with which a node synchronizes
nis.useBinaryTransport send binarydata after transactions
nis.useNetworkTime use timestamp of nis
  • true ... use timestamp of nis
  • false ... use system timestamp
nis.ipDetectionMode Automatically detect IP address
  • AutoRequired ... Auto detect and verfy when a node up
  • AutoOptional ... Auto detect and not verfy when a node up
  • Disabled ... no auto detect nor verify
nis.unlockedLimit The number of harvest unlock accounts. If this number is large it will affect harvest
nis.allowedHarvesterAddresses Address to which harvest is permitted (pipe break) * In case of blank No restriction
nis.maxTransactions Maximum number of blocks shared by other nodes when creating a block
nis.maxTransactionsPerBlock Maximum number of transactions in one block
nis.blockGenerationTargetTime Interval time until the next block is generated (This setting is for calculating the difficulty level at the time of block creation, not by the set number of seconds.)
nis.blockChainRewriteLimit Maximum number of blocks to eliminate fork
nis.additionalLocalIps IP address of local node
nis.transactionHashRetentionTime Transaction hash retention time (-1 = permanent, minimum 36)
nis.optionalFeatures Node optional functions
  • TRANSACTION_HASH_LOOKUP : Transaction search possible with hash
  • HISTORICAL_ACCOUNT_DATA : Account history available
nis.blockChainFeatures Blockchain agreement formation (pipe break)
  • PROOF_OF_IMPORTANCE: The block chain is a Proof of Importance (POI) consensus algorithm
  • PROOF_OF_STAKE: Block chain is a Proof of Stake (POS) consensus algorithm
  • WB_TIME_BASED_VESTING: Adjustment of vest balance by time difference
  • WB_IMMEDIATE_VESTING: Reflected on vest balance without time difference
  • STABILIZE_BLOCK_TIMES: Time adjustment at block creation
nis.delayBlockLoading Whether or not block loading delay processing is performed
nis.ignoreFees Whether to make the transaction fee free (to make it free, set true for all nodes)

When a new node is added, the setting data added to one of the member nodes will be read by all other nodes. After files are automatically updated, Peer-to-Peer data exchange will start.

Procedure to reboot mijin

The procedure to reboot mijin is as follows.
Please make sure to reboot mijin after changing the settings.

ps aux | grep java
kill -9 process number
// mijin boot up
$ screen -S mijin -d -m /home/[account name]/mijin/startnem.sh
or
$ ./startnem.sh &
or
$ nohup ./startnem.sh &

Concerning log files

Log data will be output at the information level to the location set by "nem.folder" in "config-user.properties".

* Normally, log data is placed in "/home/mijin/nem/nis/logs".

Concerning db files

The blocks and transactions are stored in H2 Database.
The storing location is set by "nem.folder" in "config-user.properties" and the data is normally stored as "/home/username/nem/nis/data/nis5_mijinnet.h2.db".

When the synchronization of the blocks from other nodes is not performed for some reason, rename or delete the file above.

* After mijin is restarted, the blocks will be supplied from the other nodes and synchronization will be initiated.

Concerning timestamp

The "timestamp" will be the network time with "nem" starting at zero.
The network time with "nem" starting at zero is highly recommended since mijin works properly only when the same network time is shared by the members. When replacing the network time with the current time, add1427587585and convert to date and time.

* When using the system timestamp, set "nis.useNetworkTime" in "config-user.properties" to "false".

API

API related to server (NIS)

The status of the server on which mijin is being run can be confirmed.

type explanation
1 result
2 Heartbeat result
4 Status

/heartbeat

This is to confirm if NIS is in operation.
Example: http://< Host IP address>:7895/heartbeat

Example response
{
        "code": 1,
        "type": 2,
        "message": "ok"
}

/status

This is to confirm the status of NIS.
Example:http://< host ip address>:7895/status

Example response
{
        "code": 6,
        "type": 4,
        "message": "status"
}
code Explanation
0 unknown status
1 suspend
2 starting
3 runnnig
4 starting local node
5 running local node
6 synchronizing local node
7 The local node can not recognize the remote node
8 Block chain loading from database (request processing is not available during this discharge)

API related to account

Concerning accounts

Accounts are divided into two different types.

  • Ordinary accounts
  • Multisig accounts

Ordinary accounts

Ordinary accounts are generated with a secret key. Account signing requires the secret key.

If the secret key has been stolen, it means that the control of the account has been compromised. Therefore, key management is important.

Multisig accounts

These accounts are composed of multiple ordinary accounts.These accounts allow the initiation of desired actions with the signatures provided by multiple ordinary account signers.

Even if the key for a multisig account has been stolen, no action will be initiated unless multiple signatures are gathered.

Concerning accounts
address Each account is assigned a unique address. The length of the address is always 40 characters and is encoded in base32.
balance It is the balance of micro NEM. 123456789 means 123.456789 owns NEM.
importance Importance is assigned to each account. It is set between 0 and 1. The algorithm for calculating importance is private.
publicKey It is the public key assigned to the account.
label Currently it is unused.
harvestedBlocks It is the number of harvested blocks.

Each account contains meter data below.

Account meta information
status It is the account harvest situation.
remoteStatus The harvest can be delegated to another account, and the delegate will be in the harvest situation.
cosignatoryOf It is the account information of the multi-sig account account signed.

Each transaction contains the following information:

Information included in the transaction
timeStamp Number of seconds elapsed since the Nemesis block (the first block created) was created. Time stamp of future date and time is not accepted. We verify the timestamp when validating the transaction.
signature Transaction signature. We will verify with the signer's public key.
fee Transaction fee. The higher the fee, the higher the priority of the transaction. High priority transactions are included in the block before lower priority transactions.
type It are the transaction types below.
  • 0x101: NEM transfer of recipient from sender
  • 0x801: Transfer importance from sender to remote account
  • 0x1001: Change normal account to multi-sig account
  • 0x1002: Signature to multi-sig transaction
  • 0x1003: Multi-sig transaction performed by multi-sig account
deadline The deadline of the transaction. The nemesis block (the first block created) is returned in the number of seconds elapsed since creation. Transactions that were not included in the block after the deadline are deleted.
version It is the version of the structure.
  • 0x68 << 24 + 1 (1744830465 as a 4-byte integer): Main network version
  • 0x98 << 24 + 1 (-1744830463 as a 4-byte integer): version of the test network
signer The public key of the account that created the transaction. It is encoded as a hexadecimal string.

Depending on the type of transaction, the following fields are added.

Additional field
recipient recipient address.
message Displayed when a message is attached to a transaction.
payload If the transaction contains a message, it stores the actual message. The maximum size of payload is 512 bytes.
type Type of message (two types of settings are possible).
  • 1: Give message without encrypting
  • 2: Encrypt message and give it
    If encrypted, decrypt it using the public key and secret key of each sender and receiver (If the sender decrypts, use the secret key of the sending sheath and the public key of the recipient, if the recipient decrypts , Using the recipient's private key and sender's public key)

The following metadata is given to the transaction.

Transaction meta information
height The height of the block containing the transaction.
id Transaction ID.
hash Transaction hash.

Harvest information is managed by the following fields.

Harvest information
timeStamp The number of seconds since the creation of the nemesis block.
id The ID of the block.
difficulty The difficulty of the block.
totalFee Total fee collected by harvesting blocks.
height The height of the harvested block.

You can obtain the following information about the importance of account.

Account importance information
address Account address.
importance Structure showing the importance of the account (here isSet, score, ev, height).
isSet Are "score", "ev", "height" fields available? If it is 1, it is all usable. If it is 0, each field can not be used.
score Importance of the account.
ev Pager rank of importance. The page rank is assigned in the range between 0 and 1.
height The height of the block where importance was calculated.

/account/generate

Create an account.
Example:http://< host ip address>:7895/account/generate

* To use this API, you need to add the IP address to be created in nis.additionalLocalIps in config.properties.

Response example
{
	"privateKey": "00913ff9a33c48796a83051de0b6b6b43c5f97ca4cdab6d8x4790bb042cdecdfb2",
	"address": "MDOWXJUB5DGHD3PJ4M7LMXJ3YY4VFEZ2ZUFOYROK",
	"publicKey": "4dc790779f406642471b4ea303cf5e5153677476e771df93346fb07f81539f2c"
}
Key Description
privateKey Private key of the account to be used on the block chain (used for creating electronic signatures, etc.)
address The address of the account to be used on the block chain
publicKey The public key of the account to be used on the block chain

/account/get

Acquire account information from account address.
Example:http://< host ip address>:7895/account/get?address=MDOWXJUB5DGHD3PJ4M7LMXJ3YY4VFEZ2ZUFOYROK

Parameters Description
address address
Response example
{
	"meta": {
		"cosignatories": [],
		"cosignatoryOf": [],
		"status": "LOCKED",
		"remoteStatus": "INACTIVE"
	},
	"account": {
		"address": "MDOWXJUB5DGHD3PJ4M7LMXJ3YY4VFEZ2ZUFOYROK",
		"harvestedBlocks": 0,
		"balance": 0,
		"importance": 0,
		"vestedBalance": 0,
		"publicKey": null,
		"label": null,
		"multisigInfo": {}
	}
}
Key Description
account account information
address Account address
harvestedBlocks Number of harvested blocks
balance Account balance
importance Account importance
vestedBalance Account Balance (Confirmed)
publicKey The public key of the account (displayed when trading)
label Unused (null)
multisigInfo Multisig information
meta Account meta information
cosignatories If the account is a multi-sig account, account information registered as a signer
cosignatoryOf Multisig account information signed by this account
status Account harvest state
remoteStatus Harvest state in remote environment
  • ACTIVE : Harvest enabled, remote harvesting enabled
  • DEACTIVATING : Harvest disabled, remote harvesting enabled
  • INACTIVE : Harvest disabled, remote harvesting invalid

/account/get/from-public-key

Acquire account information from the account's public key.
example:http://< host ip address>:7895/account/get/from-public-key?publicKey=5c8127ef691b3f4c06811a15932869db917430593ae342156836cea6831a25b7

Parameters Description
publicKey Account's public key
Response example
{
	"meta": {
		"cosignatories": [],
		"cosignatoryOf": [],
		"status": "LOCKED",
		"remoteStatus": "INACTIVE"
	},
	"account": {
		"address": "MCAPKIBWA6IM4CUE4MGHEKOQBQWLEOQM37PV4CTE",
		"harvestedBlocks": 0,
		"balance": 0,
		"importance": 0,
		"vestedBalance": 0,
		"publicKey": "5c8127ef691b3f4c06811a15932869db917430593ae342156836cea6831a25b7",
		"label": null,
		"multisigInfo": {}
	}
}

* The structure of the response result is the same as "/ account / get"

/account/get/forwarded

We will retrieve consigned account information from the account address.
example:http://< host ip address>:7895/account/get/forwarded?address=MCAPKIBWA6IM4CUE4MGHEKOQBQWLEOQM37PV4CTE

Parameters Description
address Account address
Response example
{
	"meta": {
		"cosignatories": [],
		"cosignatoryOf": [],
		"status": "LOCKED",
		"remoteStatus": "INACTIVE"
	},
	"account": {
		"address": "MCAPKIBWA6IM4CUE4MGHEKOQBQWLEOQM37PV4CTE",
		"harvestedBlocks": 0,
		"balance": 0,
		"importance": 0,
		"vestedBalance": 0,
		"publicKey": null,
		"label": null,
		"multisigInfo": {}
	}
}

* The structure of the response result is the same as "/ account / get"

/account/get/forwarded/from-public-key

retrieve consigned account information from the account's public key.
example:http://< host ip address>:7895/account/get/forwarded/from-public-key?publicKey=bdd8dd702acb3d88daf188be8d6d9c54b3a29a32561a068b25d2261b2b2b7f02

Parameters Description
publicKey Account's public key
Response example
{
	"meta": {
		"cosignatories": [],
		"cosignatoryOf": [],
		"status": "LOCKED",
		"remoteStatus": "INACTIVE"
	},
	"account": {
		"address": "MCAPKIBWA6IM4CUE4MGHEKOQBQWLEOQM37PV4CTE",
		"harvestedBlocks": 0,
		"balance": 0,
		"importance": 0,
		"vestedBalance": 0,
		"publicKey": null,
		"label": null,
		"multisigInfo": {}
	}
}

* The structure of the response result is the same as "/ account / get"

/account/status

Acquire account information from account address.
example:http://< host ip address>:7895/account/status?address=MCAPKIBWA6IM4CUE4MGHEKOQBQWLEOQM37PV4CTE

Parameters Description
address Account address
Response example
{
	"cosignatories": [],
	"cosignatoryOf": [],
	"status": "LOCKED",
	"remoteStatus": "INACTIVE"
}

* The structure of the response result is the same as the meta information of "/ account / get"

/account/transfers/incoming

Transaction information received by the account. Return up to 25 transactions included in the block chain.
example:http://< host ip address>:7895/account/transfers/incoming?address=MCAPKIBWA6IM4CUE4MGHEKOQBQWLEOQM37PV4CTE&hash=949583a20ebdfdcb58277eb42fef3e66e9e6bbfc47304d8741a82c68f7c53a2

Parameters Description
address Account address (required)
hash Transaction hash (optional)
id Transaction ID (optional)
Response example
{
	"data": [
		{
			"meta": {
				"innerHash": {},
				"id": 11,
				"hash": {
					"data": "589e8ae35140279dbc88a5bdd81560d25ab6e81f5b9f9365402c7fd861579625"
				},
				"height": 494
			},
			"transaction": {
				"timeStamp": 73970241,
				"amount": 3000000,
				"signature": "4cce8a1da26faed80b95d9ca223ee4f01ff21bbf40d1d64c845904d99219b680fbd92ccd4d4a78d973a626a77557f0853c36378433aba418a1ebadd998b8c80e",
				"fee": 0,
				"recipient": "MAENTDV3YWZZTWNAG7COHS3QNXQCJJQTUBF2MY2S",
				"type": 257,
				"deadline": 74030241,
				"message": {},
				"version": 1610612737,
				"signer": "c48850b863c2fe13066a8aed308da9b4d897e62ef8d81ae5bc04ff85bfb31a74"
			}
		}
	]
}
Key Description
meta Meta information of each transaction
id Transaction ID
height The height of the block containing the transaction
hash data: Transaction hash data
transaction Transaction details
timeStamp Transaction timestamp (number of seconds elapsed since creation of nemesis block)
amount Amount of micro NEM transferred from sender to recipient
signature Electronic signature of transaction
fee Transaction fee
recipient Recipient's address
type Transaction type (// below decimal number)
  • 0x0101 (transfer transaction) // 257
  • 0x0801 (importance transfer transaction) // 2049
  • 0x1001 (Multisig aggregate change transfer transaction) // 4097
  • 0x1002 (multisig signature transaction) // 4098
  • 0x1004 (multi-sig transaction) // 4100
  • 0x2001 (Proxy name space transaction) // 8193
  • 0x4001 (mosaic definition creation transaction) // 16385
  • 0x4002 (mosaic supply change transaction) // 16386
deadline Transaction deadline (number of seconds since nemesis block creation)
message
  • payload : Message included in transaction
  • type :1, it is unencrypted, 2 the message is encrypted
    2, decrypts the message with the public key of the other party and his / her secret key
version mijin Network version
  • 0x68 << 24 + 1 (1744830465 as a 4-byte integer): Main network version
  • 0x98 << 24 + 1 (-1744830463 as a 4-byte integer): version of the test network
signer トランザクションの署名者の公開鍵

/account/transfers/outgoing

Transaction information sent by the account. Return up to 25 transactions included in the block chain.
example:http://< host ip address>:7895/account/transfers/outgoing?address=MCAPKIBWA6IM4CUE4MGHEKOQBQWLEOQM37PV4CTE&hash=949583a20ebdfdcb58277eb42fef3e66e9e6bbfc47304d8741a82c68f7c53a22

Parameters Description
address Account address (required)
hash Transaction hash (optional)
id Transaction ID (optional)
Response example
{
	"data": [
		{
			"meta": {
				"innerHash": {},
				"id": 12,
				"hash": {
					"data": "eb00f38e66feab7c71c1cac52f70592908a2ddeb943919a4354a897d50c82c23"
				},
				"height": 499
			},
			"transaction": {
				"timeStamp": 73970313,
				"amount": 1000000,
				"signature": "bdc12c6d3a8cae96dde0537638f475fbb5f892241cc3e5a4b823aea4b773f2e3398568eb30443a4c9220102f762268eef5931a97e812fc18421ef8234b471306",
				"fee": 0,
				"recipient": "MCIDKKNJZGDQMYNAW6TFBTIXRKFUN5WE3MGCPNEW",
				"type": 257,
				"deadline": 74030313,
				"message": {},
				"version": 1610612737,
				"signer": "cdb0e4ab9704432da1bce869d7d13642e33707bf9e7bbca926b7e8101efd7e6d"
			}
		}
	]
}

* The structure of the response result is the same as "/ account / transfers / incoming"

/account/transfers/all

Transaction information on account transfers. Return up to 25 transactions included in the block chain.
example:http://< host ip address>:7895/account/transfers/all?address=MCAPKIBWA6IM4CUE4MGHEKOQBQWLEOQM37PV4CTE&hash=949583a20ebdfdcb58277eb42fef3e66e9e6bbfc47304d8741a82c68f7c53a22

Parameters Description
address Account address (required)
hash Transaction hash (optional)
id Transaction ID (optional)
Response example
{
	"data": [
		{
			"meta": {
				"innerHash": {},
				"id": 12,
				"hash": {
					"data": "eb00f38e66feab7c71c1cac52f70592908a2ddeb943919a4354a897d50c82c23"
				},
				"height": 499
			},
			"transaction": {
				"timeStamp": 73970313,
				"amount": 1000000,
				"signature": "bdc12c6d3a8cae96dde0537638f475fbb5f892241cc3e5a4b823aea4b773f2e3398568eb30443a4c9220102f762268eef5931a97e812fc18421ef8234b471306",
				"fee": 0,
				"recipient": "MCIDKKNJZGDQMYNAW6TFBTIXRKFUN5WE3MGCPNEW",
				"type": 257,
				"deadline": 74030313,
				"message": {},
				"version": 1610612737,
				"signer": "cdb0e4ab9704432da1bce869d7d13642e33707bf9e7bbca926b7e8101efd7e6d"
			}
		},
		{
			"meta": {
				"innerHash": {},
				"id": 11,
				"hash": {
					"data": "589e8ae35140279dbc88a5bdd81560d25ab6e81f5b9f9365402c7fd861579625"
				},
				"height": 494
			},
			"transaction": {
				"timeStamp": 73970241,
				"amount": 3000000,
				"signature": "4cce8a1da26faed80b95d9ca223ee4f01ff21bbf40d1d64c845904d99219b680fbd92ccd4d4a78d973a626a77557f0853c36378433aba418a1ebadd998b8c80e",
				"fee": 0,
				"recipient": "MAENTDV3YWZZTWNAG7COHS3QNXQCJJQTUBF2MY2S",
				"type": 257,
				"deadline": 74030241,
				"message": {},
				"version": 1610612737,
				"signer": "c48850b863c2fe13066a8aed308da9b4d897e62ef8d81ae5bc04ff85bfb31a74"
			}
		}
	]
}

* The structure of the response result is the same as "/ account / transfers / incoming"

/account/unconfirmedTransactions

Confirm transactions not included in account block.
example:http://< Host IP address>:7895/account/unconfirmedTransactions?address=MASM3LKYE6KJYHX5RII72UY5RZQNVH5EOKF6V4CZ

Parameters Description
address Account address (required)
Response example
{
	"data": [
		{
			"meta": {
				"data": "27e01e5c22fef40816bd3c6c28610df121a50b99526ce4fe16546e4b3f840850"
			},
			"transaction": {
				"timeStamp": 73970515,
				"signature": "cb41d4dc91d6dafff1135badb9298ac26258c840aa3ca21f42bb661c14be7fb1f23786c13cd078ab9443cb3a6c4d4aaa56cacc3e3b8ad1011528b070b4c3a40e",
				"fee": 100000000,
				"type": 4100,
				"deadline": 73974115,
				"version": 1610612737,
				"signatures": [],
				"signer": "cdc06d4a01ecdab63585348c767ee0ae83bbe0eac14fa739a2fe2583c811c14f",
				"otherTrans": {
					"timeStamp": 73970515,
					"amount": 1000000,
					"fee": 100000000,
					"recipient": "MCZSFYJTHU4WUEBKFBNV7SSCC2TONXZR2AYUUSMF",
					"mosaics": [
						{
							"quantity": 1,
							"mosaicId": {
								"namespaceId": "company",
								"name": "checked"
							}
						},
						{
							"quantity": 100000000,
							"mosaicId": {
								"namespaceId": "nem",
								"name": "xem"
							}
						}
					],
					"type": 257,
					"deadline": 73974115,
					"message": {},
					"version": 1610612738,
					"signer": "c48850b863c2fe13066a8aed308da9b4d897e62ef8d81ae5bc04ff85bfb31a74"
				}
			}
		}
	]
}

* The structure of the response result is the same as "/ account / transfers / incoming"

/account/importances

Account importance list.
example:http://< Host IP address>:7895/account/importances

Response example
{
	"data": [
		{
			"address": "MASMHHBO4JHSKSA7XMQCIXQRDVPH3Q6PTLNPAPP7",
			"importance": {
				"score": 0.1,
				"ev": 0,
				"isSet": 1,
				"height": 359
			}
		},
		{
			"address": "MASMHHBFKA24LNUNHCPDDZUO4YQTSXQUFBXNH52T",
			"importance": {
				"score": 0.1,
				"ev": 0,
				"isSet": 1,
				"height": 359
			}
		},
		{
			"address": "MAMIJINSVHBIPKT5XCFHJYGWL7WVRZQ6U7JG7LLN",
			"importance": {
				"isSet": 0
			}
		},
		{
			"address": "MASM5TN4UO4ZG22IRLTBDPO5HE74WXSFA4DTOT5Q",
			"importance": {
				"score": 0.1,
				"ev": 0,
				"isSet": 1,
				"height": 359
			}
		},
		{
			"address": "MASMHHC4277DD4RWRO4ZN5A3HVCLKLJTYEA76AOS",
			"importance": {
				"score": 0.1,
				"ev": 0,
				"isSet": 1,
				"height": 359
			}
		}
	]
}
Key Description
address address
importance Information on importance
score Account importance (0 - 1)
ev Page Rank (0 - 1)
isSet 0 or 1。
  • 0 ... ev, score, height can not be used when isSet is 0
  • 1 ... use ev, score, height when isSet is 0
height The height of the block whose importance was calculated

/account/namespace/page

The namespace created by the account.
example:http://< Host IP address>:7895/account/namespace/page?address=MCIDKKNJZGDQMYNAW6TFBTIXRKFUN5WE3MGCPNEW&parent=mijin.metal

Parameters Description
address Account address (required)
parent Parent namespace (optional)
id Name space ID (optional)
pageSize Namespace page number (optional)
Response example
{
	"data": [
		{
			"owner": "MBEBZWDRMPMZ7TYLVWOH63JZVC5FKR5I464F5HCR",
			"fqn": "company",
			"height": 62184
		}
	]
}
Key Description
fqn Name space name (namespace ID)
owner Name space owner
height The height of the block in which the namespace was started

/account/mosaic/definition/page

Mosaic information created by the account.
example:http://< Host IP address>:7895/account/mosaic/definition/page?address=MBEBZWDRMPMZ7TYLVWOH63JZVC5FKR5I464F5HCR&parent=mijin.metal.coins

Parameters Description
address Account address (required)
parent Parent namespace (optional)
id Mosaic ID (optional)
Response example
{
	"data": [
		{
			"creator": "fd5e60ae79d151b675e74f5efa3f72080a3d6658032e0e29a8ade645b2fd33cd",
			"description": "Check whether or not inspected",
			"id": {
				"namespaceId": "company",
				"name": "checked"
			},
			"properties": [
				{
					"name": "divisibility",
					"value": "0"
				},
				{
					"name": "initialSupply",
					"value": "9000000000"
				},
				{
					"name": "supplyMutable",
					"value": "false"
				},
				{
					"name": "transferable",
					"value": "true"
				}
			],
			"levy": {
				"fee": 1,
				"recipient": "MBEBZWDRMPMZ7TYLVWOH63JZVC5FKR5I464F5HCR",
				"type": 1,
				"mosaicId": {
					"namespaceId": "nem",
					"name": "xem"
				}
			}
		}
	]
}
Key Description
creator Public key of mosaic creator
id Mosaic ID
namespaceId ID of the namespace
name Mosaic name
description Mosaic Description
properties Attributes of mosaic
name Mosaic attribute name
value Attribute value of mosaic

/account/mosaic/owned

Mosaic information that the account has.
exapmle:http://< Host IP address>:7895/account/mosaic/owned?address=MBEBZWDRMPMZ7TYLVWOH63JZVC5FKR5I464F5HCR

Parameters Description
address Account address (required)
Response example
{
	"data": [
		{
			"quantity": 7607000324,
			"mosaicId": {
				"namespaceId": "nem",
				"name": "xem"
			}
		},
		{
			"quantity": 7000000000,
			"mosaicId": {
				"namespaceId": "company",
				"name": "checked"
			}
		}
	]
}
Key Description
mosaicId Mosaic ID
namespaceId ID of the namespace
name Mosaic name
quantity モザイクの数量

/account/historical/get

Acquire history information of account.
example:http://bigalice3.nem.ninja:7890/account/historical/get?address=MBEBZWDRMPMZ7TYLVWOH63JZVC5FKR5I464F5HCR&startHeight=17592&endHeight=17592&increment=1

* In order to use this API, you need to add HISTORICAL_ACCOUNT_DATA to nis.optionalFeatures in config.properties.

Parameters Description
address Account address (required)
startHeight Block height (from)
endHeight Block height (up to)
increment Height of block to be incremented (Up to 1000 can be set)
Response example
{
	[
		{
			"height": 17592,
			"address": "MBEBZWDRMPMZ7TYLVWOH63JZVC5FKR5I464F5HCR",
			"balance": 509676000000,
			"vestedBalance": 100999147150,
			"unvestedBalance": 408676852850,
			"importance": 0.00008857563463531297,
			"pageRank": 0.0007605047835049349
		}
	]
}
Key Description
address Account address
pageRank Pagerank
balance Account balance
importance Account importance
vestedBalance Account balance determinate
unvestedBalance Account balance undetermined minutes
height Block height

API related to blockchain

concerning block

Each node creates a block. The block contains transactions.
Each node validates the block of another node and synchronizes the block to its own block chain.
Every time timestamp is used, the commonly used network time is updated.
The block has the following data.

concerning block
timeStamp The time of the network on which the block was created.
signature The signature that created the block.
prevBlockHash The sha3-256 hash of the previous block is a hexadecimal character string.
type Type of block.
  • -1:Nemesis (Nemesis) block. Block generated first in the block chain.
  • 1: normal block. All blocks with height> 1 fall under this type.
transactions Transaction structure
version
  • 0x68 << 24 + 1 (1744830465 as a 4-byte integer): Main network version
  • 0x98 << 24 + 1 (-1744830463 as a 4-byte integer): version of the test network
signer The public key of the account that generated the block.
height Block height。

/chain/height

Get the height of the current block chain
example:http://< Host IP address>:7895/chain/height

Response example
{
       "height": 42799
}
Key Description
height Block height

/chain/score

Get the score of the current block chain. Higher scores result in better block chains, while other nodes acquire block chains with higher scores.
example:http://< Host IP address>:7895/chain/height

Response example
{
        "score": "18722d5a7d590deb"
}
Key Description
score ブロックのスコア

/chain/last-block

Get the block of the latest block chain.
example:http://< Host IP address>:7895/chain/last-block

Response example
{
	"timeStamp": 73971235,
	"signature": "63a4e50b967658aeb467fe49cb3453ade7f8095c0c66defa05cf07c05a489b098c156f680ac284fff3b16e90541d328f344dccbffa6520893d2b2f0de1455c0c",
	"prevBlockHash": {
		"data": "b3629fcfd24670d86f42762521ed5cd0729417952c6d20edcb926b5ce82c842e"
	},
	"type": 1,
	"transactions": [],
	"version": 1610612737,
	"signer": "1ea5f20b3bbd03bfe118ecd1aea7d93f819ab100c3b7500b92959c9b79c1075c",
	"height": 563
}
Key Description
timeStamp Transaction (number of seconds elapsed since creation of nemesis block)
signature Block signer
prevBlockHash data : Hash value of previous block
type Block type
  • -1:Nemesis block
  • 1: normal block
transactions Array of transactions
version Version of block (1610612737 fixed as 4 byte integer)
signer The public key of the account that harvested the block
height Block height

API related to node

Concerning nodes

Nodes are the entities which exchange the data in the network and each node has an account assigned.
Each node has the assigned IP address, port and communication protocol used at the endpoint.。
The nodes have the following statuses.

About node status
active Communication possible normally
inactive A node that can not be connected
busy Nodes that do not respond within the time limit although they are connectable nodes
failure Node with serious error during communication (communication protocol is different, account is different, etc.)
unknown Unknown node

For the node there are the following fields.

About nodes
name Node name
public-key The public key of the node
protocol Communication protocol
host Endpoint IP address
application Name of the application executing the node
version Application version
platform Name of the application executing the node

/node/info

Get node information.
example:http://< Host IP address>:7895/node/info

Response example
{
	"metaData": {
		"features": 3,
		"application": null,
		"networkId": 96,
		"version": "0.6.84-BETA",
		"platform": "Oracle Corporation (1.8.0_141) on Linux"
	},
	"endpoint": {
		"protocol": "http",
		"port": 7895,
		"host": "153.125.224.131"
	},
	"identity": {
		"name": "mijin01",
		"public-key": "1ea5f20b3bbd03bfe118ecd1aea7d93f819ab100c3b7500b92959c9b79c1075c"
	}
}
Key Description
metaData Node meta information
features Number of features the node has
application Application name
networkId Network ID
version Application version
platform OS, Java version
endpoint End point information
protocol protocol
port port
host host
identity End point information
name Node name
public-key The public key of the account that is running the node

/node/extended-info

Gets detailed information on the node.
example:http://< Host IP address>:7895/node/extended-info

Response example
{
	"node": {
		"metaData": {
			"features": 3,
			"application": null,
			"networkId": 96,
			"version": "0.6.84-BETA",
			"platform": "Oracle Corporation (1.8.0_141) on Linux"
		},
		"endpoint": {
			"protocol": "http",
			"port": 7895,
			"host": "153.125.224.131"
		},
		"identity": {
			"name": "mijin01",
			"public-key": "1ea5f20b3bbd03bfe118ecd1aea7d93f819ab100c3b7500b92959c9b79c1075c"
		}
	},
	"nisInfo": {
		"currentTime": 73971489,
		"application": "NEM Deploy",
		"startTime": 73964662,
		"version": "0.6.84-BETA",
		"signer": null
	}
}
Key Description
nisInfo Detailed information of the node
currentTime Time stamp on the current block chain (number of elapsed seconds since nemesis block was created)
application Application name where the node is running
startTime Application start time (elapsed seconds since nemesis block was created)
version Application version
signer Signer of digital signature used in application

※ The "node" part of the response result is the same as "/ node / info"

/node/peer-list/all

Get information on all the neighbor nodes.
example:http://< Host IP address>:7895/node/peer-list/all

Response example
{
	"inactive": [],
	"failure": [],
	"busy": [],
	"active": [
		{
			"metaData": {
				"features": 0,
				"application": null,
				"networkId": 0,
				"version": "0.0.0",
				"platform": null
			},
			"endpoint": {
				"protocol": "http",
				"port": 7895,
				"host": "81.224.224.156"
			},
			"identity": {
				"name": "mijinnode1",
				"public-key": "838bb9202f1466e176edcd7093e84a602530c09b9f1ac72455b6f399cea3eb4e"
			}
		},
		{
			"metaData": {
				"features": 1,
				"application": null,
				"networkId": 96,
				"version": "0.6.84-BETA",
				"platform": "Oracle Corporation (1.8.0_121) on Linux"
			},
			"endpoint": {
				"protocol": "http",
				"port": 7895,
				"host": "81.224.224.157"
			},
			"identity": {
				"name": "mijinnode2",
				"public-key": "c952c6fa705511323b8f60097ab97093d0d862d335a1e8f597d6411d83cf01b2"
			}
		}
	]
}

/node/peer-list/reachable

近接ノードでアクティブなノードの情報を取得します。
example:http://< Host IP address>:7895/node/peer-list/reachable

Response example
{
        "data": [
        "metaData":
        {
        "application": "NIS",
        "version": "0.4.33-BETA",
        "platform": "Oracle Corporation (1.8.0_25) on Windows 8"
        },
        "endpoint":
        {
        "protocol": "http",
        "port": 7890,
        "host": "81.224.224.156"
        },
        "identity":
        {
        "name": "Alice",
        "public-key": "a1aaca6c17a24252e674d155713cdf55996ad00175be4af02a20c67b59f9fe8a"
        },
        ]
}

※ The response result is the same as "/ node / info"

/node/peer-list/active

Get information on the selected node to broadcast the transaction.
example:http://< Host IP address>:7895/node/peer-list/active

Response example
{
	"data": [
		{
			"node": {
				"metaData": {
					"features": 3,
					"application": null,
					"networkId": 96,
					"version": "0.6.84-BETA",
					"platform": "Oracle Corporation (1.8.0_141) on Linux"
				},
				"endpoint": {
					"protocol": "http",
					"port": 7895,
					"host": "27.133.131.154"
				},
				"identity": {
					"name": "mijin01",
					"public-key": "442159366e13c9b899e53d4f0b64e6139910a6679fc30d6941e234de13f587e5"
				}
			},
			"syncs": 26,
			"experience": {
				"s": 3,
				"f": 0
			}
		},
		{
			"node": {
				"metaData": {
					"features": 3,
					"application": null,
					"networkId": 96,
					"version": "0.6.84-BETA",
					"platform": "Oracle Corporation (1.8.0_141) on Linux"
				},
				"endpoint": {
					"protocol": "http",
					"port": 7895,
					"host": "27.133.153.187"
				},
				"identity": {
					"name": "mijin04",
					"public-key": "42bb164fc20ae290985c3dc865c9bd576a867271d1f891e2013e7d85279dabc3"
				}
			},
			"syncs": 0,
			"experience": {
				"s": 4,
				"f": 0
			}
		}
	]
}

※ The response result is the same as "/ node / info"

/node/active-peers/max-chain-height

The closest node has the highest Block height
example:http://< Host IP address>:7895/node/active-peers/max-chain-height

Response example
{
        "height": 43920
}
Key Description
height The highest Block height

/node/experiences

It keeps the experience value exchanged when exchanging between nodes internally. Get the experience value of the node from another node.
example:http://< Host IP address>:7895/node/experiences

Response example
{
	"data": [
		{
			"node": {
				"metaData": {
					"features": 3,
					"application": null,
					"networkId": 96,
					"version": "0.6.84-BETA",
					"platform": "Oracle Corporation (1.8.0_141) on Linux"
				},
				"endpoint": {
					"protocol": "http",
					"port": 7895,
					"host": "27.133.131.154"
				},
				"identity": {
					"name": "mijin01",
					"public-key": "442159366e13c9b899e53d4f0b64e6139910a6679fc30d6941e234de13f587e5"
				}
			},
			"syncs": 712,
			"experience": {
				"s": 86,
				"f": 0
			}
		},
		{
			"node": {
				"metaData": {
					"features": 3,
					"application": null,
					"networkId": 96,
					"version": "0.6.84-BETA",
					"platform": "Oracle Corporation (1.8.0_141) on Linux"
				},
				"endpoint": {
					"protocol": "http",
					"port": 7895,
					"host": "27.133.154.6"
				},
				"identity": {
					"name": "mijin02",
					"public-key": "f7321ebe78dc09dac511893984ac1e194dfcffa3c3c3224192156ee94c304780"
				}
			},
			"syncs": 792,
			"experience": {
				"s": 70,
				"f": 0
			}
		},
		{
			"node": {
				"metaData": {
					"features": 0,
					"application": null,
					"networkId": 0,
					"version": "0.0.0",
					"platform": null
				},
				"endpoint": {
					"protocol": "http",
					"port": 7895,
					"host": "153.125.224.131"
				},
				"identity": {
					"name": "mijin03",
					"public-key": "1ea5f20b3bbd03bfe118ecd1aea7d93f819ab100c3b7500b92959c9b79c1075c"
				}
			},
			"syncs": 0,
			"experience": {
				"s": 0,
				"f": 0
			}
		}
	]
}
Key Description
syncs Number of synchronizations with remote node
experience Experience value of node
s Normal communication with remote node
f Normal communication with remote node

※ The "node" part of the response result is the same as "/ node / info"

API related Namespace

About the namespace

Using the namespace, you can publish your own coins.
A namespace can use only one name.
The namespace string is 16 characters in the root namespace, and the sub namespace is 64 characters.
The namespace string is 16 characters in the root namespace, and the sub namespace is 64 characters. The namespace is limited to characters beginning with an alphabet.
"Nem, user, account, org, com, biz, net, edu, mil, gov and info." is disabled.
Up to 3 namespaces can be created.

/namespace/root/page

Get the top level namespace.
example:http://< Host IP address>:7895/namespace/roots?id=26754&pageSize;=35

Parameters Description
id heighest ID of the namespace
pagesize Number of objects in the returned namespace (option) * The default value is 25, the minimum value is 5, the maximum value is 100
Response example
{
        "data": [{
        "meta":{
            "id":26264,
        },
        "namespace":{
            "fqn": "mijin.metal.coins",
            "owner": TD3RXTHBLK6J3UD2BH2PXSOFLPWZOTR34WCG4HXH",
            "height": 13465
        }
        },{
            "meta":{
            "id":25421,
        },
        "namespace":{
            "fqn": "gimre.vouchers",
            "owner": TDGIMREMR5NSRFUOMPI5OOHLDATCABNPC5ID2SVA",
            "height": 12392
        }
        }]
}
Key Description
meta Name space meta information
id Name space ID
namespace Name space information
fqn Name space name
owner Name space owner
height Block height when acquiring ownership

/namespace

Retrieve the information of the specified namespace.
example:http://< Host IP address>:7895/namespace?namespace=mijin.metal.coins

Parameters Description
namespace Name space name
Response example
{
	"owner": "MBEBZWDRMPMZ7TYLVWOH63JZVC5FKR5I464F5HCR",
	"fqn": "company",
	"height": 62184
}

※ The response result is the same as "namespace" in "/ namespace / root / page"

About mosaic

Mosaics are the definitions to circulate the original cryptocurrency.
Mosaics are required to belong to the root namespaces.
Mosaic names can be composed of 32 characters at maximum.
Only use English letters for the first character of the mosaic.
The following properties can be set.

property Description
mosaic id Mosaic name. Up to 32 characters.
description 概要. Up to 512 characters.
properties The following configurable properties
initialSupply Initial sharing volume. Default 1000. Up to 9 million
divisibility The setting of how many decimal places can be divided. 3, it can be divided up to 0.001.
supplyMutable Possibility to change supply quantity of mosaic. true or false.
transferable Whether the defined mosaic can be transferred to other than the creator. The default value is true.
levy Mosaic remittance charge setting
fee type It can be set with two types below.
  • absolute fee ... Absolute charge
  • percentile fee ... Fee according to a fixed percentage of transferred quantity
recipient Commission recipient
mosaic id Mosaic name paid as a commission.
fee fee.

/namespace/mosaic/definition/page

Gets the information of the specified mosaic.
example:http://< Host IP address>:7895/namespace/mosaic/definition/page?namespace=mijin.metal.coins

Parameters Description
namespace Name space name
id Top Mosaic ID (optional)
pagesize Number of mosaic objects to return (optional)
Response example
{
	"data": [
		{
			"meta": {
				"id": 2
			},
			"mosaic": {
				"creator": "fd5e60ae79d151b675e74f5efa3f72080a3d6658032e0e29a8ade645b2fd33cd",
				"description": "Whether or not inspected",
				"id": {
					"namespaceId": "company",
					"name": "checked"
				},
				"properties": [
					{
						"name": "divisibility",
						"value": "0"
					},
					{
						"name": "initialSupply",
						"value": "9000000000"
					},
					{
						"name": "supplyMutable",
						"value": "false"
					},
					{
						"name": "transferable",
						"value": "true"
					}
				],
				"levy": {
					"fee": 1,
					"recipient": "MBEBZWDRMPMZ7TYLVWOH63JZVC5FKR5I464F5HCR",
					"type": 1,
					"mosaicId": {
						"namespaceId": "nem",
						"name": "xem"
					}
				}
			}
		}
	]
}

※ The response result is the same as "/ account / mosaic / definition / page"

Transaction related API

About transactions

A transaction means remittance (asset transfer) from one account to another. The transactions will be pooled in the system as "unconfirmed" at first. The transactions will be processed, and remittance (asset transfer) will be initiated when the transactions are included into a block.

The blockchain often forks (branches off). After forking, the blockchain rolls back to cancel the forks. The maximum number of blocks which can roll back has been set to 360 as the initial default.

Transactions can be generated through the following two methods.

  • Method 1. Select the desired JSON structure according to the intended purpose and generate JSON containing an electronic signature and serialized "data" as shown below on the client side using "JavaScript" and transmit it to "/transaction/announce" using POST method
    {"data": "01010000010000604781b90320000000462ee976890916e54f…0000000000000000000000000000000000000000000000000", 
    "signature": "8584d64446316cafbfa6ea92b772a21cdcb18b72b36ae5f91f…d8605c09c06a3faf905f02de8b68b1069e49e631382c70a09"}
  • Method 2. Transmit the desired JSON structure which suits the intended purpose as it is using POST method.

The difference between method 1 and method 2 is that method 1 does not allow the secret key of the transaction generator to be exposed in the network, whereas method 2 allows the secret key of the transaction generator to be exposed in the network.
When method 2 is employed, it is highly recommended to perform the POST transmission within the server rather than performing POST transmission directly from the client side.

/transaction/announce

This will generate the transaction with "data" created from the serialized JSON structure and electronic signature.

/transaction/prepare-announce

This will generate the transaction from the JSON structure selected.

/transaction/get

Retrieve the transaction from the hash value.
example:http://< Host IP address>:7895/transaction/get?hash=949583a20ebdfdcb58277eb42fef3e66e9e6bbfc47304d8741a82c68f7c53a2

Parameters Description
hash Transaction hash

JSON構造体

A transaction will be generated by forming the JSON structure with the contents of the input form in accordance with the intended purpose and calling "transaction/prepare-announce".

The following are the JSON structures according to purpose.

Remittance transaction (v1)

This is the JSON structure used to make a remittance (asset transfer) from one account to another.

{
  "transaction": {
    "timeStamp": 73986093,
    "amount": 100,
    "fee": 0,
    "recipient": "MAENTDV3YWZZTWNAG7COHS3QNXQCJJQTUBF2MY2S",
    "type": 257,
    "deadline": 73989693,
    "message": {
      "payload": "",
      "type": 1
    },
    "version": 1610612737,
    "signer": "c48850b863c2fe13066a8aed308da9b4d897e62ef8d81ae5bc04ff85bfb31a74"
  },
  "privateKey": "dd214532115faa938e2982ef0b6a743b2b421fdfx20337b8d05da006235864722"
}
Remittance transaction (v2)

JSON structure for transferring money from one account to one account. Mosaic can also be remitted in version 2.

{
	"transaction": {
		"timeStamp": 73987329,
		"amount": 1000000,
		"fee": 0,
		"recipient": "MCIDKKNJZGDQMYNAW6TFBTIXRKFUN5WE3MGCPNEW",
		"type": 257,
		"deadline": 73990929,
		"message": {
			"payload": "",
			"type": 1
		},
		"version": 1610612738,
		"signer": "c48850b863c2fe13066a8aed308da9b4d897e62ef8d81ae5bc04ff85bfb31a74",
		"mosaics": [
			{
				"mosaicId": {
					"namespaceId": "company",
					"name": "checked"
				},
				"quantity": 2
			},
			{
				"mosaicId": {
					"namespaceId": "nem",
					"name": "xem"
				},
				"quantity": 0
			}
		]
	},
	"privateKey": "dd214532115faa938e2982ef0b6x2743b2b421fdf90337b8d05da006235864722"
}
Key Description
timeStamp Time stamp (time since the nemesis block was created)
amount Remittance fee
fee fee
recipient recipient account address
type 257(固定)
deadline Deadline of transaction
message Used to send messages
payload Message (up to 512 bytes)
type Whether to encrypt the message
  • 1 ... Do not encrypt
  • 2 ... Encrypt
version Network version (fixed to 1610612737)
signer The public key that created the transaction
mosaics Mosaic object
mosaicId Mosaic ID
namespaceId Mosaic's namespace
name Mosaic name
quantity Amount of mosaic to be remitted (In case of 3 divisions, remittance in milliseconds possible)
privateKey Sender's private key
Convert to multi-sig account

The multisig account is the account to generate mutisig transactions and is created by the involvement of multiple signers.
When generating a mutisig transaction which requires the signatures of three signers, it is required to create a multisig account using the public keys of three signers involved and then initiate remittance (asset transfer) to the account created.

{
	"transaction": {
		"timeStamp": 73987491,
		"deadline": 73991091,
		"fee": 0,
		"type": 4097,
		"version": 1610612737,
		"modifications": [
			{
				"modificationType": 1,
				"cosignatoryAccount": "c48850b863c2fe13066a8aed308da9b4d897e62ef8d81ae5bc04ff85bfb31a74"
			},
			{
				"modificationType": 1,
				"cosignatoryAccount": "cdc06d4a01ecdab63585348c767ee0ae83bbe0eac14fa739a2fe2583c811c14f"
			},
			{
				"modificationType": 1,
				"cosignatoryAccount": "ed664e20a3b721f6c798d4cf48d74c4b35363cdb438aad8b2485a678adf42185"
			},
			{
				"modificationType": 1,
				"cosignatoryAccount": "bc8bc985c790a4187188f240a2a0feecaa93ae48203df24d99799c6729798d66"
			},
			{
				"modificationType": 1,
				"cosignatoryAccount": "a29e61009f13d4818072b95c3fab0648692095557403dde7c6b198cd9f7810c4"
			}
		],
		"minCosignatories": {
			"relativeChange": 5
		},
		"signer": "bc97d0365b67c56cc05ecea06f82ac80510e62a93237ba32777dcfc0c12d96a7"
	},
	"privateKey": "6ad7fad521b316c6cddf4ab939fa28c977ba6d31x9b63ba34426a82186d29d28"
}
Key Description
modificationType マルチシグ署名者の追加 or 削除
  • 1 ... 署名者を追加
  • 2 ... 既存の署名者を削除
cosignatoryAccount 署名者のアカウント公開鍵
Mutisig transactions

Any one of the mutisig account signers can generate mutisig transactions.

{
	"transaction": {
		"timeStamp": 73988038,
		"fee": 0,
		"type": 4100,
		"deadline": 73991638,
		"version": 1610612737,
		"otherTrans": {
			"timeStamp": 73988038,
			"amount": 1000000,
			"fee": 0,
			"recipient": "MAENTDV3YWZZTWNAG7COHS3QNXQCJJQTUBF2MY2S",
			"type": 257,
			"deadline": 73991638,
			"message": {
				"payload": "",
				"type": 1
			},
			"mosaics": [
				{
					"mosaicId": {
						"namespaceId": "company",
						"name": "checked"
					},
					"quantity": 1
				},
				{
					"mosaicId": {
						"namespaceId": "nem",
						"name": "xem"
					},
					"quantity": 0
				}
			],
			"signer": "bc97d0365b67c56cc05ecea06f82ac80510e62a93237ba32777dcfc0c12d96a7",
			"version": 1610612738
		},
		"signer": "c48850b863c2fe13066a8aed308da9b4d897e62ef8d81ae5bc04ff85bfb31a74"
	},
	"privateKey": "dd214532115faa938e2982ef0b6a743b2b477fdf90337b8d05da006235864722"
}
Signing a mutisig transaction

This is the transaction to sign a multisig transaction.

{
	"transaction": {
		"timeStamp": 73988363,
		"fee": 0,
		"type": 4098,
		"deadline": 73991963,
		"version": 1610612737,
		"signer": "ed664e20a3b721f6c798d4cf48d74c4b35363cdb438aad8b2485a678adf42185",
		"otherHash": {
			"data": "c1484373c099c91fb4fcdb9bc4aae020360e96911f9526d381a3494599b4baf3"
		},
		"otherAccount": "MCPW6EIDKATNYBQOCJM266CNTI22WHW7IDIF5Y7E"
	},
	"privateKey": "a8207ae07e71e16c1a6c985669804b1f1c980ddd794d2627e00a88d8a46c0c32"
}
Addition and deletion of multisig transaction signers

This is the transaction to add or delete a multisig account signer.

{
		"transaction":
		{
			"timeStamp": 9111526,
			"fee": 6000000,
			"type": 4100,
			"deadline": 9154726,
			"version": 1610612737,
			"signer": "6083df7119d43e815ed2967c795f806f6b73f8f92a56a7611e3848816ec50958",
			"otherTrans": {
				"timeStamp": 9111526,
				"fee": 16000000,
				"type": 4097,
				"deadline": 9154726,
				"version": 1610612737,
				"signer": "a1aaca6c17a24252e674d155713cdf55996ad00175be4af02a20c67b59f9fe8a",
				"modifications": [
				{
					"modificationType": 1,
					"cosignatoryAccount": "6c66ea288522990db7a0a63c9c20f532cdcb68dc3c9544fb20f7322c92ceadbb"
				}
				],
				"minCosignatories" : {
					"relativeChange": 1
				}
			},
			"signatures":[
			]
		},
		"privateKey": "00be34fdb20a9f6fed51376f0bab9f25ea7b78d610324588a6b203d0a1a6db4bc1"
}
Generation of namespaces

This is to generate a namespace.

{
	"transaction": {
		"timeStamp": 73986205,
		"fee": 0,
		"type": 8193,
		"deadline": 73989805,
		"rentalFeeSink": "MAMESPACEWH4MKFMBCVFERDPOOP4FK7MTCZTG5E7",
		"rentalFee": 5000000000,
		"newPart": "company",
		"parent": null,
		"version": 1610612737,
		"signer": "c48850b863c2fe13066a8aed308da9b4d897e62ef8d81ae5bc04ff85bfb31a74"
	},
	"privateKey": "dd214532115faa938e2982ef0b6a743b2b421fdfpx337b8d05da006235864722"
}
Key Description
timeStamp time
fee fee
type 8193(fixed)
deadline Transaction expiration date
version 1610612737(fixed)
signer Author's public key
rentalFeeSink Account address to which rental fee is paid out (MAMESP - ACEWH 4 - MKFMBC - VFERDP - OOP 4 FK - 7 MTCZT - G 5 E 7 fixed)
rentalFee rental fee
newPart Name space name
parent parent Name space name
Generation of mosaics

This is to generate a mosaic.

{
	"transaction": {
		"timeStamp": 73986393,
		"fee": 0,
		"type": 16385,
		"deadline": 73989993,
		"version": 1610612737,
		"signer": "c48850b863c2fe13066a8aed308da9b4d897e62ef8d81ae5bc04ff85bfb31a74",
		"creationFee": 5000000000,
		"creationFeeSink": "MBMOSAICOD4F54EE5CDMR23CCBGOAM2XSKYHTOJD",
		"mosaicDefinition": {
			"creator": "c48850b863c2fe13066a8aed308da9b4d897e62ef8d81ae5bc04ff85bfb31a74",
			"description": "For inspection check",
			"id": {
				"name": "checked",
				"namespaceId": "company"
			},
			"levy": {
				"fee": 0,
				"mosaicId": {
					"name": "xem",
					"namespaceId": "nem"
				},
				"recipient": "MASM3LKYE6KJYHX5RII72UY5RZQNVH5EOKF6V4CZ",
				"type": 1
			},
			"properties": [
				{
					"name": "divisibility",
					"value": "0"
				},
				{
					"name": "initialSupply",
					"value": "900000000"
				},
				{
					"name": "supplyMutable",
					"value": "false"
				},
				{
					"name": "transferable",
					"value": "true"
				}
			]
		}
	},
	"privateKey": "dd214532115faa938e2982ef0b6a743b2b421fdf90x37b8d05da006235864722"
}
Key Description
timeStamp time
fee fee
type 16385(固定)
deadline Transaction expiration date
version 1610612737 (fixed)
signer Author's public key
creationFee fee
creationFeeSink fee transferred address (※ MBMOSA - ICOD4F - 54EE5C - DMR23C - CBGOAM - 2XSKYH - TOJD fixed)
mosaicDefinition Definition of mosaic
creator Public key of mosaic definer
id namespaceId ... Corresponding namespace
name ... Definition name of mosaic
description Description of mosaic
properties Definition of mosaic
divisibility The smallest subunit that can divide the mosaic
initialSupply Number of mosaics to be created first (up to 9 million)
supplyMutable Whether supply amount can be changed (true or false)
transferable Whether it can be transferred to other than mosaic creator (true or false)
levy Fee setting during mosaic transfer
type
  • 1 ... fee is absolutely necessary
  • 2 ... Fee according to the transfer amount
recipient fee Recipient's address
mosaicId Mosaic to collect as fee
namespaceId ... namespace
name ... Mosaic name
Change of definition of mosaic

To change the definition of mosaic, you can do with the same JSON structure as creating a mosaic.
However, it is the Description (description) part that can be changed, and if you change the property you must own all of that mosaic.

Changing supply quantity of mosaic

If the created mosaic is unsent, you can change the mosaic supply with the same json structure as creating a mosaic.

ERROR MESSAGES

  • Request method 'GET' not supported
    It is requested by GET though it must be POST request.
  • address must be valid:
    address is invalid.
  • FAILURE_SERVER_LIMIT:
    The number of harvest accounts exceeds the number allowed.
  • JSON Object was expected:
    There is no Parameters necessary for JSON
  • FAILURE_UNKNOWN_ACCOUNT:
    Account unknown
  • block not found in the db
    The requested block does not exist
  • height must be positive
    Block height designation is invalid
  • network has not been booted yet
    The node has not been started yet
  • network boot was already attempted
    I tried restarting a started node
  • remote 123.45.67.89 attempted to call local /node/boot
    I tried to start a remote node
  • FAILURE_PAST_DEADLINE
    Entity expiration
  • FAILURE_FUTURE_DEADLINE
    Expiration time is over authorized time
  • FAILURE_INSUFFICIENT_BALANCE
    Account shortage
  • FAILURE_MESSAGE_TOO_LARGE
    Transaction message exceeds 512 bytes
  • FAILURE_HASH_EXISTS
    Entity hash does not exist
  • FAILURE_SIGNATURE_NOT_VERIFIABLE
    Invalid signature
  • FAILURE_TIMESTAMP_TOO_FAR_IN_PAST
    The time stamp of the entity is invalid (it is in the past)
  • FAILURE_TIMESTAMP_TOO_FAR_IN_FUTURE
    The time stamp of the entity is invalid (it is the future)
  • FAILURE_INELIGIBLE_BLOCK_SIGNER
    Block contains invalid signature
  • FAILURE_ENTITY_UNUSABLE_OUT_OF_SYNC
    Entity processing can not be done before synchronization with other nodes (occurred when receiving blocks that differ greatly in height before the nodes are fully synchronized)
  • FAILURE_INSUFFICIENT_FEE
    feeが不正
  • FAILURE_NEMESIS_ACCOUNT_TRANSACTION_AFTER_NEMESIS_BLOCK
    Since the supplied transaction has a nemesis account, it can not be included in a normal block
  • FAILURE_TRANSACTION_CACHE_TOO_FULL
    Transaction acceptance refused because transaction cache exceeds limit
  • FAILURE_WRONG_NETWORK
    The specified network is incorrect
  • FAILURE_CANNOT_HARVEST_FROM_BLOCKED_ACCOUNT
    Block was rejected due to block created by blocked account
  • FAILURE_DESTINATION_ACCOUNT_HAS_NONZERO_BALANCE
    Account can not be transferred because it has balance other than 0
  • FAILURE_IMPORTANCE_TRANSFER_IN_PROGRESS
    Transaction conflicting (processing in progress)
  • FAILURE_IMPORTANCE_TRANSFER_NEEDS_TO_BE_DEACTIVATED
    Transaction conflicts (importance has been transferred)
  • FAILURE_IMPORTANCE_TRANSFER_IS_NOT_ACTIVE
    Transaction conflicts (importance before transfer)
  • FAILURE_TRANSACTION_NOT_ALLOWED_FOR_REMOTE
    The transaction uses an inappropriate remote account
  • FAILURE_MULTISIG_NOT_A_COSIGNER
    Not a multi-sig signer
  • FAILURE_MULTISIG_INVALID_COSIGNERS
    Invalid signer connected to multi-sig transaction
  • FAILURE_MULTISIG_NO_MATCHING_MULTISIG
    No corresponding multi-sig transaction can be found
  • FAILURE_TRANSACTION_NOT_ALLOWED_FOR_MULTISIG
    Signature rejected due to multi-sig account
  • FAILURE_MULTISIG_ALREADY_A_COSIGNER
    I attempted to add a new signer to a signed multisig transaction
  • FAILURE_MULTISIG_MODIFICATION_MULTIPLE_DELETES
    I attempted to delete multiple signers. Only one signer can be deleted per transaction
  • FAILURE_MULTISIG_MODIFICATION_REDUNDANT_MODIFICATIONS
    Because the same signer tried to sign multiple times
  • FAILURE_CONFLICTING_MULTISIG_MODIFICATION
    After adding a signer, I attempted to delete that signer
  • FAILURE_TOO_MANY_MULTISIG_COSIGNERS
    Up to 32 accounts can be set with multi-sig
  • FAILURE_MULTISIG_ACCOUNT_CANNOT_BE_COSIGNER
    Verification failed because the multisig account becomes the signer due to the change of the multisig
  • FAILURE_MULTISIG_MIN_COSIGNATORIES_OUT_OF_RANGE
    Multi-sign signature number is different
  • FAILURE_NAMESPACE_UNKNOWN
    Name space name is unknown
  • FAILURE_NAMESPACE_ALREADY_EXISTS
    Identical name space name exists
  • FAILURE_NAMESPACE_EXPIRED
    Expiration of namespace
  • FAILURE_NAMESPACE_OWNER_CONFLICT
    Name space owner conflicts
  • FAILURE_NAMESPACE_INVALID_NAME
    Name space name is invalid
  • FAILURE_NAMESPACE_INVALID_RENTAL_FEE_SINK
    Namespace rental fee will be paid out Account invalid
  • FAILURE_NAMESPACE_INVALID_RENTAL_FEE
    Namespace rental fee is invalid
  • FAILURE_NAMESPACE_PROVISION_TOO_EARLY
    Namespace rental was done before issue
  • FAILURE_NAMESPACE_NOT_CLAIMABLE
    A reserved word is included in the namespace
  • FAILURE_MOSAIC_UNKNOWN
    Mosaic name is invalid
  • FAILURE_MOSAIC_MODIFICATION_NOT_ALLOWED
    Modification of mosaic is not permitted
  • FAILURE_MOSAIC_CREATOR_CONFLICT
    Mosaic owner conflicts
  • FAILURE_MOSAIC_SUPPLY_IMMUTABLE
    Mosaic supply amount can not be changed
  • FAILURE_MOSAIC_MAX_SUPPLY_EXCEEDED
    The supply amount of the mosaic as a whole is the maximum value
  • FAILURE_MOSAIC_SUPPLY_NEGATIVE
    Supply amount of mosaic is invalid
  • FAILURE_MOSAIC_NOT_TRANSFERABLE
    Mosaic can not be transferred
  • FAILURE_MOSAIC_DIVISIBILITY_VIOLATED
    Can not divide mosaic
  • FAILURE_CONFLICTING_MOSAIC_CREATION
    Mosaic name is already in use
  • FAILURE_MOSAIC_INVALID_CREATION_FEE_SINK
    Mosaic rental fee paid out account invalid
  • FAILURE_MOSAIC_INVALID_CREATION_FEE
    Invalid fee required to create mosaic
  • FAILURE_TOO_MANY_MOSAIC_TRANSFERS
    Transaction contains many mosaics

response