Skip to main content

Build P2P Apps
That Companies ❤️

Powered by VaultysId
Scale to thousand of peers with lazy loading
Passkey/FIDO2 auth made simple
Bring your own signaling server
Post Quantum ready

1000sPeers Supported
OfflineQueue Support
ZeroPasswords Needed
app.ts

import { setupVaultysPeerSDK } from '@vaultys/peer-sdk';
import { VaultysId } from '@vaultys/id'; // Batteries included!

// Initialize with VaultysId
// using hybrid post-quantum cryptography
const bob = await VaultysId.generatePerson("dilithium_ed25519");

// create a peer in the network
const peer = setupVaultysPeerSDK({
vaultysId: bob,
// Optional: bring your own signaling server
relay: { host: 'your-server.com' }
});

// Connect lazily - no overhead until messages are sent
await peer.initialize();
const alice = await peer.addPeer('<alice did>');

// Connection established only when needed!
// Offline? No problem! Messages queue automatically
await peer.sendMessage(alice.did, 'Hello P2P World! 🌍');

// Manage thousands of peers effortlessly
thousandsOfDids.forEach(did => peer.addPeer(did));

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');
});

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."

👩‍💻
Sarah Chen
CTO at TechStart

"The automatic reconnection and health monitoring features saved us countless hours of development time."

👨‍💻
Marcus Johnson
Lead Developer at P2P Labs

"Finally, a P2P SDK that just works! Great documentation and examples made integration a breeze."

🧑‍💻
Alex Rodriguez
Indie Developer

Ready to Build Something Amazing?

Join the P2P revolution. Get started in minutes, not hours.

1
npm install @vaultys/peer-sdk
2
import { setupVaultysPeerSDK } from '@vaultys/peer-sdk';
const peer = setupVaultysPeerSDK();
3

Start building your P2P app! 🚀