Nervous Parrot Muttering


    3.0.1 • Public • Published


    nodejs json-rpc for Komodo and Smart Chains, with Promises and support for multiple instances

    • Supports on-the-fly RPC methods using Proxies; all the RPC methods supported by a daemon (including the Antara API) are available
    • Supports multiple instances (different daemons) in the same application
    • Works only in Nodejs; for the browser version, click here
    • Very small codebase
    • Uses axios behind the scenes


    1. require() the module; it imports a class
    2. launch a new instance of the class with a config object as the argument; the config object can contain the credentials directly or one of the following other ways to access them
      • datadir Ex: { datadir: "/home/username/.komodo/LABS" }
      • name Ex: { name: "Rick" }
      • conffile Ex: { conffile: "/home/username/.komodo/MORTY/MORTY.conf" }
    3. call .config with the new instance object to access its config
    4. call .rpc() with the new instance object to access the RPC interface


    Passing the credentials directly

    const SmartChain = require("node-komodo-rpc");
    const config = {
      rpchost: "localhost",
      rpcport: 7771,
      rpcuser: "user316977",
      rpcpassword: "pass47aac855ee750dab0128962d29e85920cbb8ad730d0e0307"
    const komodo = new SmartChain({ config });
    console.log(komodo.config); // Prints the config being used by the komodo instance
    const komodoRPC = komodo.rpc();
      .then(info => {
      .catch(error => {
        throw new Error(error);
      .listunspent(6, 9999999, [
      .then(outs => {
      .catch(error => console.log(error));

    Passing the data directory's path

    const rick = new SmartChain({
      datadir: "/home/username/.komodo/RICK"

    Passing the Name

    const labs = new SmartChain({
      name: "labs"

    Passing the Conf file's path

    const morty = new SmartChain({
      conffile: "/home/username/.komodo/MORTY/MORTY.conf"

    When no argument is passed, it is equivalent to passing the argument {name: "komodo"}

    const komodo = new SmartChain();

    To print the config being used by the LABS instance



      "NAME": "labs",
      "HOSTNAME": "localhost",
      "PORT": "40265",
      "USERNAME": "user45765873",
      "PASSWORD": "passa8eb6941a2e7f4059d9726126d8989428f54748b94cd775",
      "DATADIR": "/home/<username>/.komodo/LABS/",
      "CONFFILE": "/home/<username>/.komodo/LABS/LABS.conf"

    Descriptions of the properties

    • NAME is the name of the Blockchain; more accurately, it is the name of the conf file
    • HOSTNAME the address at which the RPC server (blockchain daemon) is listening for connections
    • PORT is the port at which the RPC server (blockchain daemon) is listening for connections
    • USERNAME is the username allowed to send RPC requests to the blockchain daemon
    • PASSWORD is the password to authenticate the RPC requests to the blockchain daemon
    • DATADIR is the data directory being used by the blockchain daemon; more accurately, this is the directory containing the conf file
    • CONFFILE is the file containing the configuration settings of the blockchain daemon


    If the config object is missing the keys: rpchost or rpcport, the default values used are localhost and 7771 respectively. When the config object is passed, NAME, DATADIR and CONFFILE are set to be undefined


    npm i node-komodo-rpc

    DownloadsWeekly Downloads






    Unpacked Size

    11.9 kB

    Total Files


    Last publish


    • gcharang