You are here:
< Back

Know Your Client (KYC) for ICO project is an investor identification procedure required by local laws. See here for a detailed explanation: AML/KYC Explained

Typically, it means to collect and verify some identification documents images like passport ID, driver license, and so on. ICO token purchases should be allowed only for verified investors.

It is forced by restricting access to token sale pages and by applying a whitelist technique in the Crowdsale smart contract.

In this tutorial we will establish both techniques on a test WordPress site to establish the Know Your Client (KYC) procedure.

Step 1. Install the Ultimate Member plugin

The Ultimate Member plugin is an ultimate solution for KYC implementation on any WordPress site.

Open your WordPress site admin dashboard and go to the Plugins -> Add New section and input the ultimate member string into the keyword field. The Ultimate Member plugin would be the first in a list. Click the Install Now button on the plugin card.

KYC

After some short time the Install Now would be changed to the Activate button. Click this button and wait till the installed plugins list would be loaded – Plugins -> Installed Plugins section.

KYC

Step 2. Turn on new user verification

In this step we’ll configure user registration to went through manual admin verification before be able to login to your site.

Find the Subscriber user role

Go to the Ultimate Member -> User Roles section:

KYC

Hover the Subscriber role with your mouse pointer and click the Edit link shown:

KYC

Turn on the admin verification

On the page opened find the Registration Options section and change the Registration Status combo box value to the Require Admin Review option:

KYC

Edit the Personalize the custom message field value if you want.

This text message is shown to the user after user registration completes.

KYC

Optional! Configure Login redirect

Optionally, you can configure automatic redirect to your ICO token sale page after user login.

Find the Login Options sections on the same page. In the Action to be taken after login combo box select the Redirect to URL option, and in the Set Custom Redirect URL field input the path to your token sale page, e.g. /ico/:

KYC

Save changes

Save changes by pressing the Update Role button in the top right part of this page:

KYC

Step 3. Add fields to the Registration form

In this section we will add two fields of the most important types: Image Upload used for user identity verification and Checkbox used for user agreements.

Find the Registration form

Open the Ultimate Member -> Forms section:

KYC

Hover the Default Registration form with your mouse pointer and click the Edit link shown:

KYC

Add Image Upload field

The Passport ID image upload field is configured here. You can configure any other image upload field exactly in the same way.

In the form edit page opened scroll down to the fields list in the form editor and press the + button as shown on the picture:

KYC

Click the Image Upload button in the dialog opened:

KYC

This field allows you to add an image upload field to your forms which will let users upload an image. See the official documentation for more info please.

Configure the field in a similar way to this example picture:

KYC

The most important settings here are

  • the Privacy, which should be set to the Only visible to profile owner and admins to prevent third parties to see sensitive user information and
  • Is this field required? checkbock that should be Checked On to force user to provide this information on the registration page.

Save changes

Click the Add dialog button when ready.

Add Checkbox field

The 18+ age requirement is configured here. You can configure any other checkbox field exactly in the same way.

In the form edit page opened scroll down to the fields list in the form editor and press the + button as shown on the picture:

KYC

Click the Checkbox button in the dialog opened:

KYC

This field allows you to add a checkbox field to your forms which will let users select multiple option from a range of options.. See the official documentation for more info please.

Configure the field in a similar way to this example picture:

KYC

The most important settings here are

  • the Privacy, which should be set to the Only visible to profile owner and admins to prevent third parties to see sensitive user information and
  • Is this field required? checkbock that should be Checked On to force user to provide this information on the registration page.

Save changes

Click the Add dialog button when ready.

Result should looks like this:

KYC

Click the Update button in the top right part of this page:

KYC

Step 4. Add fields to the Profile form

In this section we will add two fields created for the Registration form to the Profile form to show uploaded image and checked agreement here.

Find the Profile form

Open the Ultimate Member -> Forms section. Hover the Default Profile form with your mouse pointer and click the Edit link shown:

KYC

Add the Passport ID field

In the form edit page opened scroll down to the fields list in the form editor and press the + button as shown on the picture:

KYC

Click the Passport ID button in the dialog opened:

KYC

Add Age agreement field

In the form edit page opened scroll down to the fields list in the form editor and press the + button as shown on the picture:

KYC

Click the I'm 18 years old button in the dialog opened:

KYC

Save changes

Result should looks like this:

KYC

Click the Update button in the top right part of this page:

KYC

Step 5. Email settings

We need to enable some emails required for the admin verification process implementation.

Open the Ultimate Member -> Settings -> Email section:

KYC

Click the Gear button on some email setting:

KYC

Enable the checkbox on the page opened:

KYC

And press the Save Changes button:

KYC

Repeat it for all emails to obtain the green Emails list like this:

KYC

Step 6. Protect token sale page

In this section we will restrict access to the token sale page to logged in users only. It will protect this page from all non-verified users.

Go to Pages -> Add New or open an existing page for edit. Find the UM Content Restriction section and check the checkbox:

KYC

Note the Ethereum ICO WordPress Plugin shortcodes on the page.

Configure additional fields appeared in the UM Content Restriction section according to this example:

KYC

Input your Custom Restrict Content message. It often contains links for Login and Registration pages.

To do that, select the Login word and click the link button on the editor panel:

KYC

In the dialog opened select the Login page from the list and click the Add Link button:

KYC

Do the same for the register link:

KYC

In the dialog opened select the Register page from the list and click the Add Link button:

KYC

The result (with site name removed from links) should looks like this:

KYC

Save changes by clicking the Update button in the top right page side:

KYC

Step 7. Test and use KYC

Congratulations! You have KYC configured for your token sale page. Let’s test and use it.

First of all, try to load your token sale page in incognito browser window (Ctrl+Shift+N in Chrome). You would see something like this:

KYC

Press the Register link. You should see two additional fields that we have added:

KYC

Press the Upload button and choose some picture for upload:

KYC

My russian passport cover in this case. And press the Apply button:

KYC

Then check the I'm 18 years old checkbox, fill all other fields required and press the Register button:

KYC

You’ll see the message you have inputted on the Step 2:

KYC

Now if you’ll try to login you’ll see this error message:

KYC

Now return to the admin panel and open the Users -> Pending review table:

KYC

Hover some user’s row with your mouse pointer and click the View link shown:

KYC

The user profile form would be loaded with uploaded Passport ID image and all other fields you have added here:

KYC

Note the This user account status is Pending Review message in the page header.

Press the Gear button in the page header and click the Approve Membership if you are sure that Passport ID and other KYC conditions are met for this user:

KYC

Note the This user account status is Pending Review message in the page header has disappeared:

KYC

Open the incognito browser window (Ctrl+Shift+N in Chrome) again and login. the login should succeed. And if you have configured the Login redirect to your token sale page you should see something like this:

KYC

You need the Ethereum ICO WordPress Plugin to be installed and configured to see these widgets rendered.

Step 8. Implement KYC in smart contract

The KYC we have implemented in previous 1 to 7 steps protects only your site pages from unverified users. But as long as your Crowdsale smart contract is deployed in the Ethereum blockchain, anyone can just send Ether to the address of this contract and have tokens in return.

You need to implement the Whitelist functionality in your Crowdsale smart contract to be able to whitelist your verified investors, allowing them to purchase your tokens.

These two well tested contracts can be an excellent starting point for you: Whitelist and WhitelistedCrowdsale

Also, feel free to use the Crowdsale Contract and ERC20 Token Development Service to let us do this job for you.

See also: Ethereum ICO WordPress Plugin, Cryptocurrency WordPress Plugin for WooCommerce, WordPress Ethereum Wallet plugin

Categories:

Help-Desk