For any software that needs to issue a license to use the program, or an Internet service with access to a closed section (forever, or by subscription: week, month, year ...), a payment system is needed to accept payments and issue licenses.
Reliability, openness and constant access from anywhere in the world are important.
EthLicense.org will allow you, with the help of the immutable Ethereum blockchain database to create licenses, distribute and verify them using a smart contract. The smart contract is an automatically executed algorithm on the side of the Ethereum blockchain, which provides the users with reliability and availability of data storage under licenses or subscriptions.
To program your own system of this kind for your service or software is a rather complicated process. It is easier to use a ready-made solution.
EthLicense.org stores all licenses in an encrypted form on the Ethereum blockchain, and at any time provides access to the verification of this data.
First you need to create a license. To do this, use the MetaMask online wallet (as it works with web3.js scripts from Ethereum).
On the page https://ethlicense.org/CreateLicense.php specify the cost of your license for consumers and make a payment from your wallet by clicking on the create license button.
Several issues are resolved here:
1. Your wallet number is determined and recorded on the blockchain, to which the smart contract will automatically transfer the funds of the sold licenses (subscriptions).
2. The amount of the license for consumers is determined.
After confirming the payment on the blockchain, you can determine your license number on the page https://ethlicense.org/ViewLicenses.php, indicating your address from which you have made the payment. You will be given all license numbers with amounts of money for consumers. You can create up to 100 different licenses for one Ethereum wallet.
Consequently, you can create licenses or subscriptions with different prices for different products.
Knowing the license number, you can send the user to the page https://ethlicense.org/SetLicense.php?lid=1 (where 1 is an example of your license number) to pay for the cost of the license, which is linked to the e-mail specified by him.
In fact, you can specify any string of information, but to make it clearer, we have chosen a string with e-mail, because each e-mail user is unique and sufficient to verify the license. When transferring data to the blockchain, information is encrypted and stored in an encrypted form, so it is impossible to pick up or crack a license or Ethereum blockchain. We do not store any of your data or user data on ethlicense.org.
A smart contract immediately makes a payment to your license wallet. No delays or opacity. Everything is carried out immediately and on the Ethereum blockchain (irrevocably). We do not store your money, but immediately transfer it to your wallet.
A smart contract cannot be changed or tampered with. It works as it has been stated above and cannot work differently. The ethlicense.org website is a convenient shell for preparing data and accessing the functions of a smart contract, but not the logic of work, and does not affect payments. Everything is made by a smart contract.
Once the Ethereum blockchain confirms the user's license payment, you can automatically (programmatically) check the user's data and open access to the program, its part or the Internet service.
The address for checking user status is located at:
where 1 is your license number, email@example.com is the user's e-mail.
An example response in JSON format:
When response has been confirmed, or
To verify your subscription, you must pass one more parameter: timestamp. It should be the shortest possible time limit to confirm your subscription. We save the current timestamp when a user receives a subscription when making a payment. If you specify a timestamp less than the time of its payment, then the subscription is confirmed, if the timestamp you specified is longer than the user's payment stamp, the subscription will not be confirmed.
For example, if your subscriptions are for 1 month, then the timestamp should correspond to the current time - (minus) 1 month. The smart contract will check and compare timestamps and give the result.
An example of specifying a timestamp in a request:
where 1590777044 is not the current timestamp but lagging behind the subscription time.
The answer will be in the same way (as indicated above): true or false, the subscription is still working, or the payment was made earlier, and the subscription is no longer valid, accordingly.
The service is provided as it is. We are not responsible for the consequences of using or not using the service, as well as errors made by users. When accepting payments to Ethereum, you must take into account the legal regulation of crypto currencies in your country. To support the system, fees are charged in the amount of the cost of the license when creating it, and 1% of the cost of each sold license or subscription.
199 Bishopsgate EC2M 3TY London, United Kingdom