Title: EthPress &#8211; Web3 Login
Author: lynn999
Published: <strong>June 4, 2019</strong>
Last modified: January 27, 2025

---

Search plugins

![](https://ps.w.org/ethpress/assets/icon-256x256.png?rev=2371493)

# EthPress – Web3 Login

 By [lynn999](https://profiles.wordpress.org/lynn999/)

[Download](https://downloads.wordpress.org/plugin/ethpress.2.3.5.zip)

 * [Details](https://pcd.wordpress.org/plugins/ethpress/#description)
 * [Reviews](https://pcd.wordpress.org/plugins/ethpress/#reviews)
 *  [Installation](https://pcd.wordpress.org/plugins/ethpress/#installation)
 * [Development](https://pcd.wordpress.org/plugins/ethpress/#developers)

 [Support](https://wordpress.org/support/plugin/ethpress/)

## Description

The EthPress Web3 Login WordPress Plugin adds a capability to connect with cryptocurrency
wallets such as [MetaMask](https://metamask.io) for Ethereum, Binance Smart Chain(
BSC), Polygon (MATIC) or any other EVM-compatible blockchain, and wallets that support
[WalletConnect](https://walletconnect.com/) QR code. Adds a button to WordPress 
login screen that will let users securely log in with their crypto wallet.

Add the capability to log in with cryptocurrency wallets such as [MetaMask](https://metamask.io)
for Ethereum, and wallets that support WalletConnect QR code. Adds a button to WordPress
login screen that will let users securely log in with their crypto wallet.

In the background, a regular WordPress user account is created, so existing plugins
and customizations will have no problem working along.

> The [EthPress NFT Access Add-On](https://ethereumico.io/product/nft-authentication-nft-access-control-wordpress-plugin/)
> can be used to control access for [WooCommerce](https://woocommerce.com/?aff=12943&cid=17113767)
> products, simple pages and posts.

### Features

 * A web3 login button is added to your login screen automatically
 * Use the EthPress widget for maximum ease
 * A shortcode [ethpress_login_button] can be used to display the Login button anywhere
 * A shortcode [ethpress_link_button] can be used to display the Link accounts button
   anywhere. The new account linked address will be put in all HTML elements with
   the `ethpress-address-changed` class present.
 * Local signature verification. To verify signatures locally with JavaScript, see
   this [guide](https://gitlab.com/losnappas/verify-eth-signature) please.

### Features PRO

> The [EthPress PRO](https://ethereumico.io/product/web3-login-wordpress-ethpress-plugin/)
> version is required to use these features. [Free 7 days Trial](https://checkout.freemius.com/mode/dialog/plugin/9248/plan/15558/?trial=paid)
> is available!

 * Managed Verification Service.
 * EthPress login button on a [WooCommerce](https://woocommerce.com/?aff=12943&cid=17113767)
   Login, Register and Checkout Forms.
 * The [ethpress_account] short code can be used to display the current user’s address
   logged with.
 * Buttons labels text can be changed in plugin settings
 * WooCommerce Account Details show Link Wallet button setting
 * The `Redirect URL` setting can be used to set an URL of a page to redirect after
   a successful login
 * The `login_button_label` attribute can be used to change the label for the login
   button displayed with a `[ethpress_login_button]` shortcode

> The [NFT](https://ethereumico.io/product/nft-wordpress-plugin/) Token based access
> control for the [WooCommerce](https://woocommerce.com/?aff=12943&cid=17113767)
> products, simple pages and posts can be done with the [EthPress NFT Access Add-On](https://ethereumico.io/product/nft-authentication-nft-access-control-wordpress-plugin/).
> [Free 7 days Trial](https://checkout.freemius.com/mode/dialog/plugin/10731/plan/18172/?trial=paid)
> is available!

#### Integrations

 * The [Ultimate Member](https://wordpress.org/plugins/ultimate-member/) plugin 
   is supported

### EthPress NFT Access Add-On Features

Check user NFT authentication control (non-fungible token, erc-721 and erc-1155)
ownership.
 The [EthPress NFT Access Add-On](https://ethereumico.io/product/nft-authentication-nft-access-control-wordpress-plugin/)
is perfect for blocking users access to a Page, a Post and a [WooCommerce](https://woocommerce.com/?aff=12943&cid=17113767)
Product page, if they don’t own a certain NFT token.

> Free 7 days [Trial](https://checkout.freemius.com/mode/dialog/plugin/10731/plan/18172/?trial=paid)
> is available

 * Site wide NFT verification requirement to register or login
 * Restrict access to a `Page` to some NFT token owners only
 * Restrict access to a `Post` to some NFT token owners only
 * Restrict access to a [WooCommerce](https://woocommerce.com/?aff=12943&cid=17113767)`
   Product` to some NFT token owners only
 * Shortcode to display your access level: [ethpress_nft_access_addon_nft product_id
   =”1337″]
 * `ERC721` and `ERC1155` non-fungible token standards are supported

#### Integrations

 * [LearnPress LMS](https://wordpress.org/plugins/learnpress/) courses access can
   be granted with NFT token
 * [Tutor LMS](https://wordpress.org/plugins/tutor/) courses access can be granted
   with NFT token
 * [Ethereum Wallet](https://wordpress.org/plugins/ethereum-wallet/) plugin generated
   accounts are also tested
 * The `ethpress_nft_access_get_user_accounts` filter can be used to add wallets
   for testing:
 *     ```
       add_filter('ethpress_nft_access_get_user_accounts', function($accounts) {
           $more_accounts = get_more_accounts();
           return array_merge($accounts, $more_accounts);
       });
       ```
   

### Disclaimer

**By using this free 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 EthPress plugin, you indicate that you have understood
> and agreed to this disclaimer.

### Hooks

These hooks can be used to add your custom logic after user logged in or linked 
an account using the EthPress plugin functionality.

The `login_redirect` hook is a [standard WordPress hook](https://developer.wordpress.org/reference/hooks/login_redirect/)
you can use to customize the page user should be redirected after login.

> The [EthPress PRO](https://ethereumico.io/product/web3-login-wordpress-ethpress-plugin/)
> version has a feature to configure it on the plugin settings page. [Free 7 days Trial](https://checkout.freemius.com/mode/dialog/plugin/9248/plan/15558/?trial=paid)
> is available!

    ```
    /**
     * Fires after every login attempt.
     *
     * @param WP_User|WP_Error $user WP_User on success, WP_Error on failure.
     * @param (string|false) $provider One of 'metamask', 'walletconnect', false.
     */
    do_action( 'ethpress_login', $user, $provider );

    /**
     * Fires after every user account linking success.
     *
     * @param WP_User|WP_Error $user WP_User on success, WP_Error on failure.
     * @param (string|false) $provider One of 'metamask', 'walletconnect', false.
     */
    do_action( 'ethpress_linked', $user, $provider );

    /**
     * Filters the login redirect URL.
     *
     * @param string           $redirect_to           The redirect destination URL.
     * @param string           $requested_redirect_to The requested redirect destination URL passed as a parameter.
     * @param WP_User|WP_Error $user                  WP_User object if login was successful, WP_Error object otherwise.
     */
    $redirect_to = apply_filters( 'login_redirect', $redirect_to, $requested_redirect_to, $user );

    /**
     * For additional checks in addons
     *
     * @since 1.6.0
     *
     * @param \losnappas\Ethpress\Address $address.
     * @return \losnappas\Ethpress\Address|\WP_Error Return \WP_Error if address doesn't fulfill some condition.
     */
    $address = apply_filters('ethpress_login_address', $address);

    /**
     * For additional checks in addons
     *
     * @since 1.6.0
     *
     * @param string           $redirect_to           The redirect destination URL.
     * @param string           $requested_redirect_to The requested redirect destination URL passed as a parameter.
     * @param WP_User|WP_Error $user                  WP_User object if login was successful, WP_Error object otherwise.
     */
    $redirect_to = apply_filters('ethpress_login_redirect', $redirect_to, $requested_redirect_to, $user);
    ```

## Screenshots

 * [[
 * Login flow.
 * [[
 * Widget included.
 * [[
 * WooCommerce Login Form display.
 * [[
 * WooCommerce Login Form display settings.
 * [[
 * The EthPress NFT Access Add-On page settings.
 * [[
 * The EthPress NFT Access Add-On settings.
 * [[
 * The EthPress NFT Access Add-On site wide settings.
 * [[
 * NFT Access Granted message on the All cources page LearnPress LMS
 * [[
 * Buy NFT token to access message on a cource page LearnPress LMS
 * [[
 * NFT Access Granted message on a cource page LearnPress LMS
 * [[
 * NFT Access settings on a cource page LearnPress LMS
 * [[
 * NFT Access settings for LearnPress LMS
 * [[
 * NFT Access Granted message on the All cources page Tutor LMS
 * [[
 * NFT Access Granted message on a cource page Tutor LMS
 * [[
 * NFT Access settings for Tutor LMS
 * [[
 * The Ultimate Member EthPress Button support
 * [[
 * The Ultimate Member EthPress Button edit dialog
 * [[
 * The Ultimate Member EthPress Button on the Login page
 * [[
 * The Ultimate Member EthPress Button on the Register page
 * [[
 * The Ultimate Member EthPress Link Account Button on the Profile Edit page
 * [[
 * The Ultimate Member EthPress Account display on the Profile page

## Installation

Use WordPress’ Add New Plugin feature, search “EthPress”,

or

 1. Upload this folder (on WordPress.org, not GitLab) to the `/wp-content/plugins/`
    directory
 2. Activate the plugin through the ‘Plugins’ menu in WordPress

## FAQ

### Can NFT token ownerhip restriction be applied?

The [NFT](https://ethereumico.io/product/nft-wordpress-plugin/) Token based access
control for the [WooCommerce](https://woocommerce.com/?aff=12943&cid=17113767) products,
simple pages and posts can be done with the [EthPress NFT Access Add-On](https://ethereumico.io/product/nft-authentication-nft-access-control-wordpress-plugin/).
[Free 7 days Trial](https://checkout.freemius.com/mode/dialog/plugin/10731/plan/18172/?trial=paid)
is available!

### “Cannot log you in; you have not registered”

EthPress 0.7.1+ respects the “Anyone can register” WordPress setting, so you have
to enable that in Settings->General.

### The modal classes keep changing

Use selectors like `#web3-login-root button.web3login-metamask`, instead of the `
svelte-12345`.

### How does it work?

The outline is described in [this TopTal post by Amaury Martiny](https://www.toptal.com/ethereum/one-click-login-flows-a-metamask-tutorial).

Instead of using databased nonces, we use WordPress nonces with a lifetime of 5 
minutes, and append the user IP to the login message to prevent replays from elsewhere.

Fore more details, check out [the extra readme](https://gitlab.com/losnappas/ethpress/-/blob/master/README-EXTRA.md#so-how-does-it-verify-a-user).

### Signature verification

When user submits a signature, it needs to be verified on server-side.

Read the “How does it work?” question.

Firstly, if you have php-gmp or php-bcmath extension installed, we’ll do it with
PHP, and you can ignore the rest of this. To check, go to the EthPress settings 
page.

Otherwise, we do it with JavaScript. [EthPress Premium](https://checkout.freemius.com/mode/dialog/plugin/9248/plan/15558/)
comes configured with a Managed Verification Service. To verify signatures locally
with JavaScript, see details: [https://gitlab.com/losnappas/verify-eth-signature](https://gitlab.com/losnappas/verify-eth-signature).

### Are my coins safe?

Yes. A wallet (e.g. MetaMask) does/should not leak your private keys out into the
wild, that would be madness.

### What about mobile?

Mobile integration is in good condition, with WalletConnect QR code reading from
wallets such as MetaMask Mobile, there is very little friction!

### GDPR?

Ethpress does not store anything other than the wallet address, on your server. 
It will be deleted if you delete the associated user account or remove the plugin
entirely.

If you’re using the default, pre-set signature verification service: [it](https://gitlab.com/losnappas/verify-eth-signature)
is hosted on the [ethereumico.io](http://ethereumico.io/). No data is stored here.

Check EthPress Settings page for more information.

### Source code and contributing

Contributions on GitLab only, thank you.

Plugin’s source code: [https://gitlab.com/losnappas/ethpress](https://gitlab.com/losnappas/ethpress).

Signature verifier’s, which is used if no _php-gmp_ or _php-bcmath_, source code:
[https://gitlab.com/losnappas/verify-eth-signature](https://gitlab.com/losnappas/verify-eth-signature).

The modal is a Svelte component. Source code: [https://gitlab.com/losnappas/web3-login](https://gitlab.com/losnappas/web3-login).

### Further support

On the wordpress.org support page, or on the [ethereumico.io support forum](https://ethereumico.io/support/).

## Reviews

![](https://secure.gravatar.com/avatar/163e08f01c3a017c4b6052368a5e7102b432e8c737aa9baa99463849087754d9?
s=60&d=retro&r=g)

### 󠀁[Works like a charm!](https://wordpress.org/support/topic/works-like-a-charm-2191/)󠁿

 [Kookidooki](https://profiles.wordpress.org/kookidooki/) March 30, 2023

This great plugin works like a charm! I got one question: Can you make a stand-alone“
Connect with Wallet” button or link, not integrated in login form or Woocommerce.
I don’t want users login into my website to buy our crypto tokens. Thank you!

![](https://secure.gravatar.com/avatar/c2b8afa1def0372a33c0ea9c8f0a157ad805774f5d6f69de9e15048d31c4c8cf?
s=60&d=retro&r=g)

### 󠀁[Many time this plugin not work.](https://wordpress.org/support/topic/many-time-this-plugin-not-work/)󠁿

 [pariskan](https://profiles.wordpress.org/pariskan/) June 12, 2022

Can’t make sure when not work. but many time when login will show Error: cannot 
detect crypto wallet and Bad nonce, please refresh. Recommend find better plugin

![](https://secure.gravatar.com/avatar/188fccbd302476db533f93e20b6ce9f3110e320ca9589a2aeb798d22ac34173e?
s=60&d=retro&r=g)

### 󠀁[Great work](https://wordpress.org/support/topic/great-work-1012/)󠁿

 [felix9607](https://profiles.wordpress.org/felix9607/) January 19, 2022

Very great plugin to enable the web3 for wordpress! Anyways it seems like a lot 
of users have trouble using the shortcode (me included). The widget is the only 
thing that enables he capabilities so far. Hope to see improvments here so the pro
version might be a buy.

![](https://secure.gravatar.com/avatar/df50d7cd5e423a26808fc9b000e1e3186e84f2ee7570d30d5973ca894feeb081?
s=60&d=retro&r=g)

### 󠀁[Thanks](https://wordpress.org/support/topic/thanks-2195/)󠁿

 [pabelpm](https://profiles.wordpress.org/pabelpm/) January 1, 2022

Esperemos que incorporen el login mediante NFT

![](https://secure.gravatar.com/avatar/ffb7eee880c7ff4bfb468b72c1959da516515e3d5edeaffbaefd8eabf31c587d?
s=60&d=retro&r=g)

### 󠀁[Very promising](https://wordpress.org/support/topic/very-promising-58/)󠁿

 [Pascal](https://profiles.wordpress.org/pascalcab/) December 13, 2021

Very cool plugin with a very promising setup. The connection to Ledger Nano X is
currently not working but apart from that it works incredibly well.

![](https://secure.gravatar.com/avatar/65a1340aaa47f5d29c4208ab74f724d16ddd084a6c19142ae3fc1c422152e396?
s=60&d=retro&r=g)

### 󠀁[great plugin](https://wordpress.org/support/topic/doesnt-work-2752/)󠁿

 [willsorr](https://profiles.wordpress.org/willsorr/) December 4, 2021

works really well.

 [ Read all 10 reviews ](https://wordpress.org/support/plugin/ethpress/reviews/)

## Contributors & Developers

“EthPress – Web3 Login” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ lynn999 ](https://profiles.wordpress.org/lynn999/)
 *   [ ethereumicoio ](https://profiles.wordpress.org/ethereumicoio/)
 *   [ Freemius ](https://profiles.wordpress.org/freemius/)

“EthPress – Web3 Login” has been translated into 1 locale. Thank you to [the translators](https://translate.wordpress.org/projects/wp-plugins/ethpress/contributors)
for their contributions.

[Translate “EthPress – Web3 Login” into your language.](https://translate.wordpress.org/projects/wp-plugins/ethpress)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/ethpress/), check out
the [SVN repository](https://plugins.svn.wordpress.org/ethpress/), or subscribe 
to the [development log](https://plugins.trac.wordpress.org/log/ethpress/) by [RSS](https://plugins.trac.wordpress.org/log/ethpress/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 2.3.5

 * freemius library version update

#### 2.3.4

 * freemius library version update

#### 2.3.3

 * Fix the `Bad nonce, please refresh.` error after login without redirect. Nonces
   are invalidated after login. If page is not reloaded or redirected, we need to
   update nonces.
 * freemius library version update

#### 2.3.2

 * Fix link account error
 * Change user login to new address if previous was also an address
 * web3modal lib update to v4.1.11
 * freemius library version update

#### 2.3.1

 * signMessage on mobile fix attempt

#### 2.3.0

 * web3modal lib update to v4.0.13
 * freemius library version update

#### 2.2.3

 * Error reporting enhancements

#### 2.2.2

 * Error reporting enhancements
 * l10n enhancements
 * Fix warnings for options save

#### 2.2.1

 * `Username already exists` error fix second attempt
 * Old DB structure check improved
 * General error reporting improved
 * freemius library version update

#### 2.2.0

 * `Username already exists` error fix
 * Crypto wallet register button is added on the default WordPress Register page

#### 2.1.2

 * web3modal lib update to v2.7.1

#### 2.1.1

 * freemius library version update

#### 2.1.0

 * Dark and Light theme modes for the web3 login dialog

#### 2.0.2

 * web3modal lib update to v2.3.3
 * network switch fix
 * Brave browser support
 * freemius update to v2.5.7

> Known issue: the Trust Wallet doesn’t work in the Wallet Connect QR code mode.

#### 2.0.1

 * Dialog z index is fixed
 * WalletConnect ID no save button issue is fixed

#### 2.0.0

> NOTE: breaking changes! The [WalletConnect Project ID](https://cloud.walletconnect.com/sign-in)
> should be configured in plugin settings.

 * The Wallet Connect v2 migration
 * The [Web3Modal](https://web3modal.com/) login dialog migration

#### 1.8.0

 * The [Ultimate Member](https://wordpress.org/plugins/ultimate-member/) plugin 
   support is added

#### 1.7.2

 * The `ethpress_before_submit_button` action is added for better addons support

#### 1.7.1

 * Fix settings name

#### 1.7.0

 * Allow `HTML` tags in the status message for better addons support

#### 1.6.1

 * The save settings button was not shown if WooCommerce was not installed

#### 1.6.0

 * `ethpress_login_user` and `ethpress_login_redirect` filters are added to be used
   in addons
 * Settings availability is adjusted for Free/Trial/PRO modes

## Meta

 *  Version **2.3.5**
 *  Last updated **1 year ago**
 *  Active installations **100+**
 *  WordPress version ** 4.6 or higher **
 *  Tested up to **6.7.5**
 *  PHP version ** 7.4 or higher **
 *  Languages
 * [Dutch](https://nl.wordpress.org/plugins/ethpress/) and [English (US)](https://wordpress.org/plugins/ethpress/).
 *  [Translate into your language](https://translate.wordpress.org/projects/wp-plugins/ethpress)
 * Tags
 * [cryptocurrency](https://pcd.wordpress.org/plugins/tags/cryptocurrency/)[ethereum](https://pcd.wordpress.org/plugins/tags/ethereum/)
   [metamask](https://pcd.wordpress.org/plugins/tags/metamask/)[nft](https://pcd.wordpress.org/plugins/tags/nft/)
   [walletconnect](https://pcd.wordpress.org/plugins/tags/walletconnect/)
 *  [Advanced View](https://pcd.wordpress.org/plugins/ethpress/advanced/)

## Ratings

 4.6 out of 5 stars.

 *  [  10 5-star reviews     ](https://wordpress.org/support/plugin/ethpress/reviews/?filter=5)
 *  [  0 4-star reviews     ](https://wordpress.org/support/plugin/ethpress/reviews/?filter=4)
 *  [  0 3-star reviews     ](https://wordpress.org/support/plugin/ethpress/reviews/?filter=3)
 *  [  0 2-star reviews     ](https://wordpress.org/support/plugin/ethpress/reviews/?filter=2)
 *  [  1 1-star review     ](https://wordpress.org/support/plugin/ethpress/reviews/?filter=1)

[Add my review](https://wordpress.org/support/plugin/ethpress/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/ethpress/reviews/)

## Contributors

 *   [ lynn999 ](https://profiles.wordpress.org/lynn999/)
 *   [ ethereumicoio ](https://profiles.wordpress.org/ethereumicoio/)
 *   [ Freemius ](https://profiles.wordpress.org/freemius/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/ethpress/)

## Donate

Would you like to support the advancement of this plugin?

 [ Donate to this plugin ](https://etherscan.io/address/0x106417f7265e15c1aae52f76809f171578e982a9)