
Sylvester Rewilding Bringing Blockchain to Conservation with WordPress
How a custom WordPress plugin made Web3 accessible for a rewilding non-profit, enabling land token sales with fiat and crypto payments
The Challenge
Sylvester Rewilding is a German non-profit on a mission to create collectively owned wildlife sanctuaries across Europe. Their funding model is built on WildTokens — NFTs that represent guardianship of actual rewilding land. Token holders don’t just donate. They become members of a democratic community that governs how their land is restored.
The concept was compelling. The technical barrier was not. Sylvester’s team are ecologists and community builders, not blockchain engineers. Their website ran on WordPress. Their audience included people who had never connected a crypto wallet. And yet the entire funding model depended on making token purchases feel as natural as buying a product online.
They needed a solution that met people where they were: a WordPress plugin that could sell blockchain tokens to anyone — whether they paid with a credit card or ETH.
The Approach
The core tension was clear: blockchain technology is powerful but alienating. WordPress is familiar but not built for Web3. The plugin needed to bridge both worlds without compromising either.
The strategy:
- WordPress-native distribution — A standard plugin that any WordPress admin can install, configure through a settings page, and embed via shortcodes. No custom themes, no server modifications, no devops.
- Invisible complexity — Social login, in-app wallets, and fiat payments mean users never need to understand gas fees, seed phrases, or wallet extensions. The blockchain is the infrastructure, not the interface.
- Configurable by non-developers — Chain ID, contract address, token metadata — all managed through the WordPress admin panel. Sylvester can switch networks or update their token presentation without touching code.
Technical Implementation
React Inside WordPress
WordPress and React don’t naturally coexist. The plugin solves this by building the entire frontend as a self-contained IIFE bundle using Vite. Three independent React applications mount to DOM elements created by WordPress shortcodes:
[rewilding_buy]— The token purchase widget[rewilding_member]— The member area dashboard[rewilding_connect]— A standalone wallet connection button
Each mount point is wrapped in error boundaries, secure context checks, and configuration validation. If something goes wrong — missing HTTPS, unconfigured contract, network error — the user sees a helpful message, not a blank div.
Tailwind CSS handles styling with a custom rw- prefix to prevent collisions with WordPress themes. The result is a plugin that looks intentional inside any theme without overriding its styles.
Thirdweb SDK as the Web3 Layer
Rather than building wallet connection, payment processing, and contract interaction from scratch, the plugin integrates thirdweb’s SDK v5 as a unified Web3 layer.
The ConnectButton component supports five wallet strategies simultaneously:
- In-app wallets with social login (Google, Apple, Facebook, email, phone)
- MetaMask
- Coinbase Wallet
- WalletConnect
- MEW Wallet
For users who don’t have a wallet and don’t want one, the social login path creates an in-app wallet transparently. They authenticate with Google, and behind the scenes, thirdweb provisions a wallet. The user never sees a seed phrase.
Fiat and Crypto Payments
This is where the plugin delivers its most important feature. The PayEmbed component from thirdweb handles both payment rails:
- Credit card — Users pay in their local currency. The payment processor handles the conversion and mints the token on-chain.
- Crypto — Users pay directly from their connected wallet on the configured chain.
Both paths result in the same on-chain transaction: an ERC-721 token claimed to the buyer’s wallet. The buy widget shows the next available token with its metadata — name, image, on-chain attributes — and lets users select a quantity before checkout.
This dual-payment approach was critical. Sylvester’s audience spans crypto-native supporters and environmentally motivated donors who have never interacted with a blockchain. Excluding either group would have undermined the model.
The Member Area
Once users own tokens, the member area becomes their dashboard. It fetches all NFTs owned by the connected wallet and displays them in a responsive grid. Each card shows the token’s image, name, and ID.
Token holders can transfer their WildTokens to other addresses directly from the member area. The transfer modal validates Ethereum addresses and handles the ERC-721 transferFrom transaction with proper loading and error states.
The member area serves a deeper purpose beyond asset management: it’s proof of membership. Holding a WildToken means belonging to Sylvester’s governance community, and the member area makes that tangible.
Multi-Chain Architecture
The plugin isn’t locked to a single blockchain. The WordPress settings page offers a dropdown of supported chains — Ethereum, Base, Polygon, Arbitrum, Optimism, BNB Chain, Avalanche, plus testnets. Sylvester currently deploys on Base for its low transaction fees, but could migrate to another chain by changing a single setting.
The thirdweb wrapper lazily initializes clients and contracts, with predefined chain configurations for Base and Polygon and dynamic resolution for everything else. Switching chains doesn’t require a new build or deployment.
WordPress Admin Integration
The plugin adds a “Rewilding Token” settings page with two sections:
Thirdweb Configuration — Client ID, chain selection, and contract address. A setup checklist guides administrators through creating a thirdweb project, enabling in-app wallets, and configuring allowed domains.
Token Display — Name, description, and image URL that serve as fallbacks when on-chain metadata isn’t available. This means the buy widget looks complete even before the smart contract is fully configured.
All settings use WordPress’s native Settings API with proper sanitization and validation. The shortcodes check configuration state and show admin-only warnings if something is missing — helpful during setup, invisible to visitors.
Results
The plugin transformed what would have been a custom Web3 application into something a WordPress site can offer out of the box:
- Dual payment rails — Fiat and crypto buyers participate equally
- Zero Web3 knowledge required — Social login and credit card payments remove every blockchain-specific barrier
- WordPress-native — Install, configure, embed. No infrastructure beyond what Sylvester already had.
- Chain-agnostic — Deployed on Base today, portable to any EVM chain tomorrow
- Transferable tokens — Members can move their WildTokens freely, enabling a secondary community dynamic
For Sylvester Rewilding, the plugin means their ecological mission isn’t gated by technical literacy. A supporter in rural Galicia can buy a WildToken with a credit card and a Google login. A crypto-native contributor in Berlin can pay with ETH from their MetaMask. Both end up in the same community, governing the same land.
Technical Stack
- Plugin Runtime: WordPress (PHP) + React 18 (TypeScript)
- Build: Vite 6 (IIFE bundle)
- Web3: thirdweb SDK v5 (ERC-721, PayEmbed, In-App Wallets)
- Styling: Tailwind CSS 3 (prefixed, isolated)
- Blockchain: Base (EVM-compatible, configurable)
- Payments: Fiat via thirdweb Pay, Crypto via connected wallets
The stack choices were deliberate. WordPress because that’s where the client lives. React because thirdweb’s SDK is React-first. Vite because it produces a single, self-contained bundle that WordPress can enqueue like any other script. No build servers, no CDN dependencies, no external runtime.
Building blockchain tooling that lives inside WordPress sounds contradictory. But that’s exactly the point. The best infrastructure disappears. Sylvester’s supporters don’t interact with a Web3 app — they interact with a WordPress site that happens to mint NFTs. And that’s how you bring blockchain to conservation.
Interested in making Web3 technology accessible for your organization? Let’s talk about what a custom integration could look like for your use case.