Loading...
private.me Docs
Get xFuse
PRIVATE.ME PLATFORM

xFuse: Threshold Identity Fusion

xFuse fuses everything needed to act securely. K-of-N XorIDA shares converge independent verification channels into one identity seed — then orchestrate secure execution with cryptographic proof via xProve. Below threshold — mathematically zero information.

Identity Fusion AVAILABLE NOW XorIDA Powered
NOW AVAILABLE
@private.me/xfuse is built and tested. 168 tests across 11 test files — all passing. Threshold identity fusion via XorIDA, 5-step orchestration pipeline, execute-and-prove via xProve, channel-diversity enforcement, time-bounded convergence windows, nonce anti-replay, seed purging, HMAC-chained audit, and assurance-level computation.

Enterprise toolkit shipped: @private.me/xfuse-cli v0.4.0 — full platform identity orchestration hub. 479 tests across 11 test files. Integrates 10 packages: xID, xPass, xLock, xStore, xCompute, Redact, xWallet, Authorize, xProve, Auditlog. ABAC policy engine, session-bound cryptographic identity, delegation controls, credential orchestration, agent accountability, human-in-the-loop gates, MPC convergence, and cancelable biometric templates. Port 4800. Part of the Enterprise CLI Suite — 21 self-hosted servers, Docker-ready, air-gapped capable.
Section 01

The Problem

Traditional MFA is broken. Each factor independently has partial value. A stolen fingerprint, a compromised device token, a phished TOTP code — each gives the attacker partial identity information.

Password + TOTP: Both are shared symmetric secrets. The password is stored as a hash on the server — breach the server and you get every hash. TOTP seeds are stored on both the server and the user's device. A phished 6-digit code is valid for 30 seconds, and attackers operate in milliseconds. The "second factor" is not an independent channel — it is a second shared secret with the same single point of failure.

Biometric + device: Two factors, but each is independently valuable to an attacker. A stolen fingerprint template can be replayed. A cloned device token can be presented. Combining them adds difficulty, not impossibility. An attacker with one factor has reduced the problem, not eliminated it. Traditional MFA treats factors as additive layers — each one individually leaks partial information about the identity.

Risk-based scoring: Behavioral analytics assign a probability that the user is who they claim to be. The score is heuristic, probabilistic, and gameable. Sophisticated attackers can mimic typing patterns, spoof location data, and replay device fingerprints. A risk score is a bet, not a proof.

MFA fatigue attacks: Push-based MFA sends repeated approval requests until the user taps "Approve" out of frustration or habit. The Uber breach (September 2022), the Cisco breach (May 2022), and the Microsoft breach (March 2022) all exploited MFA fatigue. The attacker already had one factor — the push notification gave them the second.

The Core Failure

BIOMETRIC Leaks partial info DEVICE TOKEN Leaks partial info TOTP / Password ADDITIVE SCORING Each factor = partial leak PARTIAL LEAK Reduced, not eliminated
Section 02

The Solution

XorIDA threshold convergence. K-1 factors = zero information. Not "hard to crack" — mathematically impossible. The threshold IS the assurance level.

xFuse replaces additive MFA scoring with threshold identity fusion. An identity seed is generated, padded, HMAC-tagged, and XorIDA-split into N shares. Each share is bound to an independent verification channel: biometric enclave, device TPM, push auth, hardware token, credential verifier, location attestation, or network proof. Any K of N channels must converge within a time-bounded window to reconstruct the identity seed.

The critical difference: K-1 shares contain zero information about the identity seed. Not "reduced information." Not "computationally hard to extract." Mathematically zero. This is an information-theoretic guarantee over GF(2) — it holds regardless of the attacker's computational power, including quantum computers.

Three Key Properties

Information-theoretic zero-knowledge below threshold: An attacker who compromises K-1 channels learns nothing. Not one bit. The remaining shares are uniformly random and independent of the identity seed.
Any K-of-N combination works: Lose your phone? Use biometric + hardware token + credential. Traveling without your YubiKey? Use biometric + device + push auth. Fault tolerance is built into the threshold.
Re-split on every mutation invalidates old shares: Enroll a new channel, revoke a compromised channel, or upgrade the threshold — the identity seed is re-split with fresh randomness. All previous shares become useless.

Convergence Pipeline

Channels K of N Consent Explicit Window Time-bound Diversity Enforced Reconstruct XorIDA HMAC Verify Identity Seed Purge after use

The Face ID Analogy

Face ID uses 30,000 infrared dots that only mean something when they converge. Take away one dot — the other 29,999 still identify you. Take away half — they probably still do. XorIDA threshold sharing is fundamentally different: take away ONE share below threshold, and the remaining K-1 shares contain ZERO information. Not partial. Not degraded. Zero. Face ID degrades gracefully. xFuse provides an absolute boundary: above threshold = full identity. Below threshold = nothing.

Section 03

Identity Architecture: Where xFuse Fits

xFuse is Layer 3 of the PRIVATE.ME identity stack. It sits on top of xLink (Layer 1: transport-layer authenticated channels) and xID (Layer 2: ephemeral unlinkable identities). Each layer solves a different problem. Together, they provide the full spectrum from low-friction anonymous communication to high-assurance regulated identity.

The Three-Layer Stack

The PRIVATE.ME platform provides three distinct identity layers. Each layer is independent — you can use xLink without xID, or xID without xFuse. But when combined, they compose into a unified identity architecture that spans from zero-knowledge anonymous messaging (IAL0) to government-grade biometric fusion (IAL3).

Layer Technology Assurance Use Case
Layer 1 xLink IAL0 – Anonymous Authenticated channels without identity. The transport layer. Proves "same agent as before" without revealing who.
Layer 2 xID IAL1 – Self-Asserted Ephemeral unlinkable DIDs. Per-verifier identities that cannot be correlated across contexts. Privacy-preserving authentication.
Layer 3 xFuse IAL1/2/3 – Verified High-assurance identity. Threshold fusion of biometric + device + credential + location + network factors. Regulated use cases.

Layer 1: xLink (Authenticated Channels)

What it does: xLink establishes authenticated, encrypted agent-to-agent channels using Ed25519 + X25519 key pairs. Every agent has a DID (did:key:z6Mk...). Messages are signed and encrypted. The recipient knows the message came from a specific DID, but the DID itself reveals no real-world identity.

Assurance level: IAL0 (zero identity). xLink proves "This message came from the same agent I spoke to yesterday" — but it doesn't tell you who that agent is. Perfect for anonymous messaging, whistleblower communication, or any use case where pseudonymity is required.

When to use xLink alone: Low-stakes communication where you don't need to know the sender's real-world identity. Developer APIs, IoT device-to-device messaging, encrypted chat between pseudonymous parties. See the xLink white paper for full details.

Layer 2: xID (Ephemeral Unlinkable Identity)

What it does: xID generates per-verifier ephemeral DIDs from a XorIDA-split master seed. Every verifier (bank, hospital, government agency) sees a different DID. The DIDs are cryptographically unlinkable — no one can correlate your identity across contexts. The master seed is never at rest — it's reconstructed only during DID derivation, then purged immediately.

Assurance level: IAL1 (self-asserted identity). xID proves "I am the same person across sessions with this verifier" without revealing who you are to other verifiers. Fills the eIDAS 2.0 ARF unlinkability requirement. Exposure window: ~50µs.

When to use xID alone: Privacy-preserving authentication where you need persistent identity with a single verifier but unlinkability across verifiers. Online services that don't require regulated KYC. See the xID white paper for convergence mechanics, biometric binding, and epoch rotation.

Layer 3: xFuse (High-Assurance Threshold Fusion)

What it does: xFuse converges K-of-N independent verification channels (biometric enclave, device TPM, push auth, hardware token, credential verifier, location attestation, network proof) into a single identity seed. Below threshold: mathematically zero information. At threshold: full identity reconstruction with HMAC integrity verification. The convergence pipeline enforces consent, time-bounded windows, channel diversity, and HMAC verification before releasing the identity seed.

Assurance level: IAL1/2/3 (configurable). xFuse is the only layer that can reach IAL2 (remote proofing with government-issued credential) and IAL3 (in-person proofing with biometric binding). It's designed for regulated environments: banking (KYC/AML), healthcare (HIPAA), government (FedRAMP), legal (privilege).

When to use xFuse alone: High-assurance identity without the need for transport-layer anonymity or cross-context unlinkability. Enterprise SSO with threshold MFA. Government access control. Financial transaction signing. Any use case where regulatory compliance requires verified identity.

When to Combine All Three Layers

The full stack — xLink + xID + xFuse — is used when you need high-assurance verified identity with privacy-preserving unlinkability and encrypted transport. Example: a healthcare provider messaging platform where:

xLink provides the encrypted messaging transport layer (no plaintext, no server-side keys).
xID ensures each patient's identity is unlinkable across different departments (cardiology sees DID A, oncology sees DID B, but no one can correlate).
xFuse enforces biometric + device + credential convergence for high-assurance IAL2/3 authentication before accessing medical records.

Full-Stack Composition Example
// Layer 1: xLink channel
import { Agent } from '@private.me/xlink';
const agent = await Agent.create();

// Layer 2: xID ephemeral DID for this verifier
import { EphemeralID } from '@private.me/xid';
const ephemeralDID = await EphemeralID.deriveForVerifier(
  verifier: 'did:web:hospital.example.com',
  masterSeed: /* XorIDA-reconstructed seed */
);

// Layer 3: xFuse threshold identity fusion (IAL2)
import { IdentityFusion } from '@private.me/xfuse';
const result = await IdentityFusion.converge({
  threshold: 2,
  totalShares: 3,
  channels: [
    { type: 'biometric', enclave: 'platform' },
    { type: 'device', tpm: true },
    { type: 'credential', issuer: 'did:web:gov.example' }
  ],
  assuranceLevel: 'IAL2',
  convergenceWindow: 60000 // 60 seconds
});

if (result.ok) {
  // Identity seed reconstructed at IAL2 assurance
  // Use ephemeralDID for unlinkable session, agent for transport
  await agent.send({
    to: 'did:web:hospital.example.com',
    from: ephemeralDID,
    payload: encryptedMedicalRecord,
    assurance: result.value.assuranceLevel // IAL2
  });

  // Purge identity seed immediately after use
  result.value.seed.purge();
}

Decision Table: Which Layer Do You Need?

Use Case Required Layers Assurance Example
Anonymous messaging xLink only IAL0 Whistleblower platform, encrypted chat
Privacy-preserving login xLink + xID IAL1 eCommerce, SaaS, social media
High-assurance access control xFuse only IAL2/3 Enterprise SSO, government portals
Regulated healthcare/finance xLink + xID + xFuse IAL2/3 HIPAA-compliant messaging, banking apps
Cross-border identity xID + xFuse IAL2/3 eIDAS 2.0 digital wallets, travel credentials
IoT device authentication xLink only IAL0 Smart home, industrial sensors
Developer API access xLink only IAL0 API keys replacement with DIDs
Legal privilege communication xLink + xFuse IAL2 Attorney-client encrypted channels

Why Separate Layers?

Flexibility: Not every use case needs high-assurance identity. Forcing IAL2/3 verification for a developer API would kill adoption. Separating the layers lets you choose the right level of friction for your use case.

Privacy: xID's unlinkability only works if identity verification (xFuse) is a separate, opt-in layer. If every xID derivation required biometric fusion, the system would leak timing metadata that could correlate identities.

Composability: Each layer is a standalone ACI with its own API surface. You can swap xLink for a different transport (HTTP, WebSocket, native sockets) without changing xID or xFuse. You can use xFuse for high-assurance SSO without adopting the full PRIVATE.ME stack.

Regulatory alignment: IAL0/1/2/3 map directly to NIST 800-63-3 assurance levels. Regulators understand this spectrum. A single monolithic "identity system" would struggle to fit both anonymous messaging (IAL0) and biometric government ID (IAL3) in one API.

Cross-References

xLink White Paper: Transport-layer authenticated channels, Ed25519 signing, X25519 encryption, hybrid PQ-KEM, multi-transport routing.
xID White Paper: Ephemeral identity, per-verifier DID derivation, biometric binding, convergence mechanics, epoch rotation, eIDAS 2.0 ARF compliance.

Section 04

Architecture

CREATE / CONVERGE / UPGRADE / REVOKE — four operations, one identity seed. Channel binding, time-bounded windows, diversity enforcement, and HMAC integrity at every step.

CREATE Pipeline

Generate Random seed Pad PKCS#7 HMAC SHA-256 tag XorIDA Split K-of-N shares Bind to Channels Distribute shares

CONVERGE Pipeline

Present K factors Consent All channels Window Time check Diversity Channel types Reconstruct HMAC + unpad Identity Seed Purge after use
~1ms
Convergence time
2-of-3
to 4-of-7 threshold
9
Channel types
168
Tests passing
Trust Boundaries
Each channel operates in its own trust boundary. A biometric enclave does not trust the device TPM. A hardware token does not trust the push auth relay. xFuse enforces channel diversity at convergence — presenting K shares from the same channel type is rejected. This prevents an attacker who compromises one channel type from replaying it K times.
Section 05

Assurance Levels

Three assurance levels mapping directly to eIDAS Levels of Assurance. The threshold IS the assurance level — not a heuristic, not a probability, but a mathematical guarantee.

LevelKN (min)eIDAS LoALabelUse Case
IAL123LowBasicConsumer apps, social login
IAL235SubstantialEnhancedHealthcare, financial services
IAL347HighMaximumGovernment, classified, defense

Traditional MFA assigns a score. xFuse provides a proof. The threshold IS the assurance level — not a heuristic, not a probability, but a mathematical guarantee. IAL2 means exactly 3 independent channels converged within a time-bounded window with verified channel diversity. There is no way to achieve IAL2 with 2 channels, regardless of how "strong" those channels are.

The mapping to eIDAS is direct because eIDAS Levels of Assurance are defined by the number and independence of verification factors. xFuse makes this explicit: Low = 2-of-3, Substantial = 3-of-5, High = 4-of-7. The N value provides fault tolerance — you can lose N-K channels and still authenticate.

Upgrade Path
Assurance levels can be upgraded without re-enrollment. A user at IAL1 (2-of-3) can add two more channels and upgrade to IAL2 (3-of-5) via upgradeThreshold(). The identity seed is re-split with the new threshold and distributed to all channels. Old shares are invalidated. The upgrade is atomic — either all channels receive their new shares or the upgrade fails and the previous configuration remains intact.
Section 06

ACI Surface

7 functions. Create profiles, enroll factors, converge identity, upgrade thresholds, revoke channels, compute assurance, and generate convergence proofs.

createFusionProfile(ownerDid, channels, config): Promise<Result<{profile, shares}>>
Generates a random identity seed, pads, HMAC-tags, and XorIDA-splits into N shares bound to the provided channels. Returns the fusion profile (metadata, channel bindings, threshold config) and the share array for distribution. The caller is responsible for distributing shares to their respective channels.
enrollFactor(profile, currentShares, newChannel, newConfig?): Promise<Result<{profile, shares}>>
Adds a new verification channel to an existing profile. Reconstructs the identity seed from current shares, re-splits with the new channel included, and returns updated profile and shares. Optionally accepts a new threshold configuration. All previous shares are invalidated.
presentFactors(profile, responses, context?): Promise<Result<FusionResult>>
Converges K factor responses into the identity seed. Validates consent flags, time-bounded window, channel diversity, share indices, and HMAC integrity before XorIDA reconstruction. Returns the identity seed, computed assurance level, and convergence metadata. The caller MUST purge the identity seed after use.
upgradeThreshold(profile, currentShares, newChannels, newK, newN): Promise<Result<{profile, shares}>>
Upgrades the threshold configuration by reconstructing the identity seed and re-splitting with new K-of-N parameters and additional channels. Atomic operation: either all channels receive new shares or the upgrade rolls back. Old shares are invalidated by fresh randomness.
revokeChannel(profile, currentShares, channelId): Promise<Result<{profile, shares}>>
Removes a channel from the profile. Reconstructs the identity seed (requires K current shares), removes the channel, and re-splits across remaining channels. If removing the channel would make N less than K, the operation fails with an error. All previous shares are invalidated.
computeAssuranceLevel(threshold, totalShares): AssuranceLevel
Pure function. Computes the assurance level (IAL1, IAL2, or IAL3) based on the threshold and total share count. Deterministic mapping: K=2 N≥3 = IAL1, K=3 N≥5 = IAL2, K≥4 N≥7 = IAL3. Returns the level, eIDAS mapping, and label.
convergenceProof(fusionResult, profile): Promise<Result<ConvergenceProof>>
Generates a cryptographic convergence proof from a successful fusion result. The proof contains the assurance level, factor count, channel types, convergence timestamp, and an HMAC audit chain. Can be verified independently without access to the identity seed.
Section 07

Use Cases

From consumer social login to classified defense systems. The threshold determines the assurance level. The channels determine the user experience.

Government
Classified Access Control

IAL3 (4-of-7) for SCIF access, classified document retrieval, and cross-agency identity federation. Meets eIDAS High and NIST SP 800-63-3 IAL3. Hardware token + biometric + CAC + location attestation.

4-of-7 threshold
Healthcare
Patient Identity Assurance

IAL2 (3-of-5) for patient identity verification under HIPAA. Biometric + insurance credential + device attestation. Prevents medical identity theft and duplicate records across health systems.

HIPAA compliant
Financial Services
Transaction Authorization

IAL2 (3-of-5) for high-value transaction authorization under DORA and PSD2. Biometric + device + push auth. Strong customer authentication (SCA) with information-theoretic guarantees instead of probabilistic scoring.

PSD2 / DORA
Enterprise
Zero Trust Identity Layer

IAL2 (3-of-5) as the identity foundation for Zero Trust Architecture. Every access request requires threshold convergence. Replaces VPN + password + TOTP with mathematically proven identity assurance.

Zero Trust
IoT / Machine-to-Machine
Fleet Device Attestation

IAL1 (2-of-3) for IoT device identity. TPM attestation + network location + firmware hash. Devices authenticate to the fleet controller with threshold convergence instead of static API keys. Compromising one attestation channel reveals zero information about the device identity.

2-of-3 threshold
Section 08

Cross-ACI Composition

xFuse composes with every identity and credential ACI in the PRIVATE.ME platform. Fused identity flows downstream into ephemeral DIDs, credential wallets, push auth, split storage, and verifiable proofs.

xFuse + xID

The fused identity seed becomes the master seed for xID ephemeral DID derivation. Each verifier receives a unique, unlinkable DID derived via HKDF from the fused seed. The verifier never sees the master identity — only the per-context ephemeral DID. xFuse provides the assurance level and xID provides the privacy layer.

xFuse + xWallet

Fused identity gates access to the xWallet credential store. Credentials are XorIDA-split for storage, and the wallet requires threshold convergence to present credentials. The assurance level of the fusion determines which credentials can be accessed — IAL1 for low-sensitivity, IAL3 for government-issued credentials.

xFuse + xLock

xLock push auth serves as one factor channel in the fusion profile. A user taps "Approve" on their device, and the signed push response contributes one share to the convergence. xFuse provides the threshold; xLock provides the frictionless UX for one of the K channels.

xFuse + xStore

Share distribution uses xStore pluggable backends. Each share is routed to an independent storage node — local encrypted storage, cloud relay, hardware security module, or paper QR code. xStore handles the transport; xFuse handles the threshold logic and channel binding.

xFuse + xProve

Every convergence generates a verifiable proof via xProve. The convergenceProof() function produces an HMAC audit chain that records the assurance level, factor count, channel diversity, and timestamp. Auditors and regulators can verify the proof without access to the identity seed.

Section 09

Orchestration Pipeline

One request. Five steps. Atomic execution. xFuse fuses identity + permissions + session + execution + audit into a single verified pipeline — no gaps between verification and action.

Traditional secure systems verify identity in one service, check permissions in another, execute in a third, and log in a fourth. Each boundary is a gap — a moment where state is assumed rather than proven. xFuse eliminates these gaps by fusing all five steps into one atomic pipeline.

The Five-Step Pipeline

1. Verify xID / xWallet 2. Validate xPass session 3. Evaluate xLock policy 4. Execute xGhost / xCompute 5. Log + Meter Audit + billing
StepACIWhat HappensFailure Mode
1. VerifyxID / xWalletEd25519 signature confirms actor identity and request integrity401 — invalid signature, request rejected
2. ValidatexPassSession ID, timestamp, and nonce checked. Anti-replay enforced.403 — expired session or replayed nonce
3. EvaluatexLockActor → target → action policy evaluated. Conditions checked.403 — policy denied
4. ExecutexGhost / xComputeProtected function execution. Plaintext purged after use.500 — execution failure, shares purged
5. Log + MeterAudit + xPassJSONL audit event. Usage metered for billing.Non-blocking — execution already succeeded
Atomic Execution
Every step runs in-process. No microservice fan-out. No network hops between verify and execute. If any step fails, the pipeline aborts — no partial execution, no inconsistent state. The request is either fully verified and executed or fully rejected.

Why this matters: In a traditional system, a race condition between the permission check and the execution can allow unauthorized actions. An expired session can still execute if the check and the action are in different services. xFuse eliminates these gaps — identity, session, policy, and execution are verified in the same execution context, in the same millisecond.

Section 10

Secure Execution with xProve

Without xProve, the system says “we checked everything and executed correctly.” With xProve, the system says “here is cryptographic proof we checked everything and executed correctly.”

The orchestration pipeline produces correct results. xProve makes those results provably correct. Every step in the pipeline generates a cryptographic receipt, and the composite proof bundle lets any verifier confirm the entire execution independently.

Composite Proof Bundle

The proof is not a single monolithic ZK circuit. Each step maps to the optimal xProve tier:

Pipeline StepProof MethodxProve TierWhy
Signature validEd25519 receiptNot xProveDeterministic, publicly checkable — proving inside ZK adds cost with no benefit
Session validHMAC chainT1 (<1ms)Timestamp + nonce is a hash check
Policy validCommit-revealT2 (~5ms)Predicate evaluation over known rules
Execution correctKKW MPC-in-the-HeadT4b (~30ms)Arbitrary computation proof, ~50KB

The composite proof ties all receipts together with a SHA-256 hash. A verifier checks each component independently and confirms the hash binds them into a single execution attestation.

Execute vs Execute-and-Prove

Proof generation is optional. Most requests use the standard pipeline — fast, verified, logged. When a request needs provable correctness (audit, compliance, agent accountability), the caller opts in:

Two Modes
// Standard: verified execution (~5ms)
const result = await xfuse.execute(request);

// Provable: verified execution + cryptographic proof (~40ms)
const { result, proof } = await xfuse.executeAndProve(request);
// proof.type === 'composite'
// proof.components: [signatureReceipt, sessionT1, policyT2, executionT4b]
// proof.compositeHash === sha256(all components)
Provably Correct, Not Trustless
xProve proves the computation was done correctly on the given inputs. It does not prove the inputs were never exfiltrated during the execution window (~1.5ms xGhost exposure). For true input privacy, use xCompute MPC in the execution step — no single party sees all inputs. The honest framing: “provably correct execution” when using xGhost, “provably correct and input-private” when using xCompute.
Section 11

AI Agent Accountability

Autonomous agents need more than permission — they need proof. xFuse + xProve produces an accountability receipt for every agent action: who acted, what was authorized, what happened, and cryptographic proof it was done correctly.

The AI agent economy is projected at $11.3B by 2028 (non-human identity market). Enterprises will not deploy autonomous agents that can transfer funds, access patient records, or modify infrastructure unless those agents can prove they acted correctly. “Trust me, I’m an AI” is not sufficient. xFuse provides the accountability layer.

Agent Accountability Receipt

Agent DID xID identity proof Session + Policy xPass + xLock proof xFuse Pipeline Atomic 5-step xProve Proof Composite T1-T4b Accountability Receipt Independently verifiable

An AI agent running through the xFuse pipeline produces four provable claims:

ClaimWhat It ProvesVerification
IdentityThe agent is who it claims to be (DID-bound Ed25519 signature)Public key verification — anyone can check
AuthorizationThe agent had a valid session and passed anti-replay checksxProve T1 HMAC chain receipt
Policy complianceThe action was permitted by the governing policy at execution timexProve T2 commit-reveal proof
Correct executionThe computation produced the claimed result from the given inputsxProve T4b KKW proof (~50KB)

Regulatory Alignment

The accountability receipt maps directly to emerging AI governance requirements:

EU AI Act (2026): Article 14 requires human oversight of high-risk AI systems. xFuse receipts provide auditable proof of what the agent did and why.
DORA (2025): Financial institutions must demonstrate ICT risk management. xFuse proves automated trading agents followed authorized strategies.
HIPAA: Healthcare AI accessing patient records must log who accessed what. xFuse proves the agent had authorization and accessed only permitted data.
SOC 2 Type II: Continuous monitoring requires evidence of access controls. xFuse receipts serve as cryptographic audit evidence.

Financial Services
Autonomous Trading Agent

Agent executes trades within policy limits. Receipt proves: agent identity, authorized strategy, trade within risk parameters, correct execution. Regulator verifies without accessing trading logic.

DORA compliant
Healthcare
Clinical Decision Support

AI agent accesses patient records and recommends treatment. Receipt proves: authorized clinician delegation, HIPAA-compliant access scope, correct inference on authorized data.

HIPAA audit trail
Enterprise
Infrastructure Automation

DevOps agent scales infrastructure, rotates credentials, deploys updates. Receipt proves: authorized operator delegation, change within approved scope, correct execution sequence.

SOC 2 evidence
Government
Autonomous Clearance Processing

AI agent processes clearance applications. Receipt proves: authorized analyst delegation, policy-compliant evaluation, correct scoring of submitted evidence. Full accountability chain.

EU AI Act Art. 14
One-Line Positioning
xFuse executes secure actions. xProve makes those actions provably correct. Together, they give AI agents something no other system provides: an independently verifiable accountability receipt for every action taken.
Section 12

Security Model

Information-theoretic. Not computational. K-1 channels compromised = zero information. Quantum-safe unconditionally. HMAC before reconstruction. Channel diversity enforced.

PropertyTraditional MFAFIDO2/WebAuthnSSO/SAMLxFuse
Zero-knowledge below threshold No No No Yes
Quantum-safe No No No Yes (IT-secure)
Channel diversity enforced No No No Yes
Time-bounded convergence No Yes (limited) No Yes
Re-split on mutation N/A N/A N/A Yes
HMAC before reconstruction N/A N/A N/A Yes

HMAC Before Reconstruction

Every share carries an HMAC-SHA256 integrity tag computed at split time. Before XorIDA reconstruction, all K shares are independently HMAC-verified. If any tag fails, reconstruction is aborted and the tampered share is rejected. This prevents corrupted or maliciously modified shares from producing an invalid identity seed. The HMAC verification uses timingSafeEqual() to eliminate timing side-channels.

Channel Diversity Enforcement

xFuse rejects convergence attempts where multiple shares come from the same channel type. An attacker who clones a device token cannot present it as both the "device" and "push_auth" channels. The convergence validator checks that presented channels span at least two distinct channel types for IAL1, three for IAL2, and four for IAL3.

Information-Theoretic Guarantee
Traditional MFA adds computational barriers. Each factor makes the attacker's job harder but never impossible. xFuse is fundamentally different: K-1 shares contain zero bits of information about the identity seed. This is not a computational assumption that might be broken by future hardware or algorithms. It is a mathematical fact of XorIDA threshold sharing over GF(2). It holds against adversaries with unlimited computational power, including quantum computers.
Verified by xProve

Verifiable Convergence

Every xFuse convergence can generate a cryptographic proof via convergenceProof(). The HMAC audit chain records the assurance level, factor count, channel diversity, and timestamp.

XPROVE AUDIT TRAIL
Every convergence produces an HMAC-SHA256 chained proof that records: assurance level (IAL1/IAL2/IAL3), factor count (K channels that converged), channel types (diversity verification), convergence timestamp (time-bounded window compliance), and profile version (which re-split generation was used). The proof can be verified independently without the identity seed. Upgrade to zero-knowledge proofs when auditors or regulators need public verification.

Read the xProve white paper →
Section 13

Benchmarks

Performance characteristics measured on Node.js 22, Apple M2. xFuse completes identity convergence in single-digit milliseconds — the fusion pipeline is faster than a single OAuth token exchange.

168
Core Tests
~3ms
2-of-3 Fusion
~5ms
3-of-5 Fusion
9
Channel Types
OperationTimeNotes
Channel attestation (single)<1msEd25519 sign over channel evidence
XorIDA share generation<0.5msSplit identity proof into K-of-N shares
HMAC per share<0.1msIntegrity tag for each share
Share collection (2-of-3)~1–3msGather threshold shares from channels
Share collection (3-of-5)~2–5msHigher threshold, more channels
Identity convergence (reconstruct)<0.5msXOR reconstruction from threshold shares
IAL level assessment<0.1msChannel quality → assurance level mapping
Full fusion pipeline (2-of-3)~3msAttest → split → collect → converge → assess
Full fusion pipeline (3-of-5)~5msHigher assurance, more channels
Orchestration pipeline (no proof)~5msVerify + validate + evaluate + execute + log
Orchestration pipeline (with xProve)~40msFull pipeline + composite proof generation
xProve T4b KKW proof~30msExecution correctness proof, ~50KB

Identity Verification Comparison

PropertySingle-factor (Password)MFA (TOTP + Password)Document VerificationxFuse
Assurance levelIAL1IAL1–2IAL2–3IAL1–3 (configurable)
Channel independenceSingle point of failure2 channels2–3 channelsK-of-N (up to 9 channels)
Verification latency~200ms~10s (manual code)Days (manual review)~3–5ms
Cryptographic proofNoNoPaper-basedHMAC-chained + xProve
Quantum resistanceNoNoNoIT-secure (XorIDA)
VERIFIABLE WITHOUT CODE EXPOSURE

Ship Proofs, Not Source

xFuse generates cryptographic proofs of correct execution without exposing proprietary algorithms. Verify integrity using zero-knowledge proofs — no source code required.

XPROVE CRYPTOGRAPHIC PROOF
Download proofs:

Verify proofs online →

Use Cases

🏛️
REGULATORY
FDA / SEC Submissions
Prove algorithm correctness for threshold identity without exposing trade secrets or IP.
Zero IP Exposure
🏦
FINANCIAL
Audit Without Access
External auditors verify K-of-N threshold convergence without accessing source code or production systems.
FINRA / SOX Compliant
🛡️
DEFENSE
Classified Verification
Security clearance holders verify threshold identity correctness without clearance for source code.
CMMC / NIST Ready
🏢
ENTERPRISE
Procurement Due Diligence
Prove security + correctness during RFP evaluation without NDA or code escrow.
No NDA Required
Section 14

Honest Limitations

Seven known limitations documented transparently. xFuse provides threshold identity convergence and secure execution orchestration with explicit constraints on channel availability, assurance mapping, and proof generation.

LimitationImpactMitigation
Channel availability dependencyK-of-N fusion requires at least K channels to be available and responsive. If too many channels are offline, fusion fails.Configure K conservatively (e.g., 2-of-5 instead of 4-of-5). Channel health monitoring with automatic fallback to available channels. Pre-cached attestations for intermittent channels.
IAL mapping is policy-basedThe mapping from channel types to IAL levels (IAL1/2/3) is configurable, not standardized. Different deployments may assign different assurance levels to the same channel combination.Default mapping follows NIST 800-63 guidelines. Organizations publish their IAL policy as part of trust framework documentation. xProve can verify that the policy was correctly applied.
No biometric channel nativelyxFuse supports 9 channel types but biometric verification (face, fingerprint, iris) requires external integration. No built-in biometric processing.Biometric channels integrate via the attestation API — external biometric systems produce signed attestations that xFuse consumes. FIDO2/WebAuthn biometric attestations work directly.
Attestation freshness windowChannel attestations have a configurable TTL. Stale attestations are rejected, requiring re-attestation. Frequent re-attestation adds user friction.Default TTL is 5 minutes — balancing freshness and usability. Passive channels (device binding, network location) re-attest automatically. Active channels (biometric, knowledge) prompt only when needed.
Linear scaling with channel countAdding more channels increases fusion latency linearly (~1ms per additional channel). 9-channel fusion takes ~9ms vs ~3ms for 3 channels.Even at 9 channels, ~9ms is negligible compared to user-facing latency. Most deployments use 3–5 channels. Channel attestation runs in parallel where possible.
Proof generation latencyExecute-and-prove mode adds ~35ms overhead (dominated by T4b KKW). Not suitable for sub-millisecond latency requirements.Proof generation is opt-in. Standard execute mode runs at ~5ms. Proof can be generated asynchronously after execution completes.
In-process execution onlyThe orchestration pipeline runs all 5 steps in a single process. No distributed orchestration across multiple nodes.Single-process design eliminates race conditions and gap attacks. For distributed workloads, xCompute MPC handles multi-party execution within the pipeline.
Section 15

Enterprise CLI

Self-hosted fusion server. Docker-ready. Air-gapped capable. 5-role RBAC + ABAC. Port 4800. 479 tests. Part of the Enterprise CLI Suite.

@private.me/xfuse-cli v0.4.0 provides a production-grade identity orchestration hub with full REST API, 5-role RBAC + attribute-based access control (ABAC), session-bound cryptographic identity, delegation controls, credential orchestration, agent accountability, MPC convergence, and cancelable biometric templates. Integrates 10 PRIVATE.ME packages for comprehensive identity orchestration.

v0.3.0 Production Integrations

IntegrationBundle: Opt-in production integrations via IntegrationBundle pattern. Zero-config = v0.2.0 behavior. Each integration independently toggleable.

4 integrations: xID (ephemeral DID derivation from convergence seed), xPass (billing gate per ACI connection), xLock (push auth as convergence step), xStore (XorIDA-split audit entry persistence).

Redis AsyncRateLimiter: Upgraded from in-memory sliding window to Redis-backed async rate limiting. Graceful fallback to sync limiter if Redis unavailable.

Ed25519 service DID auth: X-Service-DID, X-Service-Signature, X-Service-Timestamp headers for machine-to-machine authentication. Allowlist-based DID verification.

v0.4.0 Platform Identity Hub

ABAC Policy Engine: Attribute-based access control layered on RBAC. Deny-first evaluation. Policies based on assurance level, delegation chain, agent type, risk score, and extensible attributes. Admin-only policy creation. Immutable after creation.

Session-bound cryptographic identity: Ed25519-signed session tokens issued after convergence. Stateless verification. Binds ephemeral DID, assurance level, convergence proof hash, and risk score. Continuous re-evaluation via POST /session/reattest.

Delegation controls: Agent-on-behalf-of-human scenarios. Ed25519-signed delegation grants with chain depth limits (default 0 = no sub-delegation). Max assurance level enforcement. Full audit trail.

Credential orchestration: xWallet integration for convergence attestation credentials. OID4VP-style presentation endpoints. Selective disclosure. XorIDA-split credential storage. Revocation registry.

Agent accountability: AI agent registration with capability tracking, human supervisor requirements, and human-in-the-loop gates for high-risk actions. Per-step lineage chains with optional xProve proofs. Maps to EU AI Act Art. 14.

MPC convergence: xCompute-verified share convergence without cleartext seed reconstruction. Equality circuits verify share consistency via MPC. Optional KKW proof of correct convergence.

Cancelable biometric templates: ISO 24745 compliant. HMAC-based non-invertible transforms. Compromised templates reissued with new seeds. Transform seeds XorIDA-split via xStore.

Risk scoring: Dynamic composite risk score from convergence time, session age, device posture, and behavioral signals. Feeds into ABAC policy evaluation and re-attestation decisions.

CLI Commands

xFuse CLI
# Start the xFuse fusion server
xfuse serve --port 4800
  → HTTP server on :4800 with RBAC + JSONL stores

# Create a fusion profile (3-of-5, IAL2)
xfuse create --did "did:key:z6Mk..." --threshold 3 --channels 5
  → Generates identity seed, XorIDA-splits, returns shares

# Converge factors to reconstruct identity
xfuse converge --profile "profile-id" --shares "s0.bin,s1.bin,s3.bin"
  → Validates consent, window, diversity, reconstructs seed

# Enroll a new factor channel
xfuse enroll --profile "profile-id" --channel-type "hardware_token"
  → Re-splits with new channel, invalidates old shares

# Upgrade threshold (IAL1 to IAL2)
xfuse upgrade --profile "profile-id" --new-threshold 3 --new-total 5
  → Atomic re-split with upgraded K-of-N parameters

# Revoke a compromised channel
xfuse revoke --profile "profile-id" --channel "channel-id"
  → Re-splits without the revoked channel

# Compute assurance level
xfuse assurance --threshold 3 --total 5
  → IAL2 (Substantial, eIDAS Substantial)

Docker Deployment

Docker Compose
# Pull and run the xFuse fusion server
docker compose up -d xfuse

# Verify health
curl http://localhost:4800/health
# {"status":"ok","version":"0.4.0","uptime":42}

# Air-gapped deployment
docker save private.me/xfuse-cli > xfuse-cli.tar
# Transfer to air-gapped environment
docker load < xfuse-cli.tar
docker compose up -d
4800
Default port
5
RBAC roles
~30
REST endpoints
0
External deps
Enterprise CLI Suite
xFuse CLI is part of the Enterprise CLI Suite — 21 self-hosted reference servers covering identity fusion, passwordless auth, secret sharing, verifiable computation, encrypted search, secure ingest, key transport, split storage, and more. All Docker-ready, air-gapped capable, with HMAC-chained audit logs and multi-role RBAC.
Section 16

Get Started

Create a fusion profile, distribute shares to channels, converge factors, and derive an ephemeral DID — all in under 20 lines.

Full Pipeline
import { createFusionProfile, presentFactors, convergenceProof } from '@private.me/xfuse';

// 1. Create a 3-of-5 fusion profile (IAL2)
const channels = [
  { channelType: 'biometric', label: 'Face ID' },
  { channelType: 'device', label: 'iPhone 16' },
  { channelType: 'credential', label: 'Government ID' },
  { channelType: 'push_auth', label: 'xLock Push' },
  { channelType: 'hardware_token', label: 'YubiKey' },
];

const { profile, shares } = (await createFusionProfile(
  'did:key:z6MkhaXg...', channels,
  { threshold: 3, totalShares: 5 }
)).value;

// 2. Distribute shares to channels (caller responsibility)
// shares[0] -> biometric enclave, shares[1] -> device TPM, etc.

// 3. Later: converge 3 factors to reconstruct identity
const responses = [
  { channelId: profile.channels[0].id, shareData: biometricShare, shareIndex: 0, consented: true, presentedAt: Date.now() },
  { channelId: profile.channels[1].id, shareData: deviceShare, shareIndex: 1, consented: true, presentedAt: Date.now() },
  { channelId: profile.channels[3].id, shareData: pushShare, shareIndex: 3, consented: true, presentedAt: Date.now() },
];

const { identitySeed, assuranceLevel } = (await presentFactors(profile, responses)).value;
// assuranceLevel === 'IAL2'

// 4. Generate convergence proof for audit
const proof = (await convergenceProof(fusionResult, profile)).value;
// proof.assuranceLevel === 'IAL2', proof.factorCount === 3

// 5. Derive ephemeral DID from fused identity seed
// const ephemeralDid = deriveContextDid(identitySeed, verifierId, scope);

// 6. MUST purge after derivation
identitySeed.fill(0);
Section 17

Fast Onboarding: 3 Acceleration Levels

Get from zero to identity fusion in under 2 minutes. Zero-Click Accept auto-configures from invite codes — no manual setup, no API keys, no complexity.

FASTEST PATH
Level 3: Zero-Click Accept — Paste invite code in .env, run your app. Fusion profile created automatically. < 2 minutes vs 42-67 minutes manual setup = 21-33× faster.

Level 1: Quick Start (Node.js/TypeScript)

Clone template, configure invite, run. No infrastructure, no dependencies beyond npm.

Terminal
# Clone template
git clone https://github.com/xail-io/xfuse-starter.git
cd xfuse-starter/node-typescript

# Install dependencies
npm install

# Set invite code (from partner or create your own)
echo "XFUSE_INVITE_CODE=https://xfuse.to/invite/XFS-abc123" > .env

# Run
npm run dev

# ✅ Fusion profile created, identity converged
Zero-Click Accept Pattern
import { Xfuse } from '@private.me/xfuse';

// Auto-accepts from XFUSE_INVITE_CODE env var
const fusionEngine = await Xfuse.lazy({
  name: 'my-fusion',
  // No invite code parameter needed — reads from env
});

// K-of-N threshold identity convergence
const signals = [
  { channelId: 'ch1', shareData: biometricShare, shareIndex: 0, consented: true },
  { channelId: 'ch2', shareData: deviceShare, shareIndex: 1, consented: true },
];

const result = await fusionEngine.converge(signals);

// CRITICAL: Purge after use
result.value.identitySeed.fill(0);

Level 2: Serverless Deploy (Vercel)

One-click deploy to Vercel Edge Runtime. REST API live in < 60 seconds.

One-Click Deploy
# Visit deployment URL (opens in browser):
https://vercel.com/new/clone?repository-url=https://github.com/xail-io/xfuse-starter

# Vercel prompts:
# 1. Connect GitHub (forks template)
# 2. Set XFUSE_DEFAULT_ASSURANCE_LEVEL (optional)
# 3. Deploy (~15 seconds)
# 4. Done — API live at https://your-project.vercel.app/api/xfuse
API Usage
# Create fusion profile
curl -X POST https://your-project.vercel.app/api/xfuse/profile \
  -H "Content-Type: application/json" \
  -d '{
    "ownerDid": "did:key:z6Mk...",
    "channels": [
      { "channelType": "biometric", "label": "Face ID" },
      { "channelType": "device", "label": "iPhone" }
    ],
    "config": { "threshold": 2, "totalShares": 2 }
  }'

# Converge identity from 2 factors
curl -X POST https://your-project.vercel.app/api/xfuse/converge \
  -H "Content-Type: application/json" \
  -d '{
    "profileId": "profile_xyz",
    "responses": [
      { "channelId": "ch1", "shareData": "base64...", "shareIndex": 0 },
      { "channelId": "ch2", "shareData": "base64...", "shareIndex": 1 }
    ]
  }'

Level 3: Multi-Platform Starter (Vercel + Netlify + Railway)

GitHub repo with deploy buttons for all major platforms. Choose your stack, click button, deployed.

Platform Buttons
# GitHub repo includes:
# • Vercel:  vercel.json + api/xfuse.ts
# • Netlify: netlify.toml + netlify/functions/xfuse.ts
# • Railway: railway.json + src/server.js

# All configs included — just click deploy button
https://github.com/xail-io/xfuse-starter

# Setup time by platform:
# Vercel:  ~15 seconds (recommended)
# Netlify: ~20 seconds
# Railway: ~30 seconds

📦 Templates Included

NODE.JS + TYPESCRIPT
Full local development
package.json + tsconfig + src/
VERCEL EDGE
Serverless REST API
api/xfuse.ts + vercel.json
GITHUB STARTER
Multi-platform deploy
Vercel + Netlify + Railway

Why Zero-Click Accept?

Traditional fusion setup requires manual channel configuration, share distribution, and K-of-N threshold negotiation. Zero-Click Accept eliminates all of this:

❌ MANUAL SETUP
1. Define channels (5 min)
2. Generate shares (3 min)
3. Distribute to enclaves (15 min)
4. Configure threshold (2 min)
5. Test convergence (10 min)
6. Debug failures (12 min)
Total: 42-67 minutes
✅ ZERO-CLICK ACCEPT
1. Paste invite code (.env)
2. Run app
3. Done



Total: < 2 minutes
INTEGRATION PATH
Start with Zero-Click Accept for rapid prototyping. Graduate to manual configuration for production customization. The invite code is a bootstrap — your fusion profile persists independently after creation.

Get Templates

All templates available in the @private.me/xfuse package:

Package Structure
@private.me/xfuse/
├── templates/
│   ├── node-typescript/        # Local dev, full TypeScript
│   │   ├── package.json
│   │   ├── tsconfig.json
│   │   ├── src/index.ts
│   │   └── .env.example
│   ├── vercel/                 # Serverless edge function
│   │   ├── api/xfuse.ts
│   │   ├── vercel.json
│   │   └── package.json
│   └── github-starter/         # Multi-platform deploy
│       └── README.md           # Platform buttons + docs
Get Templates on GitHub →
GET STARTED

Ready to deploy xFuse?

Talk to Sol, our AI platform engineer, or book a live demo with our team.

Book a Demo

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
View Pricing →
📦

SDK Integration

Embed directly in your application. Runs in your codebase with full programmatic control.

  • npm install @private.me/xfuse
  • TypeScript/JavaScript SDK
  • Full source access
  • Enterprise support available
Get Started →
🏢

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
Enterprise CLI →