“AttentionMeter Engagement Analytics” has been added to your cart. View cart
Web3 Block Pack is a Gutenberg block library that provides essential crypto blocks for WordPress, including live token prices, wallet connect, and token-gated content.
Features
Price & Market Cap — Display live token prices and market cap with customizable attributes.
Wallet Connect — Connect wallets easily with support for EVM and Solana chains.
Token Gate — Securely gate content based on wallet holdings with server-side verification.
Activity Feed — Show real-time on-chain activity for your contracts.
Countdown Timer — Create countdowns based on blockchain height, not wall clock.
How it works
Install the plugin
Install the plugin and activate it in WordPress.
Use Gutenberg blocks or Elementor widgets to add crypto features.
Configure settings for price APIs and RPC endpoints.
Connect wallets using the Wallet Connect feature.
Display token-gated content based on user wallet holdings.
Requirements
WordPress 6.5 or newer
PHP 8.1 or newer
Tested up to WordPress 6.7
Installation
Download the Web3 Block Pack zip file.
Upload it to your WordPress plugins directory.
Activate the plugin from the WordPress admin panel.
Frequently asked questions
What is Web3 Block Pack?
A library of Gutenberg blocks for WordPress focused on crypto features.
Do I need coding skills to use this plugin?
No, it is designed for use without any coding.
Which blockchain networks does it support?
It supports Ethereum, Base, Arbitrum, Polygon, and Solana.
Can I customize the price API?
Yes, you can configure your own price API and RPC endpoints.
Is there a risk disclaimer included?
Yes, a risk disclaimer banner is automatically appended to relevant posts.
Changelog
1.0.0
First release of Web3 Block Pack. Requires WordPress 6.5 and PHP 8.1.
Added
Plugin bootstrap: header, constants (`WEB3_BLOCK_PACK_VERSION`, `…_OPTION`, `…_TRANSIENT_PREFIX`, `…_REST_NAMESPACE`, `…_BLOCK_NAMESPACE`), class includes, and the `web3-block-pack` text domain loaded from `/languages` on `plugins_loaded`.
Activation seeds a single option row, `web3_block_pack_settings`, with autoload `no`, and only when it is absent, so reactivating never overwrites configuration. Deactivation clears the scheduled quote-refresh hook and leaves settings in place.
Core singleton gated on an `enabled` master switch, firing `web3_block_pack_init` on `init`.
Settings data model with defaults for price provider, API base URL and key, fiat currency, enabled chains, per-chain RPC endpoints and keys, quote and chain cache TTLs, HTTP timeout, per-chain block times, disclaimer text, auto-disclaimer, Elementor bridge, gate session lifetime and uninstall behaviour. `price_api_key` and `rpc_keys` are declared write-only for the UI.
Settings screen at **Settings → Web3 Block Pack** (`options-general.php?page=web3-block-pack`) with `manage_options` enforced at menu registration, on render and on save, and an `admin-post` save handler verified by `check_admin_referer( 'web3_block_pack_save', 'web3_block_pack_nonce' )`.
Chain registry for Ethereum (1), Base (8453), Arbitrum One (42161), Polygon (137) and Solana, each with namespace, native symbol, decimals, explorer base URL and default block time, plus helpers for enablement, block time, explorer address and transaction URLs, and HTTPS-validated RPC endpoint and key resolution.
Input validators: EVM address regex, Solana base58 address length and alphabet checks, chain-aware address validation, HTTPS-only URL validation via `esc_url_raw()` plus `wp_http_validate_url()`, symbol and currency sanitisation, token-standard whitelist, integer range clamping, non-negative floats, decimal/hex token IDs, bounded hex and base58.
Transient cache in the `web3bp_` namespace with a bounded (600-key) purge index option so purging needs no raw SQL, week-long last-known-value retention for the stale-render path, a 60-second circuit breaker per upstream service, counter bumping for rate limits, and redacted upstream-error recording.
Guarded outbound HTTP layer: HTTPS-only, caller-supplied `sslverify`, `filename` and `stream` stripped, timeout clamped to the configured 2–15 second bound, redirects clamped to 0–2, 256 KB response cap, 64 KB request cap, `is_wp_error()` and 2xx status checks, `json_decode( $body, true )` with an array requirement, and scalar-only field extraction.
Per-client rate limiter: 120 public read requests and 30 gate requests per rolling 300-second window, keyed by a `wp_salt()`-hashed, truncated client address so no raw IP is stored.