Privacy, control, and safety
Spark's public repository directs local SSP work to a separate Lightspark Sparkcore path that was not publicly accessible when checked. The public repository exposes the SSP schema, clients, and flow documents, but not the referenced Python handlers or full server-side decision logic. [10 sources]
Privacy, control, and safety
Spark defines an IP-restricted, Lightspark-only SSP interface for cross-wallet node, transfer, static-address, and tree queries. Reviewed handlers and a pinned commit explicitly bypass ordinary wallet-privacy checks for SSP calls. [4 sources]
Privacy, control, and safety
The reviewed Operator snapshot defines a per-wallet, per-Operator control named as a wallet kill switch and keyed by the wallet identity public key. Relevant state-changing handlers enforce it while read-only calls remain available; a network-wide freeze requires configuring every Operator. [2 sources]
Privacy, control, and safety
When the wallet gate fires, the affected client receives the same PermissionDenied response and message used for a session-identity mismatch. Tests enforce that external indistinguishability; internal logs, metrics, and error codes retain the actual reason. [3 sources]
Privacy, control, and safety
The receiver-side task applies the wallet gate before completing pending transfers, expressly including SSP-funded incoming transfers. The source covers a freeze set after transfer creation but before task pickup. This establishes code behavior, not a known production compliance block. [1 source]
Privacy, control, and safety
Spark's reviewed V2 preimage-share consensus path applies the wallet gate to the affected user even when an SSP, LNURL provider, or another hosted actor makes the call. The source says each Operator checks the identity during the Prepare phase. [1 source]
Privacy, control, and safety
Public Spark code applies the wallet gate to cooperative exits, ordinary and static deposit-address operations, deposit-tree creation, leaf renewal, transfer claims, and privileged token broadcasting. Privileged broadcaster authorization expressly does not bypass the target wallet's gate. [8 sources]
Privacy, control, and safety
When Spark's Kubernetes knob provider is enabled, Operators watch a ConfigMap for live changes. An integration test freezes one wallet while preserving reads, leaves a second wallet unaffected, and restores the first wallet when the value is cleared; public evidence does not establish production activation. [3 sources]
Privacy, control, and safety
Grid's common account schema permits the EMBEDDED_WALLET type and FROZEN status to appear together. EMBEDDED_WALLET is Spark-backed; FROZEN is defined as unable to send or receive and may follow compliance or fraud signals. The record is a schema capability, not an observed freeze. [4 sources]
Privacy, control, and safety
A sanitized unauthenticated mainnet sample returned Spark-side addresses and raw identity keys for every sampled Lightning record, together with exact amount and timestamp fields. The address is a durable wallet user ID even when an integrating app never shows it to the user. [4 sources]
Privacy, control, and safety
Lightspark describes Grid Global Accounts as running on Spark wallets. In the same product presentation, it says Lightspark handles identity verification, sanctions screening, risk review, and corridor compliance for the regulated movement layer. [1 source]
Privacy, control, and safety
Lightspark's published Grid agreement template assigns Lightspark responsibility for end-user KYC, KYB, AML, and sanctions screening. It also assigns Lightspark control over its onboarding, verification, transaction-execution, suspension, and termination decisions. [1 source]
Privacy, control, and safety
Lightspark's published Grid agreement template permits it to refuse, delay, reverse, or freeze a Grid transaction because of law, suspected illegal activity, sanctions-screening results, or other identified risk. This is direct Grid evidence; it does not establish the enforcement path for ordinary non-Grid Spark users. [2 sources]
Privacy, control, and safety
Lightspark's sanctions explainer describes sender and receiver address checks when a transaction begins and immediate blocking when a match occurs. Its Grid description says compliance checks are integrated into transactions, including Bitcoin reward payments. [2 sources]
Privacy, control, and safety
Spark grants public transfer access when any sender or receiver is readable, and its test suite preserves full participant detail in that case. Because outgoing Lightning leaves go to one fixed, publicly indexed SSP identity, this is a concrete privacy limitation rather than a hypothetical two-wallet edge case. [6 sources]
Privacy, control, and safety
Lightspark's official Connect SDK exposes screenNode for sanctions screening of a Lightning node using a configured provider token. The same SDK names Chainalysis, and archived official documentation describes screening a recipient node public key. This does not establish mandatory screening or Spark SSP use. [3 sources]
Privacy, control, and safety
Spark distributes the complete Lightning invoice, payment hash, amount, fee, direction, and wallet identities to every Operator while dividing only the cryptographic shares. Each Operator stores the original invoice beside the affected Spark identity. [6 sources]
Privacy, control, and safety
Spark permits multiple SSPs and Lightspark announced that Breez would operate one. The reviewed current Spark and Breez default configurations nevertheless identify the same single Lightspark SSP URL and identity. [4 sources]
Privacy, control, and safety
The reviewed Spark and Breez SDK snapshots each configure three Operators with a 2-of-3 threshold but select Lightspark SO0 by fixed identifier or index. No automatic coordinator rotation or failover was found in either snapshot; integrators can supply custom configurations. [3 sources]
Privacy, control, and safety
Spark expressly excludes tokens from privacy mode, permits anonymous token queries with no wallet filter, and paginates the complete token-transaction table. Returned records expose owner public keys, exact amounts, outputs, status, and timestamps. [6 sources]
Privacy, control, and safety
Spark identifies Flashnet as one of its three Operators. Flashnet's published service terms exclude sanctioned users and state that its compliance policies may result in transaction rejection, service restriction, or fund freezing within Flashnet's application services. [2 sources]
Privacy, control, and safety
Spark's reviewed V3 transfer paths distribute participant identities and transfer records to every configured Operator. Operators outside a signing subset still persist the transfer rows, so threshold signing does not make transfer metadata Operator-blind. [4 sources]
Privacy, control, and safety
A normal wallet authenticates the same durable identity to every Operator and queries each for that identity's leaves. Operator code can associate that pseudonym with connection metadata; structured request logging, when enabled, can also record request bodies and client details. [8 sources]
Privacy, control, and safety
The default wallet authenticates Lightspark's SSP with the same identity signer used at the Operator layer. The SSP model attaches that identity to request history containing full Lightning invoices and exact cooperative-exit Bitcoin destinations, creating a deterministic join key. [9 sources]
Privacy, control, and safety
For a publicly readable wallet, Spark's unauthenticated client can calculate its exact available balance and enumerate leaves. Returned records include ownership keys, tree relationships, exact values, timestamps, and multiple raw Bitcoin transaction fields. [4 sources]
Privacy, control, and safety
Spark describes static-address rotation as useful for privacy, but the implementation archives the old address and creates its replacement under the same immutable owner identity. That linkage is retained and distributed across the Operator set. [4 sources]
Privacy, control, and safety
Spark's own research calls deletion of historical Operator shares an unverifiable operational promise. The implementation contains real ephemeral-storage and cleanup controls, but it permits brief version coexistence, best-effort deletion, and a documented legacy main-database fallback. [5 sources]
Privacy, control, and safety
The published mainnet SDK inherits a two-of-three Operator threshold. Because the user side combines with any two Operator shares, one honest or nonparticipating Operator cannot by itself prevent two matching retained shares from satisfying the Operator quorum. [4 sources]
Privacy, control, and safety
In Spark's reference inbound-Lightning flow, the SSP is the former owner of the leaf. Under the published two-of-three configuration, retained matching keys from the Lightspark SSP, Lightspark Operator, and Flashnet Operator would be sufficient to sign a fresh conflicting spend; no evidence shows retention or collusion. [9 sources]