=== SkyeGate === Contributors: skyemeta Tags: token-gating, crypto, wallet, nft, web3 Requires at least: 6.0 Tested up to: 6.9 Requires PHP: 7.4 Stable tag: 1.1.0 License: GPL-2.0-or-later License URI: https://www.gnu.org/licenses/gpl-2.0.html Condition-based access for WordPress. Gate content by token balance, NFT ownership, or on-chain attestations. 32 blockchains, free. == Description == SkyeGate is condition-based access for WordPress: recognition, not passwords. Visitors connect a wallet, SkyeGate checks the conditions you set through InsumerAPI (the condition-based access API), and qualifying visitors see your content. Nothing to sign up for, nothing to leak, and no personal data collected. Your site never sees balances or holdings, just a signed yes or no. **Free and fully functional.** Install, add a shortcode, and start gating content immediately. No API key or account required. = What you can gate by = * **Token balance**: require visitors to hold a minimum amount of any ERC-20 or SPL token * **NFT ownership**: require visitors to own an NFT from a specific collection * **EAS attestations**: require on-chain attestations via Ethereum Attestation Service * **Native tokens**: gate by ETH, SOL, POL, and other native chain tokens = Supported chains = Ethereum, Solana, Polygon, Arbitrum, Base, Optimism, BNB Chain, Avalanche, XRP Ledger, and 23 more (32 blockchains total). = How it works = 1. Add the `[skyegate]` shortcode around any content 2. Visitors see a "Connect Wallet" button 3. After connecting, SkyeGate verifies their holdings via InsumerAPI 4. If they qualify, the gated content is revealed (loaded server-side, not in page source) = Wallets supported = MetaMask, Phantom (EVM + Solana), Coinbase Wallet, Coinbase Smart Wallet (passkey, no extension needed), and any wallet that supports EIP-6963. = Need more? SkyeGate Pro = The free plugin runs one condition per gate, forever. [SkyeGate Pro](https://skyemeta.com/skyegate/) stacks up to 10 conditions per gate, adds Farcaster conditions, covers 32 chains, and one license works on both WordPress and Vercel. SkyeGate is part of SkyeMeta's Recognition Network: one membership, recognized everywhere. == Installation == 1. Upload the `skyegate` folder to `/wp-content/plugins/` or install via the WordPress plugin directory 2. Activate the plugin through the Plugins menu 3. Add a `[skyegate]` shortcode to any post or page, it works immediately 4. Optionally configure default chain, button text, and gate style under Settings > SkyeGate == Frequently Asked Questions == = Do I need an API key to get started? = No. SkyeGate includes InsumerAPI verification out of the box. No API key or account required. = What wallets are supported? = MetaMask, Phantom (EVM + Solana), Coinbase Wallet, and any wallet that supports EIP-6963. Visitors without a wallet extension can use a Coinbase Smart Wallet: a passkey wallet that opens in a popup, no install required. = Can I gate by Solana tokens? = Yes. Use `chain="solana"` in the shortcode. Phantom wallet connects automatically for Solana verification. = Is the gated content truly hidden? = Yes. Gated content is stored server-side and only delivered via AJAX after wallet verification passes. It is not present in the page source. = Is user data collected? = No. SkyeGate uses InsumerAPI to check on-chain data (token balances, NFT ownership). Verification results are cryptographically signed (ECDSA + JWKS). No personal information, email addresses, or wallet contents are stored. == External Services == This plugin connects to two external services for wallet verification. No personal data is collected or transmitted; only public blockchain wallet addresses and your site domain are sent. = SkyeGate API (skyemeta.com) = When a visitor connects their wallet, the plugin sends a POST request to `https://skyemeta.com/api/verify` with the visitor's public wallet address, the gate conditions you configured, and your site domain. The service returns a signed verification result. This happens each time a visitor attempts to access gated content. * [SkyeGate Terms of Service](https://skyemeta.com/terms/) * [SkyeGate Privacy Policy](https://skyemeta.com/privacy/) = InsumerAPI (api.insumermodel.com) = To verify that the returned attestation was genuinely signed by InsumerAPI and has not been tampered with, the plugin fetches a public signing key (JWKS) from `https://api.insumermodel.com/.well-known/jwks.json`. No user data is sent; this is a public key fetch, cached for 24 hours. * [InsumerAPI Terms of Service](https://insumermodel.com/terms-of-service) * [InsumerAPI Privacy Policy](https://insumermodel.com/privacy-policy) == Source Code == The unminified source for `public/js/skyegate-wallet.js` is included in the plugin at `src/wallet.js`. The minified file is built with Vite using `npm run build`. The build configuration is in `package.json` and `vite.config.js`. == Screenshots == 1. The SkyeGate connect wallet prompt on the frontend 2. Gated content revealed after wallet verification 3. Settings page with configuration options == Changelog == = 1.1.0 = * New: Coinbase Smart Wallet (passkey) support. Visitors without a wallet extension can connect with a passkey popup; the Coinbase Wallet SDK ships inside the plugin and loads only when chosen (no CDN) * Clearer guidance when no browser wallet is detected = 1.0.4 = * Single-condition gates on 31 blockchains (token balance, NFT ownership, EAS attestation) * Multi-wallet: MetaMask, Phantom, Coinbase Wallet, and any wallet supporting EIP-6963 * Cryptographically signed verification results (ECDSA + JWKS), verified on the server before content release * Server-side content delivery: gated HTML is never present in the page source * Per-visitor session binding so a verification in one browser does not unlock gated content in another * Built-in caching to minimize verification calls