Deaddrop: Threshold Secret Drops
Split secrets across channels. Reconstruct only with quorum. Deaddrop uses XorIDA threshold sharing to split any secret into K-of-N shares distributed across independent channels — email, USB, QR code, verbal, physical media. No central server ever holds the complete secret. Any K-1 shares reveal zero information about the original. Not probabilistically. Unconditionally. Quantum-proof by construction.
Enterprise toolkit shipped:
@private.me/deaddrop-cli — 10-endpoint management server, 3-role RBAC, Docker deployment. Part of the Enterprise CLI Suite — 21 self-hosted servers, Docker-ready, air-gapped capable.
The Problem: Centralized Trust in Secret Exchange
Every existing approach to secret exchange requires trusting a server, a relay, or a network with the complete secret at some point during transit. That single point of trust is a single point of failure.
Signal disappearing messages still route through centralized servers that see metadata — who sent what, when, and to whom. OnionShare depends on Tor relay integrity and requires both parties to be online simultaneously. ProtonMail performs server-side encryption — your keys exist on their infrastructure, accessible to a subpoena or insider. Self-destructing links rely on the host server to actually delete the content and typically leave traces in CDN caches, backup systems, and access logs. In every case, a compromise at the center exposes everything.
The fundamental flaw is architectural: the complete secret exists in one place at one time. Any system that centralizes the secret — even temporarily — creates a window where a single breach, subpoena, or insider threat exposes the entire payload.
Competitive Failure Table
| Approach | Server Trust | Forward Secrecy | Offline Capable | Quantum-Safe |
|---|---|---|---|---|
| Signal Disappearing Msgs | Partial — server sees metadata | Yes | No | No |
| OnionShare | Tor relay trust | No | No | No |
| ProtonMail | Server-side encryption | No | No | No |
| Self-Destructing Links | Full server trust | No | No | No |
| Encrypted USB | No server | No | Yes | No (AES) |
| Deaddrop (PRIVATE.ME) | Zero trust (no server) | Yes (ephemeral shares) | Yes | Yes (IT-secure) |
Deaddrop eliminates centralized trust entirely. The secret is split before it leaves the sender. No single channel, server, or intermediary ever holds enough information to reconstruct.
The Root Cause
The problem is not weak encryption or poor key management. The problem is architectural centralization. Every approach in the table above creates a moment where the complete secret exists in a single location — a server, a relay, an endpoint. That moment is the vulnerability. Increasing key length does not help. Switching algorithms does not help. The only solution is to ensure the complete secret never exists in transit at all.
Deaddrop inverts the model: instead of encrypting a secret and routing it through a trusted channel, the secret is split into mathematically independent fragments that travel through untrusted channels. The security comes from the splitting, not from the channels. Each channel can be fully compromised — monitored, logged, intercepted — and the adversary learns nothing unless they compromise K channels simultaneously.
This is a paradigm shift from "trust the pipe" to "trust the math." The channels are untrusted by design. The security properties hold even against an omniscient network adversary who controls every channel individually but cannot correlate K channels in real time.
The Solution: Split Before Transit
Deaddrop splits secrets using XorIDA threshold sharing into K-of-N shares, wraps each share in a binary envelope with HMAC integrity, encodes for transport, and distributes shares across independent channels. Reconstruction requires collecting any K shares. No server. No relay. No trust.
The Pipeline
Six steps transform a secret into transport-ready shares. Each step is pure, deterministic, and independently testable.
1. Serialize. The input secret (arbitrary bytes, string, or structured data) is normalized to a Uint8Array. Strings are UTF-8 encoded. Structured data is JSON-serialized then encoded.
2. Pad. PKCS7 padding ensures the payload aligns to the block size required by XorIDA splitting. Padding is deterministic and reversible — the original length is recoverable from the padded output.
3. HMAC Tag. HMAC-SHA256 is computed over the padded payload. The tag is prepended to the data. This tag is verified before reconstruction — tampered shares are rejected before any XorIDA operation occurs.
4. XorIDA Split. The HMAC-tagged payload is split into N shares using XorIDA threshold sharing over GF(2). Any K shares reconstruct the original. K-1 shares reveal zero information — information-theoretically, not computationally.
5. xFormat Envelope. Each share is wrapped in a binary xFormat envelope (IDA5 magic header 0x49444135) containing the share index, threshold parameters, drop ID, TTL metadata, and the share payload.
6. Base45 Encode. Each enveloped share is Base45-encoded for transport over text-safe channels (email, QR codes, SMS, printable media). Base45 is the ISO/IEC 18004 standard encoding used by EU Digital COVID Certificates — mature, well-tested, and universally decodable. For binary channels (USB, file transfer), this step can be skipped to eliminate the ~37% size overhead.
Why Base45?
Base45 was chosen over Base64 for a specific reason: it is the encoding standard adopted by the EU Digital COVID Certificate system (ISO/IEC 18004), making it the most widely deployed binary-to-text encoding in the world for security-critical payloads. Base45 produces output that is safe for QR codes, SMS, email bodies, chat messages, and printed media without escaping or special handling. The ~37% size overhead (vs ~33% for Base64) is a negligible trade-off for universal transport compatibility.
Architecture
The Deaddrop pipeline transforms a secret into independently distributable shares and back. Every step is reversible, every intermediate is verified.
Split Pipeline
Reconstruct Pipeline
xFormat Binary Envelope
Each share is wrapped in an xFormat binary envelope before encoding. The envelope structure is:
| Field | Size | Description |
|---|---|---|
| Magic | 4 bytes | 0x49444135 ("IDA5" in ASCII) |
| Version | 1 byte | Envelope format version |
| Drop ID | 16 bytes | UUID linking shares to the same drop |
| Share Index | 1 byte | 1-based index of this share |
| Threshold (K) | 1 byte | Minimum shares for reconstruction |
| Total (N) | 1 byte | Total shares created |
| TTL | 8 bytes | Expiry timestamp (ms since epoch) |
| HMAC | 32 bytes | HMAC-SHA256 integrity tag |
| Payload | variable | XorIDA share data |
The magic header enables quick identification of Deaddrop shares without parsing the full envelope. Corrupted or non-Deaddrop data is rejected at the first 4 bytes.
Multi-Channel Distribution
Deep Dive: Share Distribution
K-of-N threshold semantics give Deaddrop its power. The sender chooses how many shares to create (N), how many are needed to reconstruct (K), and which channels carry each share. The recipient collects K shares from any K channels.
Threshold Semantics
2-of-2: Both shares required. Maximum security, zero redundancy. If either share is lost, the secret is irrecoverable. Ideal for two-person integrity (TPI) scenarios: nuclear launch codes, dual-key cryptographic ceremonies, escrow release. Both parties must cooperate. Neither can act alone.
2-of-3: Any two of three shares reconstruct. One share can be lost or destroyed without data loss. The most common configuration — balances security with operational resilience. One share provides redundancy against channel failure, physical loss, or custodian unavailability.
3-of-5: Any three of five shares reconstruct. Two shares can be lost or compromised. Designed for distributed teams, multi-jurisdiction custody, or scenarios where geographic separation introduces transport risk. Five-party custody with three-party reconstruction provides the widest margin for operational failure.
4-of-7: Enterprise-grade custody. Four of seven shares reconstruct. Three shares can be lost. Suitable for board-level secret custody, multi-national legal teams, or critical infrastructure key management where maximum redundancy and maximum collusion resistance are both required.
Channel Independence
Shares can travel via any medium. The transport layer is completely decoupled from the cryptographic layer. Each share is a self-contained, opaque blob with no dependency on the other shares or on any specific transport protocol.
| Channel | Format | Use Case |
|---|---|---|
| Base45-encoded text in body | Remote delivery, automated pipelines | |
| USB Drive | Binary file (.share) | Air-gapped environments, physical custody |
| QR Code | Base45 encoded as QR | Printed drops, mobile scanning |
| Verbal | Base45 read aloud / dictated | Emergency recovery, no-electronic scenarios |
| SMS / Chat | Base45 text | Immediate delivery, mobile-first |
| Physical Print | Base45 printed on paper | Safe deposit box, notarized custody |
TTL-Based Expiry
Each share carries a TTL (time-to-live) in the xFormat envelope metadata. After the TTL expires, compliant clients reject the share during validation. The secret effectively self-destructs when the last share expires — no server-side deletion required. TTL enforcement is client-side, not server-dependent.
TTL values are configurable per drop:
| Scenario | Recommended TTL | Rationale |
|---|---|---|
| Operational intelligence | 1–24 hours | Time-sensitive; value degrades rapidly |
| Document exchange | 7 days | Allows multi-timezone collection |
| Estate / inheritance | Indefinite | Must survive custodian unavailability |
| Compliance evidence | Matches retention policy | SOX 7 years, GDPR per purpose |
Share Index Validation
Every share carries its index (1-based) and the threshold parameters (K, N) in the xFormat envelope. Before reconstruction, Deaddrop validates: (a) at least K shares are present, (b) all shares reference the same drop ID, (c) share indices are within range [1, N], (d) no duplicate indices, (e) HMAC verification passes. Malformed or tampered shares are rejected before any XorIDA operation.
Benchmarks
Deaddrop operates at sub-millisecond latency for typical secret payloads. The bottleneck is never the cryptography — it is the transport.
Pipeline Performance
Payload Size Scaling
| Payload | Split (2-of-3) | Reconstruct | Share Size (Base45) |
|---|---|---|---|
| 64 bytes | ~14µs | ~12µs | ~88 chars |
| 256 bytes | ~35µs | ~30µs | ~351 chars |
| 1 KB | ~58µs | ~50µs | ~1.4 KB |
| 64 KB | ~1.2ms | ~1.0ms | ~88 KB |
| 1 MB | ~33ms | ~28ms | ~1.37 MB |
Comparison with Traditional Approaches
| Approach | Latency (1 KB) | Server Required | Offline | IT-Secure |
|---|---|---|---|---|
| AES-256-GCM encrypt + share key | ~140µs | No | Yes | No |
| Signal sealed sender | ~5ms | Yes (server) | No | No |
| OnionShare (Tor) | ~500ms+ | Yes (Tor relays) | No | No |
| PGP encrypt | ~2ms | No | Yes | No |
| Deaddrop (XorIDA) | ~58µs | No | Yes | Yes |
Deaddrop is 2.4x faster than AES-256-GCM at 1 KB and information-theoretically secure — a property no encryption-based approach can match regardless of key length or algorithm choice. The performance advantage comes from XorIDA operating over GF(2) — bitwise XOR, the fastest mathematical operation on binary data. No modular arithmetic, no elliptic curve operations, no polynomial evaluation.
ACI Surface
Six functions compose the complete Deaddrop lifecycle. Every function returns a Result<T, E> — no thrown exceptions.
import { createDrop, collectShare, reconstructDrop } from '@private.me/deaddrop'; // Split a secret into 2-of-3 shares const secret = new TextEncoder().encode('TOP SECRET: launch codes alpha-7'); const drop = createDrop(secret, { threshold: 2, shares: 3, ttl: 86_400_000, // 24 hours }); // Distribute shares via independent channels sendViaEmail(drop.value.encodedShares[0]); // Share 1 → email writeToUsb(drop.value.encodedShares[1]); // Share 2 → USB drive printAsQr(drop.value.encodedShares[2]); // Share 3 → QR code // Recipient collects any 2 shares to reconstruct const collected = collectShare(drop.value.dropId, emailShare); const collected2 = collectShare(drop.value.dropId, usbShare); const result = reconstructDrop([collected.value.share, collected2.value.share]); // result.value → Uint8Array identical to original secret
Use Cases
Five verticals where threshold secret drops transform operational security from a process into a guarantee.
Field operatives split classified intelligence across physical and digital channels. Share 1 via encrypted radio burst. Share 2 on a micro-SD card at a physical dead drop location. Share 3 via diplomatic pouch. No single interception — electronic or physical — yields actionable intelligence. 2-of-3 means the operation succeeds even if one channel is compromised or lost. Air-gapped environments operate without network connectivity.
Classified + Air-GappedA source splits evidence across independent journalist contacts. Each journalist receives one share. No single journalist holds enough to reconstruct the evidence until the threshold is met. This prevents premature publication, creates editorial collaboration requirements, and provides deniability to each individual share holder. The source identity is never encoded in the shares.
Deniability + CoordinationSoftware vendors split update packages across independent delivery channels. Share 1 via CDN. Share 2 via direct download. Share 3 via customer portal. Prevents man-in-the-middle piracy and unauthorized modification of binaries. No single channel interception yields a usable build. 2-of-3 means delivery succeeds even if one CDN is compromised. HMAC verification before reconstruction ensures binary integrity.
Supply Chain SecurityTwo-person integrity (TPI) for nuclear launch codes, weapons vault access, or critical infrastructure activation. 2-of-2 configuration ensures both authorized personnel must cooperate. No single individual can reconstruct. Shares are carried on separate physical tokens. Offline-only operation — no network dependency. Reconstruction verified by HMAC before any downstream action.
TPI + Zero NetworkDuring a merger or acquisition, deal terms, valuations, and term sheets are split across the acquiring legal team, the target legal team, and a neutral escrow agent. No single party can leak the complete deal terms before closing. 2-of-3 reconstruction occurs only when both legal teams agree to proceed. TTL enforcement ensures deal terms expire if the transaction does not close within the negotiation window. Shares can be revoked (deleted) to abort the deal with mathematical certainty.
Deal Security + EscrowRegulatory Compliance
Threshold splitting maps directly to regulatory requirements across four frameworks. Each mapping is a structural guarantee, not a configuration option.
| Regulation | Requirement | Deaddrop Capability |
|---|---|---|
| ITAR §120.17 | Technical data protection — prevent unauthorized export | Threshold split across jurisdictions — no single jurisdiction holds the complete secret. Cross-border seizure yields zero information. |
| GDPR Art. 17 | Right to erasure — data must be deletable | Delete any (N-K+1) shares to make the secret mathematically irrecoverable. Erasure is provable, not just promissory. |
| SOX §802 | Document retention — tamper-evident custody | Shares in separate custody with HMAC integrity. Each share is independently auditable. Reconstruction proves document was unmodified. |
| NIST 800-171 | CUI protection — controlled unclassified information | Information-theoretic splitting ensures CUI is never whole outside of authorized reconstruction. Meets NIST 800-171 requirement 3.13.11 (cryptographic mechanisms). |
| EAR §734.2 | Export Administration Regulations — dual-use technology control | Shares distributed across jurisdictions prevent unauthorized export of complete technical data. Each jurisdiction holds only an opaque fragment. |
GDPR Right to Erasure: Mathematical Proof
Traditional systems answer "delete the data" by marking records in a database and trusting the operator to purge backups, caches, and replicas. This is a promissory guarantee — it depends on correct implementation and honest behavior at every layer.
Deaddrop provides a mathematical guarantee. With a 2-of-3 configuration, deleting any 2 shares makes the secret information-theoretically irrecoverable. No amount of computation — classical, quantum, or future — can recover the secret from a single remaining share. The erasure is not a policy. It is a theorem.
Cross-ACI Composition
Deaddrop composes with four ACIs to form a complete secret distribution infrastructure. Each integration is additive — Deaddrop works standalone, and each composition unlocks new capabilities.
Composition Patterns
Each cross-ACI integration follows the same pattern: Deaddrop handles the split/reconstruct lifecycle, and the composed ACI handles one orthogonal concern (transport, storage, identity, or audit). Integrations are opt-in — Deaddrop works standalone without any of these ACIs. When composed, the combined system inherits the security properties of both layers.
| Composition | Deaddrop Provides | Partner ACI Provides |
|---|---|---|
| xLink + Deaddrop | Threshold splitting + integrity | Authenticated transport + sender identity |
| xStore + Deaddrop | Share creation + lifecycle | Multi-cloud persistent storage |
| xID + Deaddrop | Share delivery gating | Recipient identity verification |
| xProve + Deaddrop | Operation artifacts (HMAC, metadata) | Verifiable audit chain |
Security Properties
Deaddrop enforces seven security properties by construction. Every property is tested and independently verifiable.
| Property | Mechanism | Guarantee |
|---|---|---|
| Zero Trust | No central server; shares distributed across independent channels | No single entity ever holds the complete secret at any point |
| Information-Theoretic Security | XorIDA threshold sharing over GF(2) | K-1 shares reveal exactly 0 bits about the secret — unconditionally |
| Forward Secrecy | Ephemeral shares with TTL expiry | Expired shares are invalid; future compromise cannot recover past secrets |
| Quantum-Safe | No keys, no algorithms to break — IT-secure by construction | No quantum computer can extract information from fewer than K shares |
| Integrity | HMAC-SHA256 verified before reconstruction | Tampered shares are rejected before any XorIDA operation occurs |
| Provable Erasure | Delete (N-K+1) shares to destroy the secret | Erasure is mathematically provable, not dependent on server compliance |
| Offline Capability | Pure client-side operations, no network dependency | Split, distribute, collect, and reconstruct without any server or connectivity |
HMAC-First Verification
The integrity verification order is critical and enforced at the code level. When shares arrive for reconstruction, the pipeline executes in strict sequence: (1) decode, (2) unwrap envelope, (3) validate metadata (drop ID, index, TTL), (4) verify HMAC-SHA256, (5) only then XorIDA reconstruct. If any step fails, the pipeline halts and returns a typed error. No partial reconstruction is ever attempted.
Fail-closed behavior: Any validation failure — expired TTL, mismatched drop ID, out-of-range index, failed HMAC — causes the entire reconstruction to fail with a specific error code. The system never produces a "best effort" result. Either the output is byte-identical to the original secret, or the operation fails completely.
Threat Model
| Threat | Deaddrop Defense |
|---|---|
| Single channel compromise | Adversary obtains one share — learns zero information about the secret |
| K-1 channel compromise | Adversary obtains up to K-1 shares — still learns zero information (IT-secure) |
| Share tampering | HMAC-SHA256 detects modification before reconstruction; tampered shares rejected |
| Replay attack | TTL expiry and drop ID uniqueness prevent share reuse across drops |
| Harvest-now-decrypt-later | Not applicable — no encryption to break. IT-security is eternal. |
| Insider threat (single custodian) | No single custodian holds enough shares; requires K-way collusion |
| Server seizure / subpoena | No server holds the secret or any shares (unless Enterprise CLI is used, in which case shares are distributed, not centralized) |
| Quantum adversary | IT-security is independent of computational assumptions; no algorithm to break |
Traditional Secret Exchange vs. Deaddrop
| Dimension | Traditional (Encrypt + Send) | Deaddrop (Split + Distribute) |
|---|---|---|
| Trust model | Trust the channel (TLS, Tor, E2EE) | Trust the math — channels are untrusted by design |
| Single point of failure | Server, relay, or endpoint holds complete secret | No single point holds the complete secret at any time |
| Offline operation | Most require network connectivity | Fully offline — no server, no network dependency |
| Quantum resistance | Depends on key exchange algorithm (RSA, ECDH, Kyber) | Information-theoretic — unconditionally secure regardless of computation |
| Erasure proof | Trust the operator to delete all copies | Delete (N-K+1) shares — mathematically irrecoverable |
| Collusion resistance | Single compromise exposes secret | Requires K-way collusion across independent channels |
Verifiable Secret Operations
Every Deaddrop operation — split, distribute, collect, reconstruct — produces integrity artifacts that xProve can chain into a verifiable audit trail. Prove that secrets were handled correctly without revealing the secrets themselves.
Read the xProve white paper →
What Gets Audited
| Event | Recorded Artifact | xProve Tier |
|---|---|---|
| Drop creation | Drop ID, threshold (K,N), TTL, creation timestamp | T1 (HMAC chain) |
| Share distribution | Share index, channel identifier (hashed), delivery timestamp | T1 (HMAC chain) |
| Share collection | Share index, collector identity (hashed), collection timestamp | T1 (HMAC chain) |
| Reconstruction | Drop ID, shares used, reconstruction timestamp, HMAC verification result | T2 (commit-reveal) |
| Drop destruction | Drop ID, shares destroyed, destruction timestamp | T1 (HMAC chain) |
Ship Proofs, Not Source
Deaddrop generates cryptographic proofs of correct execution without exposing proprietary algorithms. Verify integrity using zero-knowledge proofs — no source code required.
- Tier 1 HMAC (~0.7KB)
- Tier 2 Commit-Reveal (~0.5KB)
- Tier 3 IT-MAC (~0.3KB)
- Tier 4 KKW ZK (~0.4KB)
Use Cases
Honest Limitations
Honest engineering requires honest documentation. Four known limitations with their mitigations.
| Limitation | Impact | Mitigation |
|---|---|---|
| Requires K channels | The recipient must have access to K independent transport paths to collect enough shares for reconstruction. | 2-of-3 requires only 2 channels. Most scenarios have at least 2 independent paths (email + physical, email + chat, etc.). |
| No streaming | The full secret must fit in memory for splitting and reconstruction. Very large secrets (multi-GB) require chunking. | Chunk large secrets into fixed-size blocks. Each chunk is an independent drop. Typical secret payloads (keys, credentials, codes, documents) are well within memory limits. |
| Base45 expansion | Base45 encoding adds ~37% overhead compared to raw binary, making shares larger than the original secret. | 37% overhead is acceptable for security-critical payloads. Binary transport (USB, file) skips Base45 encoding entirely. The overhead applies only to text-safe channels. |
| Share custody burden | Lost shares cannot be recovered. If more than (N-K) shares are lost, the secret is permanently irrecoverable. | Use N > K for redundancy (2-of-3 tolerates 1 loss, 3-of-5 tolerates 2). Store custody instructions alongside shares. Multiple backup channels reduce loss risk. |
| No partial reconstruction | Either K shares produce the exact original secret, or the operation fails entirely. There is no "degraded" or "approximate" mode. | This is by design — partial reconstruction would violate information-theoretic security. The fail-closed behavior prevents silent data corruption. |
| Client-side TTL enforcement | TTL expiry is enforced by compliant clients. A malicious client could ignore TTL and attempt reconstruction with expired shares. | Expired shares are flagged in the xFormat envelope metadata. Enterprise deployments enforce TTL at the CLI server level. Defense-in-depth: combine TTL with physical share destruction policies. |
Enterprise CLI
@private.me/deaddrop-cli is a self-hosted secret drop management server — Docker-ready, air-gapped capable, with three-role RBAC, share lifecycle management, and append-only audit logging.
Endpoints
| Method | Path | Permission | Description |
|---|---|---|---|
| GET | /health | — | Health check |
| POST | /drops | drop:create | Create a new drop (split secret) |
| GET | /drops | drop:list | List active drops |
| GET | /drops/:id | drop:read | Get drop metadata (no shares) |
| POST | /drops/:id/shares | share:deposit | Deposit a share for collection |
| GET | /drops/:id/shares/:shareId | share:collect | Collect a specific share |
| POST | /drops/:id/reconstruct | drop:reconstruct | Reconstruct from collected shares |
| DELETE | /drops/:id | drop:destroy | Destroy drop and all shares |
| POST | /shares/verify | share:verify | Verify share integrity |
| GET | /audit | audit:read | Audit log entries |
RBAC Roles
Admin — full access: create, destroy, reconstruct, deposit, collect, verify, audit. Full lifecycle control over all drops and shares.
Operator — create drops, deposit and collect shares, verify shares. Cannot destroy drops or read audit logs. Intended for field personnel handling share distribution.
Auditor — read-only: list drops, read metadata, read audit logs. Cannot create, destroy, or handle shares. Intended for compliance officers and security reviewers.
Air-Gapped Deployment
The CLI server operates without any external network dependency. All cryptographic operations are local. No DNS resolution, no certificate validation against external CAs, no telemetry. Deploy in SCIF environments, submarine networks, or any facility where outbound connectivity is prohibited. The Docker image includes all dependencies — no runtime package fetching.
docker build -t deaddrop-cli -f packages/deaddrop-cli/Dockerfile . docker run -d --name deaddrop -p 4000:4000 \ -v deaddrop-data:/data \ -e DEADDROP_ADMIN_KEY=your-secret-key \ deaddrop-cli
Enhanced Identity with Xid
Deaddrop can optionally integrate with Xid to enable unlinkable anonymous sharing — verifiable within each transfer context, but uncorrelatable across drops, recipients, or time.
Three Identity Modes
How Ephemeral Anonymous Sharing Works
// Initialize Deaddrop with Xid integration import { DeaddropClient } from '@private.me/deaddrop-cli'; import { XidClient } from '@private.me/xid'; const xid = new XidClient({ mode: 'ephemeral' }); const drop = new DeaddropClient({ identityProvider: xid }); // Each transfer derives unlinkable DIDs automatically const receipt = await drop.send({ payload: sensitiveDocument, recipient: 'whistleblower-hotline' }); → [Deaddrop] Deriving ephemeral sender DID from master seed... → [Deaddrop] Sender DID: did:key:z6MkE... (unique to this drop + epoch) → [Deaddrop] Deriving ephemeral recipient DID... → [Deaddrop] Recipient DID: did:key:z6MkF... (unique to this drop + epoch) → [Deaddrop] XorIDA split with ephemeral identities (~50µs) // Transfer is anonymous with unlinkable DIDs // Verification works within drop, but cross-transfer correlation fails
See the Xid white paper for details on ephemeral identity primitives and K-of-N convergence.
Market Positioning
| Industry | Use Case | Compliance Driver |
|---|---|---|
| Whistleblowing | Anonymous disclosure with IAL3 source verification | SOX, Dodd-Frank, EU Whistleblowing Directive |
| Journalism | Source protection with unlinkable submission patterns | Shield laws, First Amendment, GDPR |
| Legal | Sensitive disclosure with attorney-client privilege | ABA Model Rules, work product doctrine |
| Healthcare | Anonymous adverse event reporting with HIPAA compliance | HIPAA, 42 CFR Part 2, FDA 21 CFR 803 |
Key Benefits
- Cross-transfer unlinkability — Can't track senders across multiple drops
- Per-drop derivation — Same sender has different DIDs per transfer
- Epoch rotation — DIDs automatically rotate daily/weekly/monthly
- Split-protected derivation — Master seed is XorIDA-split, never reconstructed
- Verifiable anonymity — Prove source authenticity without revealing identity
- Regulatory compliance — Meets whistleblower protection requirements
Get Started
Install Deaddrop, split your first secret, and distribute shares across channels — all in a few lines of code.
npm install @private.me/deaddrop
Requirements
Runtime: Node.js 18+ or any environment supporting Web Crypto API (crypto.getRandomValues). Browser, Deno, Bun, and Cloudflare Workers all supported. No native addons, no WASM, no platform-specific binaries.
Dependencies: Zero runtime dependencies. XorIDA threshold sharing, HMAC-SHA256, PKCS7 padding, xFormat envelope, and Base45 encoding are all implemented internally. No third-party cryptographic libraries. Supply chain attack surface: zero.
TypeScript: Full type definitions included. Strict mode compatible. Every function returns Result<T, E> for explicit error handling without exceptions. No any types. All error variants are enumerated and documented.
Bundle size: Under 15 KB gzipped. Suitable for edge deployment, serverless functions, and mobile applications where bundle size matters.
import { createDrop, collectShare, reconstructDrop, verifyShare, } from '@private.me/deaddrop'; // 1. Create a 2-of-3 drop const secret = new TextEncoder().encode('CLASSIFIED: operation nightfall'); const drop = createDrop(secret, { threshold: 2, shares: 3, ttl: 3_600_000, // 1 hour }); // 2. Distribute shares via independent channels const [share1, share2, share3] = drop.value.encodedShares; // share1 → email channel A // share2 → USB dead drop // share3 → QR code (redundancy) // 3. Verify a share before collecting const valid = verifyShare(decodedShare); // valid.value → true (integrity + TTL + index OK) // 4. Collect any 2 shares and reconstruct const result = reconstructDrop([shareA, shareB]); // result.value → Uint8Array identical to original const plaintext = new TextDecoder().decode(result.value); // "CLASSIFIED: operation nightfall"
Ready to deploy Deaddrop?
Talk to Sol, our AI platform engineer, or book a live demo with our team.
Deployment Options
SaaS Recommended
Fully managed infrastructure. Call our REST API, we handle scaling, updates, and operations.
- Zero infrastructure setup
- Automatic updates
- 99.9% uptime SLA
- Pay per use
SDK Integration
Embed directly in your application. Runs in your codebase with full programmatic control.
npm install @private.me/deaddrop- TypeScript/JavaScript SDK
- Full source access
- Enterprise support available
On-Premise Enterprise
Self-hosted infrastructure for air-gapped, compliance, or data residency requirements.
- Complete data sovereignty
- Air-gap capable
- Docker + Kubernetes ready
- RBAC + audit logs included