Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
5bbc458
feat(mint): Add Spark L2 wallet backend with Node sidecar
a1denvalu3 May 26, 2026
bcc5ce4
fix(mint): hoist imports to the top of the file in sparkl2.py
a1denvalu3 May 26, 2026
1e82d79
fix(mint): spawn bridge in backend init instead of status method
a1denvalu3 May 26, 2026
0abeb43
docs: Update .env.example to include Spark L2 Wallet
a1denvalu3 May 26, 2026
3f4a8a8
fix(mint): map correct Spark L2 status enums for invoice tracking
a1denvalu3 May 26, 2026
e7f3eae
chore(mint): clean up stale comments in Spark L2 bridge
a1denvalu3 May 26, 2026
d52be5f
fix(mint): fix fee parsing from Spark SDK's CurrencyAmount object
a1denvalu3 May 26, 2026
17761f2
fix(mint): ensure fee calculation safely parses Spark CurrencyAmount …
a1denvalu3 May 26, 2026
653d281
fix(mint): map all failure enum variants in Spark L2 backend
a1denvalu3 May 26, 2026
4ef1d78
refactor(mint): replace Node.js sidecar with Python breez-sdk-spark f…
a1denvalu3 May 26, 2026
33681ab
fix(mint): remove inline imports in Spark L2 backend
a1denvalu3 May 26, 2026
5eaac39
feat(mint): configure Spark L2 mnemonic securely via MINT_SPARK_MNEMONIC
a1denvalu3 May 26, 2026
922db88
fix(mint): pass correct parameters for Breez BOLT11 invoice generation
a1denvalu3 May 26, 2026
d923aba
fix(mint): correctly access Breez Spark event properties to avoid Att…
a1denvalu3 May 26, 2026
5730d54
fix(mint): properly check PAYMENT_SUCCEEDED enum properties in Spark …
a1denvalu3 May 26, 2026
66a72f2
fix(mint): fix Breez SDK parameter and attribute access bugs in Spark…
a1denvalu3 May 26, 2026
8c7b396
fix(mint): pass correct string to Breez description field to prevent …
a1denvalu3 May 26, 2026
ea5a60c
fix(mint): refactor out getattr and inspect.iscoroutinefunction worka…
a1denvalu3 May 27, 2026
3f23d95
fix(mint): map correct Spark L2 status on payment completion and trea…
a1denvalu3 May 27, 2026
b269a7d
fix(sparkl2): prevent description_hash from being used as payment_hash
a1denvalu3 May 28, 2026
9067c24
fix(sparkl2): robustly cap fees across all payment methods to prevent…
a1denvalu3 Jun 4, 2026
ed4a07a
fix(sparkl2): disable support for on-chain bitcoin payments
a1denvalu3 Jun 4, 2026
10743a5
fix(sparkl2): enforce only BOLT11 payments in backend to match Cashu …
a1denvalu3 Jun 5, 2026
7115a65
fix(sparkl2): optimize get_invoice_status by filtering list_payments
a1denvalu3 Jun 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 6 additions & 3 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -63,10 +63,8 @@ MINT_DATABASE=data/mint

# Funding source backends
# Set one funding source backend for each unit
# Supported: FakeWallet, LndRestWallet, LndRPCWallet, CLNRestWallet, BlinkWallet, LNbitsWallet, StrikeWallet, CoreLightningRestWallet (deprecated)

# Available backends: FakeWallet, LNbitsWallet, StrikeWallet, BlinkWallet, CoreLightningRestWallet, LndRestWallet, LndRPCWallet, SparkL2Wallet
MINT_BACKEND_BOLT11_SAT=FakeWallet
# Only works if a usd derivation path is set
# MINT_BACKEND_BOLT11_USD=FakeWallet
# MINT_BACKEND_BOLT11_EUR=FakeWallet

Expand Down Expand Up @@ -111,6 +109,11 @@ MINT_BLINK_KEY=blink_abcdefgh
# Use with StrikeWallet for BTC, USD, and EUR
MINT_STRIKE_KEY=ABC123

# Use with SparkL2Wallet
# MINT_SPARK_NETWORK="TESTNET" # or "MAINNET", "REGTEST"
# MINT_SPARK_API_KEY="your_api_key"
# MINT_SPARK_MNEMONIC="abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about"

# fee to reserve in percent of the amount
LIGHTNING_FEE_PERCENT=1.0
# minimum fee to reserve
Expand Down
4 changes: 4 additions & 0 deletions cashu/core/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,10 @@ class MintBackends(MintSettings):
mint_strike_key: Optional[str] = Field(default=None)
mint_blink_key: Optional[str] = Field(default=None)

mint_spark_network: str = Field(default="TESTNET")
mint_spark_api_key: Optional[str] = Field(default=None)
mint_spark_mnemonic: Optional[str] = Field(default=None)


class MintLimits(MintSettings):
mint_rate_limit: bool = Field(
Expand Down
1 change: 1 addition & 0 deletions cashu/lightning/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
from .lnbits import LNbitsWallet # noqa: F401
from .lnd_grpc.lnd_grpc import LndRPCWallet # noqa: F401
from .lndrest import LndRestWallet # noqa: F401
from .sparkl2 import SparkL2Wallet # noqa: F401
from .strike import StrikeWallet # noqa: F401

backend_settings = [
Expand Down
Loading
Loading