feat: receive L402 payments through a trusted Cashu mint #25

Merged
thesimplekid merged 1 commit from feat/mint-l402 into main 2026-10-09 16:38:12 +00:00
Owner

Allow automatic L402 invoices from a trusted Cashu mint alongside LDK. Persist the quote and invoice association, validate the payer credential and request binding, and require locally verified, durable ecash issuance before completing the receipt. Recovery safeguards paid quotes without authorizing requests that lack a valid credential.

Unify the public Lightning receiver configuration while preserving serialized LDK settings; Rust callers can convert LdkConfig with .into(). Reject unsupported manual capture and x402 before creating a quote. Document the payer preimage requirement and direct Cashu alternative, and add a compilable example.

Closes #20. Depends on #24.

Validation: quote cancellation/restart, lost responses, credential binding, issuance failure, unauthenticated paid quotes, repeated receipts, and storage contracts passed. Formatting, Clippy, tests, docs, native Nix checks, and the real Bitcoin/LDK regtest passed for the final stack (78 tests plus regtest).

Allow automatic L402 invoices from a trusted Cashu mint alongside LDK. Persist the quote and invoice association, validate the payer credential and request binding, and require locally verified, durable ecash issuance before completing the receipt. Recovery safeguards paid quotes without authorizing requests that lack a valid credential. Unify the public Lightning receiver configuration while preserving serialized LDK settings; Rust callers can convert LdkConfig with .into(). Reject unsupported manual capture and x402 before creating a quote. Document the payer preimage requirement and direct Cashu alternative, and add a compilable example. Closes #20. Depends on #24. Validation: quote cancellation/restart, lost responses, credential binding, issuance failure, unauthenticated paid quotes, repeated receipts, and storage contracts passed. Formatting, Clippy, tests, docs, native Nix checks, and the real Bitcoin/LDK regtest passed for the final stack (78 tests plus regtest).
feat: receive L402 payments through a trusted Cashu mint
Some checks failed
Checks / format (push) Successful in 1m0s
Checks / cdk-compatible (push) Successful in 11m34s
Checks / dependencies (push) Successful in 1m40s
Checks / checks (push) Failing after 16m2s
Checks / format (pull_request) Successful in 1m9s
Checks / dependencies (pull_request) Successful in 1m12s
Checks / cdk-compatible (pull_request) Successful in 11m18s
Checks / checks (pull_request) Failing after 26m8s
a9c2825669
thesimplekid changed target branch from fix/hold-deadlines to main 2026-10-09 16:38:11 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
thesimplekid/satsettle!25
No description provided.