By creating or modifying a few user data files, users can add nearly any CCMiner-compatible mining program to Hash Auger. Since the software will use CCMiner-style parameter and API calls when interfacing with this mining program, some variants of CCMiner that use non-standard parameters or API formats may not be fully compatible with this feature.

Adding a new miner requires changes to the useralgos.json and userminers.json files. However, if you prefer to have Hash Auger download the file from an external repository such as Github rather than download it yourself, an entry can also be added to the userpackages.json file. Additionally, if a miner adds a new algorithm to the software, any new coins based on that algorithm should be added to the usercoins.json file (refer to the Add a Coin page for details).

Since Hash Auger only reads the data files at startup, any changes to those files will require that the software be restarted in order to take effect.

1. Create an entry in userminers.json

The userminers.json file contains a list of JSON objects that define custom mining programs in the software. Each objects consists of the following data:

  • name: uniquely identifies the mining program.
  • algorithms: a list of algorithm names that the mining program supports. Each entry must correspond to an entry with the same name in either the algos.json or useralgos.json file.
  • aliases: a key-value pair that maps names of algorithms defined in Hash Auger to names used in the mining program's algorithm parameter. For example ("polytimos":"poly" for Z-Enemy).
  • ccminer: indicates that the mining program is compatible with the ccminer parameters and API. This must be true for all miners added to the software via the userminers.json file.
  • devfee: the mining program's developer fee percentage (if any)
  • diffmultiplier: indicates whether the miner supports the diffmultiplier parameter.
  • filename: the filename (without the path) of the executable.
  • intensity: whether the mining supports changing intensity via a command line parameter.
  • maxintensity: the highest intensity setting supported by the miner - only applicable if intensity is set to true.
  • redirect: true if the program's console output can be redirected to another output. If set to false, Hash Auger will open the miner processes in their own windows.
  • version: the mining program's version number.
//An example userminers.json to add the "PoolParty" x16r mining program

[
  {
    "name": "graemes",
    "algorithms": [ "x16r" ],
    "aliases": {},
    "ccminer": true,
    "devfee": "0.00",
    "diffmultiplier": true,
    "filename": "poolparty.exe",
    "intensity": true,
    "maxintensity": "24",
    "redirect": true,
    "version": "1.6.1"
  },
]

2. Modify useralgos.json

Algorithms are linked to mining programs in Hash Auger in both the miner and algorithm objects. Therefore, it is necessary to assign the new mining program to an algorithm in the useralgos.json file even if the algorithm is already supported by Hash Auger. It is important to make this change in the useralgos.json file instead of the static data file so that this association is not undone by a future update to the software's standard configuration files.

Each algorithm object consists of the following properties:

  • name: uniquely identifies the algorithm in the software. When possible, this should be the name that pools and mining programs will also use to identify the algorithm.
  • aliases: a list of strings that represent any aliases that may be used for the algorithm (ex: daggerhashimoto for ethash).
  • miners: the list of miner names that support this algorithm. These names must match the names used in the miners.json and userminers.json files. When adding an entry for an already supported algorithm to the usersalgos.json, it is only necessary to include the names of any miners defined in the userminers.json file. For algorithms not defined in algos.json, users must provide the names of any miners in either miners.json or userminers.json that support the algorithm.
//An example useralgos.json for the PoolParty miner

[
  {
    "name": "x16r",
    "aliases": [  ],
    "miners": [ "graemes" ]
  },
]

Note that in the example above, the entry in the miners list matches the name used for the miner in userminers.json file and that the names of miners defined in the miners.json file do not have to be specified.

3. Optionally modify userpackages.json

Adding an entry for the miner software to the userpackages.json file will cause Hash Auger to download it from a publicly accessible website on the user's behalf. Alternatively, users can manually install the miner to its own subdirectory in the Hash Auger Miners directory. The name of the miner directory should be identical to the name of the miner in the userminers.json file. One benefit of creating a package entry is that Hash Auger will automatically benchmark the miner after downloading it if the auto benchmark feature is enabled.

Package objects are defined with the following properties:

  • filename: the name of archive file that will be downloaded (do not specify the full URL here).
  • hosted: whether the file is hosted in the Hash Auger repository. This will be false for all user installed mining programs.
  • name: the name of the package should correspond with the name of the miner in userminers.json
  • type: use "Miner" for user installed miners
  • url: the url of the file archive
  • version: the version of the mining program being installed. This should match the version number in the userminers.json file.
//an example userpackages.json file for the PoolParty miner

[

  {
    "filename": "poolparty-win64-cuda92-1.6.1.zip",
    "hosted": "false",
    "name": "graemes",
    "type": "Miner",
    "url": "https://github.com/graemes/poolparty-x16r/releases/download/v1.6.1/poolparty-win64-cuda92-1.6.1.zip",
    "version": "1.6.1"
  },

]

Installing the Mining Program

If you choose to install the mining program manually, rather than have Hash Auger download it via the package method, it is important to note that the archive must be installed to a folder within the Hash Auger Miners folder. That folder must be named the same as the miner in the userminers.json file. For example, using the example in the code samples, the PoolParty archive would be extracted to Miners\graemes\ Manually installed miners will have to be benchmarked manually using the Benchmark Utility after the software is restarted to the load the new user data.