=== EthereumICO ===
Contributors: ethereumicoio, freemius
Tags: ethereum, erc20, ICO, initial coin offering, cryptocurrency
Requires at least: 3.7
Tested up to: 6.7.1
Stable tag: 2.4.7
Donate link: https://etherscan.io/address/0x476Bb28Bc6D0e9De04dB5E19912C392F9a76535d
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Requires PHP: 5.6

Sell your Ethereum ERC20 ICO tokens from your WordPress site. BSC BEP20 and Polygon (MATIC) tokens also supported.

== Description ==

Ethereum WordPress ICO [MetaMask](https://ethereumico.io/knowledge-base/metamask-wallet-install-and-use/) Crowdsale plugin can be used to sell your Ethereum ERC20 or Binance Smart Chain BEP20 ICO tokens from your WordPress site. It is the only available WP plugin to sell your Ethereum ERC20 or Binance Smart Chain BEP20 ICO tokens directly from your WordPress site.

> It is the best WP plugin available to sell your Ethereum ERC20 ICO tokens directly from your WordPress site.

https://youtu.be/hx8f-MLBQf0

Any EVM compatible blockchain like [Binance Smart Chain (BSC)](https://ethereumico.io/knowledge-base/binance-smart-chain-config-ethereum-wordpress-ico-plugin/) or Polygon (MATIC) can be used.

== Live Demo ==

See the official site for a Live Demo: [https://ethereumico.io/](https://ethereumico.io/knowledge-base/ico-demo-ethereum-ico-wordpress-plugin/ "The EthereumICO Wordpress plugin")

> The Wordpress ICO MetaMask plugin can accept Ether only. You can accept fiat money like USD or EUR or cryptocurrencies like Bitcoin for your ICO tokens with the [Cryptocurrency Product for WooCommerce](https://ethereumico.io/product/cryptocurrency-wordpress-plugin/) plugin.

== Shortcodes ==

= Ethereum ICO Widget =

To show the full Ethereum ICO widget at once, insert the `[ethereum-ico]` shortcode wherever you like.

The basic example:
`
[ethereum-ico]
`

The full customized example:
`
[ethereum-ico buybuttontext="BUY ME!" minimum="0.1 step="0.1" maximum="100" placeholder="Enter Ether amount here" gaslimit="200000" tokenname="TSX" description="Buy this very useful token and help save the Earth!" coinList="ETH,BTC"]
`

Attributes:

* `buybuttontext` Add the `buybuttontext="BUY ME!"` attribute to change the buy button text shown.
* `minimum` Add the `minimum="0.1"` attribute to limit the minimum amount of ETH/BNB/MATIC accepted to `0.1`
* `step` Add the `step="0.1"` attribute to limit the amount change step of ETH/BNB/MATIC accepted to `0.1`. It is recommended to be set to the same value as the `minimum` attribute for better user experience.
* `maximum` Add the `maximum="100"` attribute to limit the maximum amount of ETH/BNB/MATIC accepted to `100`. It can be useful to workaround legal issues in some countries. The [PRO version](https://ethereumico.io/product/wordpress-ethereum-ico-plugin/ "The Ethereum ICO Professional plugin") is required for this feature to work. [Free 7 days Trial](https://checkout.freemius.com/mode/dialog/plugin/4553/plan/7330/?trial=paid "The Ethereum ICO Professional plugin") is available.
* `placeholder` Add the `placeholder="Enter Ether amount here"` attribute to change the helper string displayed in the Ether input field for your customer to know where to input Ether amount to buy your tokens.
* `gaslimit` Use `gaslimit="200000"` attribute to manually set the Gas Limit value used in the transaction composed. This value is also shown for user in the widget UI.
* `tokenname` Add the `tokenname="TSX"` attribute to set the token name shown. This value will overwrite the same setting entered on the plugin settings page.
* `description` Add the `description="Buy this very useful token and help save the Earth!"` attribute to set the value for the description section shown. This value will overwrite the same setting entered on the plugin settings page.
* `coinList` Add the `coinList="ETH,BTC"` attribute to specify a list of coins to display with values calculated from the amount entered. This value will overwrite the same setting entered on the plugin settings page.

= Gas Limit Widget =

You also can use the fine grained `[ethereum-ico-limit]` shortcode for easier customization. The styled Gas Limit string with a corresponding limit value will be shown as a result. 

The basic example:
`
[ethereum-ico-limit]
`

The full customized example:
`
[ethereum-ico-limit label="%s LIMIT!" gaslimit="200001"]
`

Attributes:

* `label` Add the `label="%s LIMIT!"` attribute to change the Gas Limit text shown.
* `gaslimit` Use `gaslimit="200000"` attribute to manually set the Gas Limit value used in the transaction composed. This value is also shown for user in the widget UI.

= Input Widget =

You also can use the fine grained `[ethereum-ico-input]` shortcode for easier customization. The input amount field will be shown.

The basic example:
`
[ethereum-ico-input]
`

The full customized example:
`
[ethereum-ico-input minimum="0.1 step="0.1" maximum="100" placeholder="Enter Ether amount here" gaslimit="200000"]
`

Attributes:

* `minimum` Add the `minimum="0.1"` attribute to limit the minimum amount of ETH/BNB/MATIC accepted to `0.1`
* `step` Add the `step="0.1"` attribute to limit the amount change step of ETH/BNB/MATIC accepted to `0.1`. It is recommended to be set to the same value as the `minimum` attribute for better user experience.
* `maximum` Add the `maximum="100"` attribute to limit the maximum amount of ETH/BNB/MATIC accepted to `100`. It can be useful to workaround legal issues in some countries. The [PRO version](https://ethereumico.io/product/wordpress-ethereum-ico-plugin/ "The Ethereum ICO Professional plugin") is required for this feature to work. [Free 7 days Trial](https://checkout.freemius.com/mode/dialog/plugin/4553/plan/7330/?trial=paid "The Ethereum ICO Professional plugin") is available.
* `placeholder` Add the `placeholder="Enter Ether amount here"` attribute to change the helper string displayed in the Ether input field for your customer to know where to input Ether amount to buy your tokens.

= Input Currency Widget =

You also can use the fine grained `[ethereum-ico-input-currency]` shortcode for easier customization. Only the input currency will be shown with this shortcode.

The basic example:
`
[ethereum-ico-input-currency]
`

The full customized example:
`
[ethereum-ico-input-currency showIcons="true" baseCurrency="USD"]
`

Attributes:

* `showIcons` Add the `showIcons="true"` attribute to turn on the coin icons display mode. This value will overwrite the same setting entered on the plugin settings page.
* `baseCurrency` Use `baseCurrency="USD"` attribute to switch the input mode from ETH/BNB/MATIC to fiat amount input in USD. This value will overwrite the same setting entered on the plugin settings page.

= Buy Button Widget =

You also can use the fine grained `[ethereum-ico-buy-button]` shortcode for easier customization. Only the Buy button will be shown with this shortcode.

The basic example:
`
[ethereum-ico-buy-button]
`

The full customized example:
`
[ethereum-ico-buy-button buyButtonText="BUY ME!" tokenname="TSX"]
`

Attributes:

* `buybuttontext` Add the `buybuttontext="BUY ME!"` attribute to change the buy button text shown.
* `tokenname` Add the `tokenname="TSX"` attribute to set the token name shown. This value will overwrite the same setting entered on the plugin settings page.

= Coin List Widget =

You also can use the fine grained `[ethereum-ico-currency-list]` shortcode for easier customization. Only the list of coins with values calculated from the amount entered will be shown with this shortcode.

The basic example:
`
[ethereum-ico-currency-list]
`

The full customized example:
`
[ethereum-ico-currency-list showIcons="false"  coinList="ETH,BTC"]
`

Attributes:

* `showIcons` Add the `showIcons="true"` attribute to turn on the coin icons display mode. This value will overwrite the same setting entered on the plugin settings page.
* `coinList` Add the `coinList="ETH,BTC"` attribute to specify a list of coins to display with values calculated from the amount entered. This value will overwrite the same setting entered on the plugin settings page.

= Progress Bar Widget =

To show an ICO progress bar widget insert a simple `[ethereum-ico-progress]` shortcode wherever you like.

The basic example:
`
[ethereum-ico-progress]
`

The full customized example:
`
[ethereum-ico-progress crowdsale="0x773F803b0393DFb7dc77e3f7a012B79CCd8A8aB9" softcap="100" hardcap="1000"]
`

Attributes:

* `crowdsale` Add the `crowdsale="0x773F803b0393DFb7dc77e3f7a012B79CCd8A8aB9"` attribute to specify your crowdsale contract address. This value will overwrite the same setting entered on the plugin settings page.
* `softcap` Add the `softcap="100"` attribute to specify soft cap value for your ICO. This value will overwrite the same setting entered on the plugin settings page.
* `hardcap` Add the `hardcap="1000"` attribute to specify hard cap value for your ICO. This value will overwrite the same setting entered on the plugin settings page.

Features:

* This feature uses the [blockcypher.com](https://blockcypher.com) `API`
* You can use any of the [persistent cache WP plugins](https://codex.wordpress.org/Class_Reference/WP_Object_Cache#Persistent_Cache_Plugins "The persistent cache WP plugins") to overcome its rate limits. The [PRO version](https://ethereumico.io/product/wordpress-ethereum-ico-plugin/ "The Ethereum ICO Professional plugin") is required for this feature to work. [Free 7 days Trial](https://checkout.freemius.com/mode/dialog/plugin/4553/plan/7330/?trial=paid "The Ethereum ICO Professional plugin") is available.

= Progress Value Widget =

To show an ICO progress value widget insert a simple `[ethereum-ico-progress-value]` shortcode wherever you like.

The basic example:
`
[ethereum-ico-progress-value]
`

The full customized example:
`
[ethereum-ico-progress-value crowdsale="0x773F803b0393DFb7dc77e3f7a012B79CCd8A8aB9"]
`

Attributes:

* `crowdsale` Add the `crowdsale="0x773F803b0393DFb7dc77e3f7a012B79CCd8A8aB9"` attribute to specify your crowdsale contract address. This value will overwrite the same setting entered on the plugin settings page.

Features:

* This feature uses the [blockcypher.com](https://blockcypher.com) `API`
* You can use any of the [persistent cache WP plugins](https://codex.wordpress.org/Class_Reference/WP_Object_Cache#Persistent_Cache_Plugins "The persistent cache WP plugins") to overcome its rate limits. The [PRO version](https://ethereumico.io/product/wordpress-ethereum-ico-plugin/ "The Ethereum ICO Professional plugin") is required for this feature to work. [Free 7 days Trial](https://checkout.freemius.com/mode/dialog/plugin/4553/plan/7330/?trial=paid "The Ethereum ICO Professional plugin") is available.

= Progress Percent Widget =

To show an ICO progress percent widget insert a simple `[ethereum-ico-progress-percent]` shortcode wherever you like.

The basic example:
`
[ethereum-ico-progress-percent]
`

The full customized example:
`
[ethereum-ico-progress-percent crowdsale="0x773F803b0393DFb7dc77e3f7a012B79CCd8A8aB9" hardcap="1000"]
`

Attributes:

* `crowdsale` Add the `crowdsale="0x773F803b0393DFb7dc77e3f7a012B79CCd8A8aB9"` attribute to specify your crowdsale contract address. This value will overwrite the same setting entered on the plugin settings page.
* `hardcap` Add the `hardcap="1000"` attribute to specify hard cap value for your ICO. This value will overwrite the same setting entered on the plugin settings page.

Features:

* This feature uses the [blockcypher.com](https://blockcypher.com) `API`
* You can use any of the [persistent cache WP plugins](https://codex.wordpress.org/Class_Reference/WP_Object_Cache#Persistent_Cache_Plugins "The persistent cache WP plugins") to overcome its rate limits. The [PRO version](https://ethereumico.io/product/wordpress-ethereum-ico-plugin/ "The Ethereum ICO Professional plugin") is required for this feature to work. [Free 7 days Trial](https://checkout.freemius.com/mode/dialog/plugin/4553/plan/7330/?trial=paid "The Ethereum ICO Professional plugin") is available.

= Token Balance Widget =

To show the user's already purchased token balance, insert the `[ethereum-ico-balance]` shortcode wherever you like.

The basic example:
`
[ethereum-ico-balance]
`

The full customized example:
`
[ethereum-ico-balance tokenname="TSX" label="Token balance" placeholder="Input your BSC account address"]
`

Attributes:

* `tokenname` Add the `tokenname="TSX"` attribute to set the token name shown. This value will overwrite the same setting entered on the plugin settings page.
* `label` Add the `label="Token balance"` attribute to change the Balance label text shown.
* `placeholder` Add the `placeholder="Input your BSC account address"` attribute to change the helper string displayed in the Ethereum address input field for your customer to know where to input their Ethereum address. It can be helpful if no MetaMask or other web3 browser is installed.

= Purchases Widget =

To display a table of recent token purchases by anyone, or by the current user, insert the `[ethereum-ico-purchases]` shortcode wherever you like.

> In the last case if MetaMask is not installed or account is not unlocked, an input field is provided for user account address.

The basic example:
`
[ethereum-ico-purchases]
`

The full customized example:
`
[ethereum-ico-purchases tokenname="TSX" label="Token purchases" placeholder="Input your BSC account address"]
`

Attributes:

* `tokenname` Add the `tokenname="TSX"` attribute to set the token name shown. This value will overwrite the same setting entered on the plugin settings page.
* `label` Add the `label="Token purchases"` attribute to change the Balance label text shown.
* `placeholder` Add the `placeholder="Input your BSC account address"` attribute to change the helper string displayed in the Ethereum address input field for your customer to know where to input their Ethereum address. It can be helpful if no MetaMask or other web3 browser is installed.

= Affiliates Widget =

To display a referral address field, insert the `[ethereum-ico-referral]` shortcode wherever you like. User can copy it and send to friends. If they buy tokens while opened this referral link, your `Crowdsale` contract would get a referral address in the `Data` field. Your `Crowdsale` contract should be able to work with it.

> If the MetaMask is not installed or account is not unlocked, an input field is provided for user account address.

The basic example:
`
[ethereum-ico-referral]
`

The full customized example:
`
[ethereum-ico-referral url="https://example.com/crowdsale-ico-page" label="Referal link" placeholder="Input your BSC account address"]
`

Attributes:

* `url` Add the `url="https://example.com/crowdsale-ico-page"` attribute to specify a particular page to refer to. The current page URL is used if this attribute not specified.
* `label` Add the `label="Referal link"` attribute to change the Referal link label text shown.
* `placeholder` Add the `placeholder="Input your BSC account address"` attribute to change the helper string displayed in the Ethereum address input field for your customer to know where to input their Ethereum address. It can be helpful if no MetaMask or other web3 browser is installed.

Features:

* The shortcode's default argument name produced in a link is `icoreferral`, like in this example - `https://ethereumico.io?icoreferral=0x476Bb28Bc6D0e9De04dB5E19912C392F9a76535d`, but it can be renamed with the [Referral argument name](https://ethereumico.io/knowledge-base/ethereum-ico-wordpress-plugin-configuration/#s131) setting. The [PRO version](https://ethereumico.io/product/wordpress-ethereum-ico-plugin/ "The Ethereum ICO Professional plugin") is required for this feature to work. [Free 7 days Trial](https://checkout.freemius.com/mode/dialog/plugin/4553/plan/7330/?trial=paid "The Ethereum ICO Professional plugin") is available.

> Note: The [Transaction data](https://ethereumico.io/knowledge-base/ethereum-ico-wordpress-plugin-configuration/#s12) to send to your crowdsale contract setting will be replaced by the referral address if specified in an URL.

You can use this `solidity` code snippets as a base for your referral/affiliate system implementation.

Put this code to your `payable` token buy function:

`
if(msg.data.length == 20) {
  address referer = bytesToAddress(bytes(msg.data));
  // self-referrer check
  require(referer != address(0x0), "zero-referrer");
  require(referer != msg.sender, "self-referrer");
  // 2% affiliation reward
  uint refererTokens = tokens.mul(2).div(100);
  // bonus for referrer
  token.transfer(referer, refererTokens);
}
`

The `bytesToAddress` function:

`
function bytesToAddress(bytes source) internal pure returns(address) {
  uint result;
  uint mul = 1;
  for(uint i; i < 20; i++) {
      result = result.add(mul.mul(uint8(source[19-i])));
      mul = mul.mul(256);
  }
  return address(result);
}
`

> You can use the [Crowdsale Contract and ERC20 Token Development Service](https://ethereumico.io/product/crowdsale-contract-development/) to let us do this job for you.

== Airdrop ==

> Airdrop is a free tokens distribution to promote your project.

This plugin can be used to implement a user initiated airdrop. It means that user can request some amount of your tokens for free. Good for you, the user will be responsible for the airdrop transaction [gas fees](https://ethereum.org/en/developers/docs/gas/).

To configure this plugin for airdrop, just set the [minimum allowed](https://ethereumico.io/knowledge-base/ethereum-ico-wordpress-plugin-configuration/#s8) setting to zero and the [Crowdsale address](https://ethereumico.io/knowledge-base/ethereum-ico-wordpress-plugin-configuration/#s21) to your airdrop contract. Note that your airdrop contract should be able to accept zero payments and send some tokens in return.

The [Transaction data](https://ethereumico.io/knowledge-base/ethereum-ico-wordpress-plugin-configuration/#s12) setting can be used to call some specific function of your Airdrop contract.

The [Online ABI Encoding Service](https://abi.hashex.org/) and [Ethereum Signature Database](https://www.4byte.directory/) can be useful when calculating the right value for the [Transaction data](https://ethereumico.io/knowledge-base/ethereum-ico-wordpress-plugin-configuration/#s12) setting.

For example, the simple `buy()` function will have this signature: `0xa6f2ae3a`.

== Bounty ==

Time based bounty schedule can be used.

The [ICO start date](https://ethereumico.io/knowledge-base/ethereum-ico-wordpress-plugin-configuration/#s25) and [Bounty](https://ethereumico.io/knowledge-base/ethereum-ico-wordpress-plugin-configuration/#s13) settings are used to configure this functionality.

The [JSON](https://www.json.org/json-en.html) array of your bounty values can be specified in the [Bounty](https://ethereumico.io/knowledge-base/ethereum-ico-wordpress-plugin-configuration/#s13) setting. 

Example: 

`
[[7, 40], [7, 30], [7, 20], [7, 10], [7, 5]]
`

The `7` number is for days count for the corresponding bounty period. Bounty periods are calculated from the [ICO start date](https://ethereumico.io/knowledge-base/ethereum-ico-wordpress-plugin-configuration/#s25) setting.

The `40`, `30`, `20`, `10`, `5` are percents of additional tokens to be sent to buyer for free.

> Your Crowdsale contract should be able to work with it. You can use the [Crowdsale Contract and ERC20 Token Development Service](https://ethereumico.io/product/crowdsale-contract-development/) to let us do this job for you.

== Transaction data ==

The [Transaction data](https://ethereumico.io/knowledge-base/ethereum-ico-wordpress-plugin-configuration/#s12) setting to send to your crowdsale contract is supported

> The [PRO version](https://ethereumico.io/product/wordpress-ethereum-ico-plugin/ "The Ethereum ICO Professional plugin") is required for this feature. [Free 7 days Trial](https://checkout.freemius.com/mode/dialog/plugin/4553/plan/7330/?trial=paid "The Ethereum ICO Professional plugin") is available.

It is an advanced feature. It can be required if your Crowdsale contract can not just accept Ether by send, but need some `payable` method to be called. Do not use if unsure.

The [Online ABI Encoding Service](https://abi.hashex.org/) and [Ethereum Signature Database](https://www.4byte.directory/) can be useful when calculating the right value for the [Transaction data](https://ethereumico.io/knowledge-base/ethereum-ico-wordpress-plugin-configuration/#s12) setting.

For example, the simple `buy()` function will have this signature: `0xa6f2ae3a`.

== Cache ==

You can use any of the [persistent cache WP plugins](https://codex.wordpress.org/Class_Reference/WP_Object_Cache#Persistent_Cache_Plugins "The persistent cache WP plugins") to overcome the etherscan.io and openexchangerates.org API rate limits. We use the cache to limit the API calling rate to a reasonable value

> The [PRO version](https://ethereumico.io/product/wordpress-ethereum-ico-plugin/ "The Ethereum ICO Professional plugin") is required for this feature. [Free 7 days Trial](https://checkout.freemius.com/mode/dialog/plugin/4553/plan/7330/?trial=paid "The Ethereum ICO Professional plugin") is available.

Test if caching is enabled. It is important to overcome API rate limits in production.

Refresh your site page twice and check the HTML source produced for `LOG:` records.

For non-PRO plugin version and for PRO version with Cache plugin not configured properly they would looks like this:

`
LOG: etherscan.io rate_data API is called
LOG: etherscan.io rate_data API call result is stored
LOG: openexchangerates.org API is called
LOG: openexchangerates.org API call result is saved
LOG: etherscan.io total_received API is called
LOG: etherscan.io total_received API call result is stored
`

> Note: make sure to enable the `Object Cache` in the `W3 Total Cache` if you use it.

For [PRO](https://ethereumico.io/product/ethereum-ico-wordpress-plugin/) plugin version with `Cache` properly configured you should see no `LOG:` records most of the time.

See the [ICO Launch: Wordpress Cache Plugin](https://ethereumico.io/knowledge-base/ico-launch-wordpress-cache-plugin/) guide to configure the caching plugin.

== ICO Fiat Money ==

The Ethereum ICO WordPress Plugin can be configured to display fiat currency like USD instead of the default ETH, BNB or MATIC. In this mode user still pay with Ether using MetaMask, but all sums are displayed in the currency chosen for user convenience.

> The [PRO version](https://ethereumico.io/product/wordpress-ethereum-ico-plugin/ "The Ethereum ICO Professional plugin") is required for this feature. [Free 7 days Trial](https://checkout.freemius.com/mode/dialog/plugin/4553/plan/7330/?trial=paid "The Ethereum ICO Professional plugin") is available.

Note that this is useful only if you have implemented something like the `oraclize.it` interface in your Crowdsale smart contract. Also, make sure to configure the [openexchangerates.org App Id](https://ethereumico.io/knowledge-base/ethereum-ico-wordpress-plugin-configuration/#s17) setting if non-USD fiat currency is used here.

> You can use the [Crowdsale Contract and ERC20 Token Development Service](https://ethereumico.io/product/crowdsale-contract-development/) to let us do this job for you.

First of all, look for the [Base currency](https://ethereumico.io/knowledge-base/ethereum-ico-wordpress-plugin-configuration/#s4) and [Base symbol](https://ethereumico.io/knowledge-base/ethereum-ico-wordpress-plugin-configuration/#s5) settings. By default they are configured for Ether, but you always can configure it for any other currency, including fiat currencies, e.g. `USD`.

Make sure to adjust values of these fields, since they are currency dependent:

* [Increase/Decrease step](https://ethereumico.io/knowledge-base/ethereum-ico-wordpress-plugin-configuration/#s7),
* [Min allowed value](https://ethereumico.io/knowledge-base/ethereum-ico-wordpress-plugin-configuration/#s8),
* [Max allowed value](https://ethereumico.io/knowledge-base/ethereum-ico-wordpress-plugin-configuration/#s9),
* [The ICO token rate](https://ethereumico.io/knowledge-base/ethereum-ico-wordpress-plugin-configuration/#s24),
* [ICO soft cap](https://ethereumico.io/knowledge-base/ethereum-ico-wordpress-plugin-configuration/#s26),
* [ICO hard cap](https://ethereumico.io/knowledge-base/ethereum-ico-wordpress-plugin-configuration/#s27),
* [Private sale seed](https://ethereumico.io/knowledge-base/ethereum-ico-wordpress-plugin-configuration/#s28).

It also makes sense to replace USD with ETH in the [List of coins](https://ethereumico.io/knowledge-base/ethereum-ico-wordpress-plugin-configuration/#s18) setting.

As a result:

* The token sell widget accepts sum in USD and displays the currency used,
* The Progressbar widget displays the current sum, soft and hard caps with the used currency symbol,
* The Amount field in the Purchases table widget is shown in USD with a used currency symbol too

> See the [ICO Fiat Money](https://ethereumico.io/knowledge-base/ico-fiat-money/) for a detailed configuration guide please.

== FREE Features ==

* This plugin uses Metamask or any other web3 browser to safely perform the ERC20 token sell operation
* It will show user a link to the Metamask site if the user doesn’t have the Metamask installed
* We use a well known https://etherscan.io API to provide your client an automatic rate calculations to USD and BTC
* Select a list of any currencies supported by the openexchangerates.org to convert the price to.
* You can provide a comma separated list of coins to convert ETH amount inputted by user. This list is shown under the ETH input field.
* Minimum ether amount can be specified to workaround some legal issues.
* Test networks like goerli and sepolia are supported. User is warned if he tries to buy tokens from one network, while having MetaMask to point to another network, effectively preventing any losses here.
* The Infura.io service can be used with the [Infura.io API Key](https://ethereumico.io/knowledge-base/infura-api-key-guide/) setting
* This plugin is l10n ready

== PRO Features ==

The [PRO version](https://ethereumico.io/product/wordpress-ethereum-ico-plugin/ "The Ethereum ICO Professional plugin") is required for these features to work. [Free 7 days Trial](https://checkout.freemius.com/mode/dialog/plugin/4553/plan/7330/?trial=paid "The Ethereum ICO Professional plugin") is available.

* Coins and token icons display can be switched on
* Maximum ether amount can be specified to workaround some legal issues
* Private sale seed setting to count funds obtained in a non-Crowdsale contract way
* Custom/private blockchain feature: `Ethereum Node JSON-RPC Endpoint` and other related settings to use the [Binance Smart Chain (BSC)](https://ethereumico.io/knowledge-base/binance-smart-chain-config-ethereum-wordpress-ico-plugin/), Polygon (MATIC) or any other EVM compatible blockchain

> See the [Free vs PRO version differences](https://ethereumico.io/knowledge-base/ethereum-ico-wordpress-plugin-free-vs-pro-version-differences/) if need more info on this topic.

== Disclaimer ==

**By using this plugin you accept all responsibility for handling the account balances for all your users.**

Under no circumstances is **ethereumico.io** or any of its affiliates responsible for any damages incurred by the use of this plugin.

Every effort has been made to harden the security of this plugin, but its safe operation depends on your site being secure overall. You, the site administrator, must take all necessary precautions to secure your WordPress installation before you connect it to any live wallets.

You are strongly advised to take the following actions (at a minimum):

- [Educate yourself about cold and hot cryptocurrency storage](https://en.bitcoin.it/wiki/Cold_storage)
- Obtain hardware wallet to store your coins
- [Educate yourself about hardening WordPress security](https://codex.wordpress.org/Hardening_WordPress)
- [Install a security plugin such as Jetpack](https://jetpack.com/pricing/?aff=9181&cid=886903) or any other security plugin
- **Enable SSL on your site** if you have not already done so.

> By continuing to use the Ethereum ICO Wordpress plugin, you indicate that you have understood and agreed to this disclaimer.

== Screenshots ==

1. This is how the plugin looks like if the Show icons feature is enabled.
2. The `[ethereum-ico-progress]` display
3. The `[ethereum-ico-balance]` display
4. The `[ethereum-ico-purchases]` display
5. The token symbol and GAS settings
6. The base currency settings
7. Token sale widget settings
8. Advanced settings
9. API keys
10. Displayed currencies list and Show icons flag
11. The ICO Token and Crowdsale contract addresses
12. The ICO Crowdsale contract properties
13. The `[ethereum-ico-progress]` shortcode settings
14. The `[ethereum-ico-referral]` display

== Installation ==

Enter your settings in admin pages and place the `[ethereum-ico]` and other shortcodes wherever you need it.

Read this step by step guide for more information: [Install and Configure](https://ethereumico.io/knowledge-base/ico-website-install-configure/)

Detailed configuration settings description can be found in this guide: [Configuration Settings](https://ethereumico.io/knowledge-base/ethereum-ico-wordpress-plugin-configuration/).

> [Binance Smart Chain (BSC)](https://ethereumico.io/knowledge-base/binance-smart-chain-config-ethereum-wordpress-ico-plugin/), Polygon (MATIC) and any other EVM-compatible blockchain is supported in the [PRO version](https://checkout.freemius.com/mode/dialog/plugin/4553/plan/7330/?trial=paid "The Ethereum ICO Professional plugin")!

https://youtu.be/2lOZw_ov_uY

= Main shortcodes example =

`
[ethereum-ico-referral url="https://example.com/crowdsale-ico-page" label="Referal link" placeholder="Input your BSC account address"]

[ethereum-ico-balance tokenname="TSX" label="Referal link" placeholder="Input your BSC account address"]

[ethereum-ico]

[ethereum-ico-progress]

[ethereum-ico-purchases tokenname="TSX" label="Referal link" placeholder="Input your BSC account address"]
`

= Fine grained shortcodes example =

`
[ethereum-ico-limit label="%s LIMIT!" gaslimit="200001"]

[ethereum-ico-input placeholder="Test placeholder"]

[ethereum-ico-input-currency showIcons="true" baseCurrency="USD"]

[ethereum-ico-buy-button buyButtonText="BUY ME!"]

[ethereum-ico-currency-list showIcons="false"  coinList="ETH,BTC"]

[ethereum-ico-progress-value]

[ethereum-ico-progress-percent]

`

== Frequently Asked Questions ==

= Purchase button styling =

The Purchase button style has a `button` CSS class and is determined by your WP theme chosen.
You can customize it by adding these code to your `Additional CSS` section in the theme customizing:

`
.button.ethereum-ico-bottom-button-two {
    background-color: #ffd600;
    color: #ffffff;
}
.button.ethereum-ico-bottom-button-two:hover {
    background-color: #ffd6ff;
    color: #ffffff;
}
`

= Progressbar styling =

The Progressbar style has CSS classes defined. You can customize it by adding these code to your `Additional CSS` section in the theme customizing:

`
.twbs .progress {
    background-color: #f5f5f5;
    border-radius: 4px;
}
.twbs .progress-bar {
    background-color: #337ab7;
}
.twbs .progress-meter > .meter > .meter-text {
    color: rgb(160, 160, 160);
}
`

Choose your own colors and additional styles if needed.

= Sidebar small buttons issue =

It is known to have short length button and input area when put on a short width sidebar area. You can fix it with this CSS code:

`
@media (min-width: 992px) {
    .ethereum-ico-shortcode .col-md-5 {
        width: 100%!important;
        max-width: 100%!important;
        flex-basis: 100%!important;
    }
}
`

= How to test this plugin on a Görli testnet? =

* Set the `Blockchain` setting to `Ethereum Görli Testnet`
* Request some Görli Ether from some faucet
* Set `The ICO token address` setting to 0xb4354f51b51ab69d7415d54108dd2f68223c3239 or an address of your own token
* Set `The ICO crowdsale contract address` setting to 0x448276ac3c99620f02cc2ac60964aca44b20929a or an address of your Crowsale contract
* Tune other plugin settings if required
* Buy some tokens with Görli Ether
* Check that proper amount of tokens has been sent to your payment address

= How to test this plugin on a Sepolia testnet? =

* Set the `Blockchain` setting to `Ethereum Sepolia Testnet`
* Request some Sepolia Ether from some faucet
* Set `The ICO token address` setting to 0x9295a2ba374cf5d575d076c0a48ed12287ad4659 or an address of your own token
* Set `The ICO crowdsale contract address` setting to 0x1ddef0c5628fc54c1eb0f91a3fdba57b05549d13 or an address of your Crowsale contract
* Tune other plugin settings if required
* Buy some tokens with Sepolia Ether
* Check that proper amount of tokens has been sent to your payment address

== l10n ==

This plugin is localization ready.

Languages this plugin is available now:

* English
* Russian(Русский)

Feel free to [translate](https://translate.wordpress.org/projects/wp-plugins/ethereumico) this plugin to your language.

== Changelog ==

= 2.4.7 =

* minor shortcode fixes

= 2.4.6 =

* freemius library version update

= 2.4.5 =

* freemius library version update

= 2.4.4 =

* freemius library version update

= 2.4.3 =

* Fix USD price for bscscan.com API

= 2.4.2 =

* Blockchain explorer API Key settings fix

= 2.4.1 =

* `ethprice_api_url` setting fix

= 2.4.0 =

* Blockchain settings configuration is simplified for both, infura.io supported and custom networks
* Remove unsupported test networks

= 2.3.16 =

* Fix the balance account field display if the referral shortcode is not used

= 2.3.15 =

* Fix non-USD setting on the admin page

= 2.3.14 =

* Support less than 1 token rates

= 2.3.13 =

* `sepolia`, `polygon` and `mumbai` networks support is added

= 2.3.12 =

* Fix balance `Account` field display if no MetaMask is connected

= 2.3.11 =

* Better [EIP-1559](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1559.md) compliance
* New freemius.com library version

= 2.3.10 =

* Support token names with characters like `:` in the symbol

= 2.3.9 =

* MATIC icon is added in the PRO version
* BNB icon not shown issue fix

= 2.3.8 =

* BNB icon is added in the PRO version

= 2.3.7 =

* Disabled `Advanced blockchain` settings in Trial mode fix

= 2.3.6 =

* The name of the argument used in referral links can be renamed now

= 2.3.5 =

* Error display fix

= 2.3.4 =

* False network mismatch error fix

= 2.3.3 =

* `url` attribute is added to the `[ethereum-ico-referral]` shortcode.

= 2.3.2 =

* `tokenname`, `label` and `placeholder` attributes are added to better support non-Ethereum networks.

= 2.3.1 =

* Empty `data` field fix

= 2.3.0 =

* [EIP-1559](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1559.md) support

