A secure, decentralized protocol for WordPress administrators to connect their sites and build a network of trust through cryptographic handshakes.
Peace Protocol enables WordPress site administrators to authenticate as their website and send cryptographically signed "peace" messages to other WordPress sites running the same protocol. This creates a decentralized network where admins can establish trust relationships, share peace, and enable cross-site interactions.
- WordPress Administrators Only: This plugin is designed exclusively for WordPress site administrators
- Site-Level Authentication: Admins authenticate as their website, not as individual users
- No Public Registration: No public user registration system - only federated users created after secure handshakes
- Cryptographic Tokens: Each site uses cryptographically secure tokens for authentication
- Limited Permissions: Federated users can only comment on posts, no admin access
- Automatic Cleanup: Federated users are removed when the plugin is uninstalled
- Role-Based Security: Federated users have the
federated_peer
role with minimal capabilities - No Dashboard Access: Federated users cannot access WordPress admin areas
- Cryptographically Secure: Tokens are generated using WordPress's secure password generator
- Token Rotation: Support for multiple tokens with automatic rotation
- Secure Storage: Tokens are stored securely in WordPress options
- Expiring Authorization Codes: Authorization codes expire after 5 minutes
- Send Peace: Send cryptographically signed peace messages to other WordPress sites
- Peace Log Wall: Display received peace messages using the
[peaceprotocol_log_wall]
shortcode - Automatic Feed Subscription: Automatically subscribe to peace feeds from sites you connect with
- Token Management: Generate, rotate, and manage authentication tokens
- User Banning System: Ban problematic users with reason tracking
- IndieAuth Support: Alternative authentication using the IndieAuth standard with PKCE
- Cross-Site Authentication: Users from remote sites can comment as their site identity
- Seamless Integration: Works with existing WordPress comment systems
- Secure Handshake: Only sites completing the cryptographic handshake can create federated logins
- Automatic User Creation: Creates federated users automatically after successful handshake
- Dual Authentication: Support for both Peace Protocol tokens and IndieAuth standard
- Token Management: Generate, view, and delete authentication tokens
- Feed Management: View and manage subscribed peace feeds
- Peace Log: View all received peace messages in the admin area
- User Banning: Ban users with reason tracking and management
- Settings Configuration: Configure button position and auto-insertion
- Peace Button: Floating peace hand button (โ๏ธ) that can be positioned anywhere
- Auto-Insertion: Automatically insert the peace button on your site
- Shortcode Support: Use
[peaceprotocol_hand_button]
to manually place the button - Responsive Design: Works on all devices and screen sizes
- Dark Mode Support: Automatically adapts to user's color scheme preference
- Choice Modal: User-friendly modal to choose between Peace Protocol and IndieAuth authentication
- REST API: Modern REST API endpoints for all functionality
- AJAX Fallback: AJAX endpoints for sites with REST API disabled
- CORS Support: Proper CORS headers for cross-site communication
- Translation Ready: Full internationalization support with multiple languages
- Custom Post Types: Uses custom post types for peace logs
- IndieAuth Endpoints: Full IndieAuth specification compliance with authorization and token endpoints
- PKCE Support: Proof Key for Code Exchange for enhanced security
- Install & Activate: Install the plugin and activate it on your WordPress site
- Generate Tokens: Go to Settings > Peace Protocol and generate authentication tokens
- Send Peace: Use the peace button to send cryptographically signed peace to other sites
- Build Network: Connect with other WordPress sites and build a network of trust
- User from Site A visits Site B and wants to comment
- User clicks "Send Peace" button on Site B
- User chooses "Login with Peace Protocol" from the choice modal
- Site B redirects to Site A for authentication
- Site A validates the user and generates an authorization code
- User is redirected back to Site B with the authorization code
- Site B automatically logs in the user as a federated user from Site A
- User can comment on Site B as "Logged in as sitea.com"
- User from Site A visits Site B and wants to comment
- User clicks "Send Peace" button on Site B
- User chooses "Login with IndieAuth" from the choice modal
- Site B discovers IndieAuth endpoints on Site A
- Site B redirects to Site A's IndieAuth authorization endpoint
- Site A validates the user and generates an authorization code
- User is redirected back to Site B with the authorization code
- Site B exchanges the code for an access token using PKCE
- Site B automatically logs in the user as a federated user from Site A
- User can comment on Site B as "Logged in as sitea.com"
- Cryptographic Handshake: Sites exchange cryptographically signed tokens
- Token Validation: Each peace message is validated using secure tokens
- Federated User Creation: Only after successful handshake are federated users created
- Limited Permissions: Federated users have minimal permissions and no admin access
- Automatic Cleanup: All federated data is removed on plugin uninstall
- WordPress: 6.0 or higher
- PHP: 7.4 or higher
- Permissions: Administrator access to WordPress site
- Network: Sites must be able to communicate via HTTP/HTTPS
- Upload the plugin files to
/wp-content/plugins/peace-protocol/
- Activate the plugin through the 'Plugins' screen in WordPress
- Configure by going to Settings > Peace Protocol
- Generate Tokens for site authentication
- Customize button position and auto-insertion settings
// The peace button is automatically inserted on your site
// Or use the shortcode: [peaceprotocol_hand_button]
// Display peace log wall: [peaceprotocol_log_wall]
- Generate at least 3 tokens for security
- Rotate tokens regularly
- Keep tokens secure and private
- Delete old tokens when no longer needed
- Click the peace button (โ๏ธ) on your site
- Enter the target site URL
- Add an optional note (max 50 characters)
- Click "Send Peace"
- View subscribed feeds in Settings > Peace Protocol
- Unsubscribe from feeds you no longer want to follow
- Feeds are automatically added when you send peace to new sites
- โ No Public User Registration: Only WordPress administrators can use this plugin (federated users are created automatically after secure handshakes)
- โ No Admin Access for Federated Users: Federated users cannot access WordPress admin
- โ No Database Access: Federated users cannot access sensitive site data
- โ No File System Access: Federated users cannot upload or modify files
- โ No Plugin/Theme Management: Federated users cannot install or modify plugins/themes
- โ Site-to-Site Authentication: WordPress admins authenticate as their website
- โ Cryptographic Verification: All peace messages are cryptographically signed
- โ Limited Federated Access: Federated users can only comment on posts
- โ Automatic Cleanup: All federated data is removed on uninstall
- โ Secure Token Management: Tokens are cryptographically secure and can be rotated
Peace Protocol is fully translation-ready and includes translations for:
- English (default)
- Spanish (es_ES)
- French (fr_FR)
- Japanese (ja)
- Chinese Simplified (zh_CN)
- Post Liking: Like posts across federated sites
- Enhanced Commenting: Rich comment interactions
- Site Discovery: Automatic discovery of Peace Protocol sites
- Advanced Federation: More sophisticated federated features
We welcome contributions! Please see our contributing guidelines and code of conduct.
This project is licensed under the GPL v2 or later - see the LICENSE file for details.
For support, questions, or security concerns:
- GitHub Issues: Create an issue
- Author Website: wilcosky.com
- Security: For security issues, please contact the author directly
Peace Protocol - Building a decentralized network of trust, one WordPress site at a time. โ๏ธ