Everything You Need for P2P Development
Stop fighting with WebRTC. Start shipping features.
True P2P Communication
Direct browser-to-browser and Node.js connections. No central server required for messaging or file transfer.
Passwordless Auth
Passkey and FIDO2 authentication made simple with VaultysId. Enable biometric login with just one line of code.
Batteries Included
Powered by VaultysId, the leading open-source Decentralized Identity System. Everything you need out of the box.
Lazy Loading Magic
Manage thousands of peers with zero overhead. Connections are established only when messages are exchanged.
Never Lose Messages
Automatic message queueing for offline peers. Messages are delivered seamlessly when peers reconnect. 100% delivery guarantee.
Your Infrastructure
Bring your own signaling server. Coming soon: Open-source signaling server with message relay capabilities!
Real-time Events
Event-driven architecture for real-time updates. Build reactive UIs with ease.
Enterprise-Grade P2P Infrastructure
Built for scale, powered by open standards, ready for production
Powered by VaultysId
Batteries Included! Built on VaultysId, the leading open-source Decentralized Identity System. Passkey and FIDO2 authentication has never been so easy!
- ✓ One-line passkey/FIDO2 authentication
- ✓ WebAuthn support out of the box
- ✓ W3C DID standard compliant
- ✓ Passwordless authentication
- ✓ Biometric login support
- ✓ Key rotation & recovery
Reliable Message Delivery
Never lose a message! Automatic queueing for offline peers ensures 100% delivery. Messages are seamlessly delivered when peers reconnect.
- ✓ Automatic offline queueing
- ✓ Seamless message delivery
- ✓ Persistent message storage
- ✓ Retry with exponential backoff
- ✓ Delivery confirmation
Your Infrastructure, Your Rules
Complete control over your P2P infrastructure.Coming soon: Open-source signaling server with message relay for ultimate reliability!
- ✓ Custom signaling servers
- ✓ Automatic message queueing
- 🔜 Open-source relay server
- 🔜 Message persistence options
- 🔜 Custom DID providers
See It In Action
// Enterprise-grade P2P with passwordless authentication
import { setupVaultysPeerSDK } from '@vaultys/peer-sdk';
import { VaultysId } from '@vaultys/id';
// Authenticate with passkey/FIDO2 with PRF extension - incredibly simple!
const identity = await VaultysId.createWebauthn(passkey: true, PRF: true)
console.log('Authenticated with DID:', identity.did);
console.log('No passwords needed! 🎉');
// Initialize with enterprise configuration
const peer = setupVaultysPeerSDK({
vaultysId: identity, // Use authenticated identity
// Coming soon: Bring your own DID system
// didProvider: new YourCustomDidProvider();
});
// Add thousands of contacts - no performance impact!
const contacts = await Promise.all(employeeDids.map(did => peer.addContact(did)));
console.log(`Added ${contacts.length} peers with zero overhead`);
// Connections only established when needed
// will ask for authentication through passkey the first time!
await peer.sendMessage(contacts[500].did, 'Meeting at 3pm');
// Connection authenticated NOW for peer 500 only!
🚀 Coming Soon: Open-Source Signaling Server
Taking P2P reliability to the next level with message relay capabilities
Message Relay Server
We're open-sourcing our production-grade signaling server that doubles as a message relay. Ensure 100% message delivery even when peers are offline for extended periods.
- 📬 Store messages for offline peers
- 🔄 Automatic retry and delivery
- 💾 Configurable persistence backends
- 🔐 End-to-end encryption preserved
- 📊 Built-in monitoring and analytics
// Coming Soon: Deploy your own relay server
// docker run -p 9000:9000 vaultys/signaling-relay
const peer = setupVaultysPeerSDK({
// Use your own relay server
relay: {
host: 'your-relay.com',
port: 9000,
},
// Enable relay features
relay: {
enabled: true,
maxOfflineTime: '7d', // Store messages for 7 days
maxMessageSize: '10MB', // Support large files
encryptAtRest: true, // Extra security
}
});
// Messages automatically relay through server if peer is offline
await peer.sendMessage(did, 'Delivered even if offline for days!');
// Track relay status
peer.on('message-relayed', (msg) => {
console.log('Message stored on relay for delivery');
});
What Will You Build?
From simple chat apps to complex collaborative platforms
💬 Chat Applications
Build WhatsApp-like messaging apps with end-to-end encryption
View Example →📁 File Sharing
Create Dropbox-style file sharing without the middleman
View Example →🎮 Multiplayer Games
Low-latency game networking for real-time gameplay
View Example →📹 Video Calls
Add Zoom-like video conferencing to your app
View Example →🤝 Collaboration Tools
Real-time collaborative editing and whiteboarding
View Example →🔒 Secure Communication
Private, encrypted channels for sensitive data
View Example →Simple yet Powerful API
Everything you need in a clean, intuitive interface
📤 Send Files
const file = document.querySelector('input').files[0];
const buffer = await file.arrayBuffer();
await peer.sendMessage(friendDid, 'Check this out!', 'file', {
name: file.name,
size: file.size,
type: file.type,
data: buffer
});
📞 Make Calls
// Get user media
const stream = await navigator.mediaDevices.getUserMedia({
audio: true,
video: true
});
// Start a video call
const call = await peer.makeCall(friendDid, stream, 'video');
// Handle call events
call.on('stream', (remoteStream) => {
videoElement.srcObject = remoteStream;
});
👥 Manage Groups
// Create a group
const group = await peer.createGroup('Dev Team');
// Add members
await peer.addPeerToGroup(aliceDid, group.id);
await peer.addPeerToGroup(bobDid, group.id);
// Broadcast to group
for (const member of group.members) {
await peer.sendMessage(member, 'Team meeting at 3pm!');
}
🔐 Passkey Authentication
// VaultysId makes passkey auth incredibly simple!
import { VaultysId } from '@vaultys/id';
// Register with passkey (one-time setup)
const identity = await VaultysId.register({
username: 'alice',
displayName: 'Alice Smith',
passkey: true // That's it! FIDO2/WebAuthn enabled
});
// Login with passkey (subsequent logins)
const identity = await VaultysId.authenticate({
passkey: true // Biometric or security key auth
});
// Use authenticated identity with P2P
const peer = setupVaultysPeerSDK({ identity });
await peer.initialize(identity.did);
// Your users never need passwords again! 🚀
📬 Offline Message Queueing
// Messages queue automatically for offline peers
const peer = setupVaultysPeerSDK({
messageQueue: {
enabled: true, // Auto-queue messages
maxQueueSize: 1000, // Queue up to 1000 msgs/peer
persistQueue: true, // Survive app restarts
retryStrategy: 'exponential' // Smart retry
}
});
// Send messages - no need to check if peer is online!
await peer.sendMessage(friendDid, 'Hello!');
await peer.sendMessage(friendDid, 'Are you there?');
// Messages deliver automatically when peer connects
peer.on('peer-online', (did) => {
console.log(`Delivering ${queue.length} queued messages`);
});
// Track delivery status
peer.on('message-delivered', (msg) => {
console.log('✅ Message delivered:', msg.id);
});
Loved by Developers
Join thousands of developers building the decentralized future
"Vaultys Peer SDK made it incredibly easy to add P2P messaging to our app. What would have taken weeks took just days."
"The automatic reconnection and health monitoring features saved us countless hours of development time."
"Finally, a P2P SDK that just works! Great documentation and examples made integration a breeze."
Ready to Build Something Amazing?
Join the P2P revolution. Get started in minutes, not hours.
npm install @vaultys/peer-sdk
import { setupVaultysPeerSDK } from '@vaultys/peer-sdk';
const peer = setupVaultysPeerSDK();
Start building your P2P app! 🚀