OpenPorte Spam Protection
OpenPorte Spam Protection

OpenPorte Spam Protection

5/5 (2 ratings) 60 active installs Updated Jul 30, 2026

OpenPorte is a free and open-source plugin that protects WordPress forms
from spam using a lightweight Proof-of-Work challenge instead of CAPTCHAs.
The goal is to make spam expensive for bots while keeping the experience almost
invisible for legitimate visitors and respecting their privacy.

For site owners, OpenPorte offers an easy to configure and deploy modern
spam protection under their control.
For the site users, it offers an accessible, transparent and privacy-friendly
alternative to CAPTCHAs.

OpenPorte is built around the open-source ALTCHA widget.

Some highlights:

  • CAPTCHA-free spam protection
  • Fully open source (GPL)
  • Self-hosted – no mandatory external service
  • Designed to be accessible and privacy-friendly
  • Compatible with existing ALTCHA integrations
  • Easy migration for users of ALTCHA Spam Protection v1 (≤ 1.26.3)

For the list of contributors, refer to our GitHub project: Contributors.

AI-assisted development

AI-assisted project. Architecture, security decisions, and final review are
mine; AI tools (Claude, Mistral, and others) help with drafting code, tests,
translations, and documentation — without them, one person couldn’t keep
this fork alive.

Background

The original ALTCHA Spam Protection WordPress plugin (v1) was open source
(GPLv2). Its authors have since released a version 2/3 which is no longer
open source. They no longer maintain the open source project and recommend
that users migrate to v2/v3. See the official project at https://altcha.org
for their offering.

OpenPorte started as a fork and continues the v1 line as free software
(GPLv2 or later) for users who want to stay on a fully open-source,
self-hosted solution. It is a faithful fork: existing v1 installations
can switch to OpenPorte and keep their settings (see Upgrading).

Compatibility

OpenPorte is backward-compatible with ALTCHA Spam Protection v1 plugin:

  • Your existing settings are migrated automatically on activation.
  • The [altcha] shortcode keeps working (alongside the new [openporte]).
  • The altcha_* filters and actions keep firing as deprecated aliases.
  • Custom API Mode has been verified against GateCHA,
    an open source server implementing the creation and verification of ALTCHA challenges.

See the Deprecations section for the full list of compatibility aliases and
what they map to.

Upgrading

From the original ALTCHA v1 plugin

Deactivate the old ALTCHA plugin, then install and activate OpenPorte. Your
existing configuration is detected and copied into the OpenPorte settings on
first activation; the original ALTCHA settings are left untouched, so you can
roll back to ALTCHA v1 without losing anything. Do not run both plugins at the
same time.

From ALTCHA v2/v3

If your site was already moved to ALTCHA v2/v3 (for example by the automatic
3.0.0 update), your original v1 settings are normally still in the database:
the v2/v3 upgrade neither migrates nor removes them. Deactivate ALTCHA, then
install and activate OpenPorte — it finds and imports the v1 settings, even
when the v1 plugin itself has long been deleted. Settings made in v2/v3 are
not read.

Deprecations

The following ALTCHA-era identifiers are kept as aliases for backward
compatibility and are scheduled for removal in a future release:

  • The [altcha] shortcode — use [openporte].
  • The altcha/v1 REST namespace — use openporte/v1.
  • The altcha_* filters and actions — now firing through WordPress’ deprecated
    hook mechanism; use the openporte_* equivalents.
  • The AltchaPlugin class and the ALTCHA_VERSION / ALTCHA_WIDGET_VERSION
    constants — use OpenPortePlugin and the OPENPORTE_* constants.
  • Integrations targeting paid-only third-party plugins; affected users should
    migrate to the official ALTCHA v2/v3 plugin.
  • The “Custom HTML” integration (auto-configuration of hand-written
    tags) — place the [openporte] shortcode instead. You can
    re-enable it for now under Settings OpenPorte Integrations.

Privacy

No cookies, no tracking

OpenPorte prioritizes user privacy by avoiding the use of cookies and fingerprinting techniques.

No external service

This plugin remains fully contained within your WordPress installation, eliminating any reliance on external services.

Modes of Operation

OpenPorte verifies submissions in one of two modes, selected in the settings
(API Mode):

  • Self-hosted (default) — a proof-of-work challenge is issued and verified by
    your own WordPress site through the REST API. Fully self-contained, with no
    external service and no additional setup beyond enabling the integrations you
    need.
  • Custom — point the Challenge URL at your own ALTCHA-compatible backend (for
    example a self-hosted ALTCHA Sentinel, or GateCHA).
    Submissions are verified with your site’s shared secret.

The paid altcha.org regional SaaS classifier offered by earlier versions has
been removed; both remaining modes are free and self-hostable.

REST API

This plugin requires the WordPress REST API. If you are using any “Disable REST API” plugins, ensure that the endpoint /altcha/v1/challenge (marked for deprecation) and /openporte/v1/challenge are allowed.

Supported Integrations

  • CoBlocks
  • Contact Form 7
  • Elementor Pro Forms (deprecated — paid plugin, see Deprecations)
  • Formidable Forms
  • Forminator
  • GravityForms
  • HTML Forms
  • wpDiscuz
  • WPForms
  • WordPress Login, Register, Password reset
  • WordPress Comments
  • WooCommerce
  • Many other plugins and your own content (via the [openporte] shortcode, or the deprecated [altcha] alias)

Source Code

All source code for the plugin, and the ALTCHA widget is available on GitHub. In the repository, you’ll also find versions of non-minified JavaScript and CSS assets:

  • Plugin: https://github.com/openporte/openporte
  • ALTCHA Widget: https://github.com/altcha-org/altcha