0.11.0 • Public • Published

Build Status Total Downloads Latest Stable Version Latest Unstable Version License

This package aims to provide with a command line interface helping developers to communicate with the NEM2 (Catapult) blockchain.

This package is currently still in development, please do not use in production.

The author of this package cannot be held responsible for any loss of money or any malintentioned usage forms of this package. Please use this package with caution.

Package licensed under Apache v2.0 License.

Protocol Compatibility

Donations / Pot de vin

Donations can be made with cryptocurrencies and will be used for running the project!

Bitcoin:   3EVqgUqYFRYbf9RjhyjBgKXcEwAQxhaf6o
Username Role
eVias Project Lead


  1. Clone the Project
git clone`
  1. Install the required dependencies.
cd symbol-sandbox
npm i
  1. Configure conf/accounts.json and conf/network.json
In `conf/accounts.json`

nemesis - using for transfer transaction or batch transaction to the recipient
testers - testers[0] : using as default account, perform  most of the type of transaction
        - testers[1] : using for convert multisig, secretlock, secretProofs, transferAlias,                transferMosaicUnsorted, cosign trasnfer multisig and transferWithFee
        - testers[2] : using for cosig converMultisig, cosig Multisig, account restriction allow operation
        - testers[3] : using cosig converMultisig, cosig Multisig, account restriction allow operation, account restriction block address
multisig - using for multisig account

In `conf/network.json`

endpointUrl - network API endpoint
generationHash - network generationHash, get from here `endpointUrl/block/1`
currencyMosaic - mosaic namespace such as "nem.xem"
harvestMosaic - harvest mosaic such as "nem.xem"
  1. Build
npm run build


Convert UInt64 array notation:

$ ./symbol-sandbox convert uint64 -i "[1, 1]"

Convert Public Key to address notation:

$ ./symbol-sandbox convert address
Enter a public key: 33F0E2685732AE9E202F92B2B93A525BF77C4C14BBA22D088926BA8A7FD0BE13

Transaction broadcaster examples:

$ ./symbol-sandbox transaction transfer
$ ./symbol-sandbox transaction hashlock
$ ./symbol-sandbox transaction aggregate
$ ./symbol-sandbox transaction mosaicDefinition
$ ./symbol-sandbox transaction mosaicSupply
$ ./symbol-sandbox transaction registerNamespace -n namespace
$ ./symbol-sandbox transaction mosaicAlias
$ ./symbol-sandbox transaction addressAlias

Aggregate Transaction Scenarios

  1. Create a new named mosaic on catapult network
  • Create a root namespace and necessary subnamespaces (RegisterNamespace)
  • Create a Mosaic with parameters from command line (MosaicDefinition)
  • Add supply to the created mosaic (MosaicSupplyChange)
  • Create a namespace alias for the created mosaic (MosaicAlias)
$ ./symbol-sandbox aggregate mosaicConfiguration -n -d 0 -s 1 -t 1 -i 1000
  1. Send batch transfers from CSV input
  • Read a CSV file with columns: address, amount, mosaic
  • Each row in the CSV will be added as one TransferTransaction
  • Wrap all transfers into one aggregate transaction
export CSV_FILE=`pwd`/files/test.csv
$ ./symbol-sandbox aggregate batchTransfer -f ${CSV_FILE}
  1. Create multiple levels of namespaces
$ ./symbol-sandbox aggregate multiLevelNamespace evias.levels.tests
$ ./symbol-sandbox aggregate multiLevelNamespace gregory.saive.handshakes


This software is released under the Apache v2.0 License.

© 2019-2020 Grégory Saive for NEM, All rights reserved.




Package Sidebar


npm i symbol-sandbox

Weekly Downloads






Unpacked Size

3.03 MB

Total Files


Last publish