Nearly any Yiimp-based pool can be added to Hash Auger by creating a new entry in the userpools.json file. Like all the user data files, this file contains a list of json objects that are merged with the software's pre-defined pools during application startup. Unlike the pools.json file found in the Static Data directory, the userpools.json file in the User Data file is not modified during software updates - preventing changes to the predefined lists from overwriting any user data.

It should be noted that current versions of Hash Auger use the BTC price data provided by the pool's API for algorithm switching. If the pool's API does not provide that data, users will have to manually select the pool and algorithm using the GPU Coin drop-down lists on the Mine tab. Also, in order to mine specific coins on pools that do not auto-exchange to BTC, users must first assign the appropriate wallet(s) to the pool using the pool settings. Users should also verify that the coin's port number in the pool's Coins tab is correct as not all pools provide distinct port numbers in their APIs.

The pool configuration is defined using a JSON object with the following attributes:

  • name: uniquely identifies the pool within the Hash Auger software.
  • algoaliases: a dictionary of algorithm names and aliases the pool uses. The key should be the name of the algorithm as it is defined in algos.json (or useralgos.json) and the value the name the pool uses instead. Refer to the NiceHash entry in the pools.json file for an example.
  • allowactualprices: set to true if the actual price basis can be used for the pool. This requires the pool to return actual price data in its API.
  • allowedcoins: reserved. Set to an empty list.
  • allowmcparameter: set to true if the pool recognizes the Yiimp MC password parameter.
  • allownoautoswitch: set to true to allow users to disable use of the pool's auto-switch ports. Normally used in conjunction with the MC parameter.
  • allowwallettypes: if the pool recognizes different categories of wallets, set to true to have the software display the list of wallets defined in the wallettypes property. This is normally set to false for Yiimp pools.
  • api: set to 0 for pools that are compatible with the Yiimp API.
  • apiaddress: the base url of the pool's api server.(ex: "http://mypool.com/api/")
  • coininpword: set to true if the pool recognizes the c= password parameter. Usually true for Yiimp pools.
  • convertexception: set to true for Yiimp pools.
  • dedicatedports: set to true if the pool uses a separate port number for each coin. This is usually used with pools that do not auto-exchange, so the filteredrates property is normally also set to true for these pools.
  • defaultunit: the default hash rate unit that the pool returns results. (Ex: MHs or GHs)
  • exchangefee: any exchange fee that the pool might charge in addition to the fees returned by its API data. This is normally 0 for Yiimp pools.
  • filteredrates: set to true for pools that do not auto-exchange to BTC. When enabled, this setting will filter the list of coins that can be mined on the pool based on the wallets that have been assigned to the pool in the software. Should be used with the nobtc property.
  • ignoremhfactor: most Yiimp pools return a mbtc_mh_factor in their API data that Hash Auger will use to calculate how each algorithm or coin is priced. Set this to true to ignore that data in the API and have the software use the list of unit price exceptions defined in the unitexceptions dictionary instead.
  • mcexceptions: defines a list of coin name exceptions to use with the MC parameter. These exceptions can be defined when the pool uses a non-standard name for a coin. Only applicable when the pool supports that parameter and the allowmcparameter property is set to true.
  • noautoexchange: defines a list of coins that cannot be auto-exchanged by the pool. Typically not used with Yiimp pools.
  • nobtc: set to true for pools that do not payout in BTC (pools that do not auto-exchange). Usually both nobtc and filteredrates are set to true for the same Yiimp pools.
  • regions: if the pool has multiple server locations, this list defines the name and url portion of each server location. When set to true, a "<region>" placeholder should be defined in the server format string. The software will replace the "<region"> placeholder with the value of the entry the user selected from the region list. The key of each entry is displayed as the text in the region list. Refer to the Nicehash entry in the pools.json file for an example. The useregion property must be set to true when multiple regions are available.
  • requirewallet: indicates that a wallet address is to be used to identify the user instead of a username. Generally true for Yiimp pools.
  • serverformat: a dictionary of stratum server urls to use with the pool. Most Yiimp pools have a single url format that applies to all algorithms on that pool. Therefore, use a key value of "all" with the server format string as the value. The following placeholders can be defined and will be replaced by the appropriate values in the software:
    • <algo>: a placeholder for the algorithm name (ex: <algo>.mypool.com)
    • <port>: is replaced by the port number provided by the pool's API (ex: mypool.com:<port>)
    • <region>: if a region list has been defined, this placeholder identifies the region portion of the host address. (ex: <region>.mypool.com).
    • multiple place holders can be defined in the same server format: <region>.mypool.com:<port> or <algo>.mypool.com:<port>. Refer to the pools.json file for examples.
  • unitexceptions: a list of algorithms that are not priced in the same hash rate unit as set in the defaultunit property. This list is only used when the pool's API does not return a mbtc_mh_factor or the ignoremhfactor property is set to true.
  • url: the url to pool's website.
  • useapikey: set to true if the pool requires an API key in order to use its API. Normally false for Yiimp pools.
  • useregion: set to true if the pool has more than one server location. When enabled, the regions property should also be used to define the list of possible regions and the <region> placeholder should be included in the serverformat property.
  • walletasuser: used in conjunction with the requirewallet property to indicate that the wallet is used instead of a user name to identify the miner. This should be true for most, if not all, Yiimp pools.
  • wallettypes: if the allowwallettypes property is true, this property defines the list of possible wallet categories that the user can select in the pool configuration. This is normally not used with Yiimp pools.

Example entry for a Yiimp pool that does not auto-exchange:

[

{
    "name": "blockify",
    "algoaliases": {},
    "allowactualprices": "true",
    "allowedcoins": [],
    "allowmcparameter": "false",
    "allownoautoswitch": "false",
    "allowwallettypes": "false",
    "api": "0",
    "apiaddress": "http://blockify.xyz/api/",
    "coininpword": "true",
    "convertexception": "true",
    "dedicatedports": "true",
    "defaultunit": "MHs",
    "exchangefee": "0",
    "filteredrates": "true",
    "ignoremhfactor": "false",
    "mcexceptions": {},
    "noautoexchange": [],
    "nobtc": "true",
    "regions": {},
    "requirewallet": "true",
    "serverformat": { "all": "stratum+tcp://blockify.xyz:<port>" },
    "unitexceptions": {
      "blake": "GHs",
      "blake2s": "GHs",
      "sha256": "GHs",
      "yescrypt": "kHs",
      "yescryptr16": "kHs"
    },
    "url": "http://www.blockify.xyz/",
    "useapikey": "false",
    "useregion": "false",
    "walletasuser": "true",
    "wallettypes": []
  }

]

As with all user data files, the Hash Auger software must be restarted to reflect any changes to the userpools.json file.