Skip to main content

WordPress Plugin — Token Gating, Crypto Payments, Wallet Login

Early Access

The WordPress plugin is your funnel into WalletPress. Free tier gives 3 chains, token gating, crypto payments, and wallet-based login. Upgrade to Pro for all 55 chains and x402 marketplace.


Quick Install​

# Via WP Admin
1. Download walletpress-plugin.zip from walletpress.cc
2. WP Admin → Plugins → Add New → Upload Plugin
3. Activate → Settings → WalletPress → Enter API key
4. Done. Shortcodes work immediately.
# Via WP-CLI
wp plugin install https://walletpress.cc/downloads/walletpress-plugin-latest.zip --activate
wp walletpress config set api_key wp_live_EXAMPLE

What It Does​

Token Gating​

Restrict content, pages, products, or entire sites to token holders.

// Shortcode
[walletpress_gate token="0x0000000000000000000000000000000000000000" network="ethereum" amount="1"]
<p>This content is for token holders only.</p>
[/walletpress_gate]

// PHP
if (walletpress_user_has_token('0x742d35...', 'ethereum', 1)) {
// Show gated content
}

Supports: ERC-20, ERC-721, ERC-1155, SPL tokens, native coins.

Crypto Payments​

Accept USDC, USDT, ETH, SOL, and 50+ tokens directly on your site.

// Shortcode — payment button
[walletpress_pay amount="29.99" currency="USDC" chain="base" success_url="/thank-you"]
[walletpress_pay amount="0.01" currency="ETH" chain="ethereum" metadata='{"order_id": 12345}']

// PHP — custom integration
$payment = walletpress_create_payment([
'amount' => 29.99,
'currency' => 'USDC',
'chain' => 'base',
'success_url' => '/thank-you',
'metadata' => ['order_id' => 12345]
]);
// Returns: payment_url, invoice_id, expires_at

Settlement: USDC on Base/Solana/Arbitrum → your wallet in seconds. No Stripe, no 2.9% + $0.30.

Wallet Login (Web3 Auth)​

Replace email/password with wallet signatures.

// Shortcode — login button
[walletpress_login redirect="/dashboard"]

// PHP — custom flow
$nonce = walletpress_get_nonce(); // Returns SIWE message
// User signs in their wallet (MetaMask, Phantom, etc.)
$user = walletpress_verify_signature($signature, $nonce);
// Returns: WP_User object, logged in

Standards: SIWE (EIP-4361) for EVM, Solana Wallet Adapter for Solana.


Free vs Pro​

See pricing table below.


Installation​

Requirements​

  • WordPress 6.0+
  • PHP 8.1+
  • HTTPS (required for wallet connections)
  • openssl PHP extension
  • json PHP extension

API Key Setup​

  1. Get API key from walletpress.cc/dashboard
  2. WP Admin → WalletPress → Settings → API Key
  3. Paste key → Save
  4. Test connection → "Connected to WalletPress Pro"

Shortcodes Reference​

Token Gating​

// Basic
[walletpress_gate token="0x..." network="ethereum"]

// With amount
[walletpress_gate token="0x..." network="ethereum" amount="10"]

// NFT gating
[walletpress_gate token="0x..." network="ethereum" standard="erc721" token_id="123"]

// Custom message
[walletpress_gate token="0x..." network="ethereum"]
<div class="premium-content">Members only!</div>
[/walletpress_gate]

// Redirect if not eligible
[walletpress_gate token="0x..." network="ethereum" redirect="/upgrade"]

Payments​

// Simple
[walletpress_pay amount="9.99" currency="USDC" chain="base"]

// With metadata
[walletpress_pay amount="49.00" currency="USDC" chain="base"
success_url="/thank-you?order={order_id}"
metadata='{"product_id": "course-101"}']

// Subscription (Pro only)
[walletpress_subscribe amount="29.00" currency="USDC" chain="base"
interval="month" trial_days="7"]

Wallet Login​

// Button
[walletpress_login text="Connect Wallet" redirect="/dashboard"]

// With custom networks
[walletpress_login networks="ethereum,polygon,base,solana"]

// Profile display
[walletpress_profile show_address="true" show_balance="true" show_ens="true"]

WooCommerce Integration (Pro)​

// Enable in WP Admin → WalletPress → WooCommerce
// Adds payment gateway: "WalletPress Crypto"

// Supported:
// - One-time payments
// - Subscriptions (WooCommerce Subscriptions)
// - Pre-orders
// - Deposits
// - Refunds (auto via x402)

Hooks:

add_action('walletpress_payment_completed', function($payment) {
// $payment: ['invoice_id', 'amount', 'currency', 'chain', 'tx_hash', 'order_id']
wc_create_order([...]);
});

add_action('walletpress_payment_failed', function($error) {
// Log, notify admin, etc.
});

Elementor & Gutenberg Blocks (Pro)​

Elementor Widgets:

  • WalletPress Token Gate
  • WalletPress Pay Button
  • WalletPress Login
  • WalletPress Profile

Gutenberg Blocks:

  • /walletpress-gate
  • /walletpress-pay
  • /walletpress-login
  • /walletpress-profile

Drag, drop, configure — no code needed.


Webhooks (Pro)​

Configure in WP Admin → WalletPress → Webhooks:

EventPayload
payment.completed{invoice_id, amount, currency, chain, tx_hash, order_id}
payment.failed{invoice_id, error, attempt}
payment.refunded{invoice_id, refund_tx_hash}
user.wallet_connected{user_id, address, chain}
user.token_verified{user_id, token, network, balance}
gate.access_granted{user_id, post_id, token}
gate.access_denied{user_id, post_id, token, reason}

Security: All webhooks signed with X-WalletPress-Signature (HMAC-SHA256).

// Verify in your endpoint
$signature = $_SERVER['HTTP_X_WALLETPRESS_SIGNATURE'];
$payload = file_get_contents('php://input');
$expected = hash_hmac('sha256', $payload, $WEBHOOK_SECRET);
if (!hash_equals($expected, $signature)) {
http_response_code(401);
exit;
}

Template Overrides​

Copy templates to your theme:

your-theme/
└── walletpress/
├── gate.php // Token gate content wrapper
├── pay-button.php // Payment button
├── login-form.php // Login form
├── profile.php // User profile
└── email/
├── payment-received.php
├── payment-failed.php
└── wallet-connected.php

Multisite Support​

// Network activate → each site gets own settings
// Network admin can set default API key
// Per-site override in site's WP Admin

Performance​

  • Caching: Token balances cached 5 min (configurable)
  • Ajax: All wallet interactions async
  • Assets: ~15KB CSS + JS (deferred, no jQuery)
  • Database: Custom tables, indexed for speed

Troubleshooting​

IssueFix
"Invalid API key"Check key in WalletPress dashboard, regenerate if needed
"Wallet not connecting"Ensure HTTPS, check browser console for CORS errors
"Payment stuck pending"Check webhook delivery in WP Admin → WalletPress → Logs
"Token gate not working"Clear cache, verify token address + network match exactly
"WooCommerce gateway missing"Ensure Pro license active, flush rewrite rules

Next​