YAK:// Protocol
Mesh-Native URL Scheme
Custom URL protocol for mesh-native addressing. Escape HTTP entirely with content-addressed, bookmark-enhanced navigation.
v2.8.2URL Structure
yak://dashboard — Built-in node dashboardyak://peers — Connected peers listyak://content/abc123 — Content by hashyak://mybookmark — Personal bookmarkyak://node-id/path — Remote node contentBuilt-in Routes
| URL | Description |
|---|---|
| yak://dashboard | Node monitoring dashboard |
| yak://peers | Connected peer list |
| yak://oracle | Oracle status and integrity |
| yak://network | Network identity info |
| yak://content/<hash> | Fetch content by hash |
| yak://geo | Geographic proof status |
Local Bookmarks
Personal "pet names" for YAK:// addresses. No global registry — bookmarks are local to your node.
# Add a bookmark
yakmesh bookmark add docs yak://site/documentation
# List all bookmarks
yakmesh bookmark list
# Use the bookmark
yakmesh open yak://docs
# Remove a bookmark
yakmesh bookmark rm docs
# List bookmarks
GET /bookmarks
# Add bookmark
POST /bookmarks
{ "name": "docs", "target": "yak://site/documentation" }
# Get specific bookmark
GET /bookmarks/docs
# Remove bookmark
DELETE /bookmarks/docs
Remote Bookmarks (Mesh Sync)
Share bookmark lists between nodes via gossip protocol. Subscribe to trusted nodes and receive their bookmarks automatically.
Subscribe
Follow another node's bookmarks. Their updates sync to you automatically.
Publish
Share your bookmarks with the mesh. Subscribers receive your updates.
import { RemoteBookmarkSync } from 'yakmesh/protocol/yak-protocol';
const sync = new RemoteBookmarkSync({ nodeId: 'my-node' });
// Subscribe to a trusted node's bookmarks
await sync.subscribe('trusted-node-id');
// Publish your bookmarks to the mesh
await sync.publish('my-list', ['docs', 'tools', 'friends']);
// Resolve a remote bookmark
const target = sync.resolveRemote('docs');
// Priority: Local bookmarks always override remote
# Remote bookmark status
GET /bookmarks/remote/status
# List remote bookmarks
GET /bookmarks/remote
# Subscribe to a node
POST /bookmarks/remote/subscribe
{ "nodeId": "node-abc-123" }
# Publish your bookmarks
POST /bookmarks/remote/publish
{ "listName": "public", "bookmarks": ["docs", "tools"] }
DOKO Revocation
Emergency revocation system for compromised DOKO identities. Recover from key compromise without losing your network presence.
Self-Revocation
Sign revocation with your own key (if still accessible)
Emergency Certificate
Pre-generated "break-glass" certificate stored offline
Mesh Broadcast
Revocation propagates via gossip to all peers
KEY_COMPROMISED — Key leaked/stolenDOKO_SUPERSEDED — Replaced with new DOKOIDENTITY_RETIRED — Voluntary retirementLOST_ACCESS — Cannot access keysAFFILIATION_ENDED — Left organizationimport { DOKORevocation, REVOCATION_REASONS } from 'yakmesh/security/doko-identity';
// Generate emergency cert when creating DOKO (store offline!)
const emergencyCert = DOKORevocation.generateEmergencyCertificate(doko, privateKey);
// Self-revoke if key is compromised but accessible
const revocation = DOKORevocation.createSelfRevocation(
doko,
privateKey,
REVOCATION_REASONS.KEY_COMPROMISED
);
// Activate emergency revocation if key is lost
DOKORevocation.activateEmergencyRevocation(emergencyCert);
// Check if a DOKO is revoked
const isRevoked = DOKORevocation.isRevoked(dokoId);
SSL/TLS Certificate Binding
Bind SSL certificates to DOKO identities for enhanced domain verification.
Cryptographic Chain
import { DOKOCertBinding } from 'yakmesh/security/doko-identity';
// Compute certificate fingerprint
const fingerprint = DOKOCertBinding.computeFingerprint(pemCertificate);
// Create SSL binding for domain
const binding = DOKOCertBinding.createBinding({
domain: 'example.com',
fingerprint,
expires: Date.now() + 365 * 24 * 60 * 60 * 1000
});
// Add binding to DOKO
DOKOCertBinding.addBinding(doko, binding);
// Verify certificate matches binding
const valid = DOKOCertBinding.verifyBinding(binding, certificate);