InstallAware for Windows Installer
 

ETH Transaction

This plug-in provided command either performs an Ethereum cryptocurrency payment at installation time, or validates a past payment that had been performed on the blockchain; enabling validations for reinstallations.

New Transactions

A first time payment involves a transaction between the buyer (your end-user), the seller (you as the developer and publisher), and the service provider (InstallAware).

The service provider earns a commission as part of the transaction (2%).

Gas fees (costs miners charge to record your transaction on the blockchain) are automatically calculated and passed on to the buyer. The buyer must have sufficient funds to cover gas for the transaction to succeed.

The seller receives all remaining funds, minus the commission.

Querying Past Transactions

A past payment validation queries the blockchain whether the buyer had purchased the seller product at any point in the past from the PC they are currently using.

Solidity

All transactions and queries are facilitated with a dedicated Smart Contract, which records all details of your transactions on the blockchain.

Gateway URL to Blockchain: (Mainnet or testing)

Supply the full network address to the node to connect to.

Instead of running and connecting to your own node, you may connect to a third party service provider; some examples of which as of this writing are metamask.io or infura.io. Please note that any third party services are subject to the terms of their providers.

The Smart Contract powering the transaction is available on the Ethereum Mainnet and the Ropsten Testnet, subsequently this plug-in provided command supports only on those nets.

For example, to connect to the Ropsten Testnet, you may enter https://ropsten.infura.io/v3/cd00f53c1bf946c7bd2069e3a22a0501 in this field. This testnet makes it easy for you to validate your implementation and workflow without having to spend actual money, since it offers faucets delivering free testing cryptocurrency.

Unique Product ID: (GUID recommended)

Type in your unique product identifier in this field. To ensure uniqueness, you may generate a GUID manually, or by clicking the ... button.

The buyer's transaction will be recorded for this product only.

If you do not enter a unique ID in this field or leave it blank, your software would be reinstalled without limit on any number of PCs where other ill-defined products have been purchased before.

Unique System ID: (reinstallation allowed on match)

Enter a unique identifier for the PC the setup is running on.

For new purchases, this value will be recorded in the blockchain. For reactivations of past purchases, this value will be compared against purchases by the buyer for the product identifier as specified above in the Unique Product ID field. If there is a match, a past purchase was made by the buyer on the same PC.

To generate this ID, you may use the Generate GUID command, the Generate System ID command, or the Get System Settings command with the pseudo unique machine identifier parameter. Using a new GUID for each installation effectively makes it impossible to reactivate the product during reinstallations, and would require a new purchase each time. Using a pseudo-unique machine identifier would not prevent fraudulent reinstallations on additional PCs that have been cloned from the buyer's PC where the original purchase was made.

If you do not enter a unique identifier in this field or leave it blank, your software would be reinstalled without limit on any number of PCs, once it has been purchased once by any one buyer.

Cost: (in Wei)

Specify a fixed cost directly in the ETH cryptocurrency, as a whole integer, in the smallest unit of Ethereum called a Wei. No decimal points or thousand separators are allowed.

One unit of Ethereum makes 1000000000000000000 Wei. As of this writing, online conversion between Ethereum and Wei is available at https://eth-converter.com/extended-converter.html.

Public Key: (seller)

Type in your public key in this field. This identifies the wallet where the funds would be sent to.

Private Key: (buyer, for making a new purchase)

To make a new purchase, enter the name of the variable that holds the private key of the buyer in this field.

If specified, this variable must have been previously defined in the setup script using the Set Variable command.

To ensure the privacy of your buyer, this plug-in command will wipe the value of this variable immediately after execution.

To validate a past purchase, this variable must be blank, or the field may be empty.

Public Key: (buyer, for looking up a past purchase)

To validate a past purchase, enter the name of the variable that holds the public key of the buyer in this field.

If specified, this variable must have been previously defined in the setup script using the Set Variable command.

To make a new purchase, this variable must be blank, or the field may be empty.

If both this field and the Private Key field above have been specified, a lookup will be performed as if the private key had not been specified.

Return result in variable:

Enter the name of the variable to receive the result of the transaction. Not providing a variable in this field renders this command practically useless.

If specified, this variable must have been previously defined in the setup script using the Set Variable command.

The variable will hold TRUE if the purchase or lookup was successful, and FALSE otherwise.