Lightning Memory

io.github.singularityjasonPublished by GitHub account singularityjasonv0.4.1Updated Oct 24, 2026

Decentralized agent memory for the Lightning economy. Nostr identity, L402 payments.

The publisher's own server: Memory.fit

Overview

AI-generated overview

Local MCP server giving AI agents persistent memory, vendor reputation, spending anomaly checks and budget gates for Lightning/L402 payments.

What you can do
  • Store, search, list, edit, export and Nostr-sync agent memories such as transactions, vendors, preferences and decisions
  • Score vendor reputation, summarize spending and flag abnormally high payments
  • Run pre-flight payment gates and set or check per-vendor budgets
  • Build vendor trust profiles, publish trust attestations, store and verify agent attestations, and export compliance reports
  • Discover remote Lightning Memory gateways and query them via L402 micropayments
When to use it
Useful for agents that pay over Lightning/L402 and need to remember past purchases, judge whether a vendor or price is trustworthy, and enforce spending limits. Also relevant for developers building autonomous Bitcoin/Lightning agents that want local-first memory with optional Nostr relay sync.
Requirements
Runs locally as a Python package installed with pip; no accounts or API keys, identity is a locally generated Nostr keypair. Nostr relay sync needs network access to the default relays. The optional L402 gateway needs a Phoenixd node, a funded channel and the Phoenixd password in the config file or the PHOENIXD_PASSWORD environment variable. Semantic search needs an extra install.
Before you install
Stores a Nostr private key on disk under the user's home directory, so protect that file. Memories and attestations can be published to public Nostr relays, and remote gateway queries send data to third parties. The gateway accepts Lightning payments and remote queries spend sats per operation, so budget rules should be set before enabling autonomous payments.

Installation

In SourceWeft

  1. Open Lightning Memory in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

Lightning Memory

[PyPI version] [Python 3.10+] [License: MIT]

Persistent memory for AI agents in the Lightning economy.

The Problem

AI agents spend sats over Lightning via L402 — but they can't remember what they bought. Every session starts from zero. Every vendor is a stranger. Every price is accepted at face value. An agent that paid 500 sats yesterday doesn't know if today's 5,000 sat invoice is a price spike or normal.

The Solution

L1: Bitcoin      — settlesL2: Lightning    — paysL3: Lightning Memory — remembers

Lightning Memory gives agents persistent memory, vendor intelligence, and payment safety gates. Agents learn from their spending history, track vendor reputations, detect price anomalies, enforce budgets, and share trust signals with other agents.

Interactive Demo — watch an agent learn, get rugged, and route around bad actors.

Building the Agent Economy — trust, budgets, compliance, and the memory marketplace.

Who Is This For

  • Agents making L402 payments that need vendor reputation and spending discipline
  • Developers building autonomous agents on Bitcoin/Lightning
  • Anyone running an MCP-compatible AI agent (Claude, GPT, or any MCP client)

Quick Start

bash
pip install lightning-memorylightning-memory  # starts MCP server

Configure in Claude Code

json
{  "mcpServers": {    "lightning-memory": {      "command": "lightning-memory"    }  }}

Configure in Claude Desktop

json
{  "mcpServers": {    "lightning-memory": {      "command": "python",      "args": ["-m", "lightning_memory.server"]    }  }}

How It Compares

FeatureLightning MemoryMem0Raw file storageNo memory
Lightning/L402 awarenessYesNoNoNo
Vendor reputation trackingYesNoManualNo
Spending anomaly detectionYesNoNoNo
Nostr identity (BIP-340)YesNoNoNo
Relay sync (NIP-78)YesNoNoNo
Full-text + semantic searchYesYesNoNo
Agent-to-agent knowledge marketsYes (L402 gateway)NoNoNo
Budget enforcementYesNoNoNo
KYC/trust profilesYesNoNoNo
Payment pre-flight gateYesNoNoNo
Contradiction detectionYesNoNoNo
Local-first / offlineYesCloudYesN/A
MCP nativeYesPluginNoNo
Zero configYesAPI key requiredManual setupN/A

Tools (22)

Memory

ToolDescription
memory_storeStore a memory (transaction, vendor, preference, error, decision)
memory_querySearch by relevance (FTS5 + optional semantic search)
memory_listList memories with type/time filters
memory_editEdit content or metadata with audit trail
memory_syncSync with Nostr relays (push/pull)
memory_exportExport as NIP-78 Nostr events
python
memory_store(  content="Paid 500 sats to bitrefill.com for a $5 Amazon gift card via L402.",  type="transaction",  metadata='{"vendor": "bitrefill.com", "amount_sats": 500}')
memory_query(query="bitrefill payment history", limit=5)# → recency-weighted results with dedup and contradiction alerts

Lightning Intelligence

ToolDescription
ln_vendor_reputationReputation score from transaction history
ln_spending_summarySpending breakdown by vendor and protocol
ln_anomaly_checkDetect if a payment is abnormally high
python
ln_vendor_reputation(vendor="bitrefill.com")# → {reputation: {total_txns: 12, success_rate: 0.92, avg_sats: 450}, recommendation: "reliable"}
ln_anomaly_check(vendor="bitrefill.com", amount_sats=5000)# → {anomaly: {verdict: "high", context: "5000 sats is 11.1x the historical average..."}}

Payment Safety

ToolDescription
ln_preflightPre-flight gate: budget + anomaly + trust check before payment
ln_budget_setSet per-vendor spending limits (per txn, per day, per month)
ln_budget_checkCheck spending against limits
ln_budget_statusGateway earnings and L402 payment stats
python
ln_preflight(vendor="bitrefill.com", amount_sats=500)# → {decision: {verdict: "approve", budget_remaining_today: 4500, trust_score: 0.89}}
# If the vendor suddenly charges 50x:ln_preflight(vendor="bitrefill.com", amount_sats=25000)# → {decision: {verdict: "reject", reasons: ["exceeds daily limit of 5000 sats"]}}

Trust & Compliance

ToolDescription
ln_vendor_trustFull trust profile (KYC + reputation + community score)
ln_trust_attestPublish NIP-85 trust attestation to Nostr relays
ln_agent_attestStore a KYA (Know Your Agent) attestation
ln_agent_verifyLook up an agent's compliance status
ln_auth_sessionStore LNURL-auth session records
ln_auth_lookupLook up LNURL-auth sessions
ln_compliance_reportGenerate structured compliance export

Marketplace

ToolDescription
ln_discover_gatewaysFind remote Lightning Memory gateways via Nostr
ln_remote_queryQuery a remote gateway via L402 micropayment
python
ln_discover_gateways(operation="memory_query")# → {count: 2, gateways: [{url: "https://gw1.example.com", operations: {...}}, ...]}
ln_remote_query(  gateway_url="https://gw.example.com",  operation="ln_vendor_reputation",  params='{"vendor": "openai"}')# → Pays 3 sats, returns remote agent's vendor intelligence

Architecture

  • Nostr identity: Agent identity = Nostr keypair (BIP-340). No accounts, no API keys.
  • Local-first: SQLite with FTS5 full-text search + optional ONNX semantic search. Works offline.
  • Nostr sync: Memories written as NIP-78 events to relays. Portable, tamper-proof.
  • L402 payments: Pay-per-query gateway. 1-10 sats per operation.
  • Memory quality: Deduplication, contradiction detection, noise filtering, recency-weighted ranking, access tracking.

L402 Gateway

Run an L402 pay-per-query HTTP gateway. Other agents pay Lightning micropayments to access your agent's memory — no API keys, no accounts.

bash
pip install lightning-memory[gateway]lightning-memory-gateway  # Listening on 0.0.0.0:8402

How L402 Works

Agent                          Gateway                      Phoenixd  |                               |                            |  |-- GET /memory/query?q=... --->|                            |  |<-- 402 + Lightning invoice ---|--- create_invoice -------->|  |                               |<-- bolt11 + payment_hash --|  |                               |                            |  | [pay invoice via Lightning]   |                            |  |                               |                            |  |-- GET + L402 token ---------->|                            |  |   (macaroon:preimage)         |--- verify preimage ------->|  |<-- 200 + query results -------|                            |

Endpoints

EndpointMethodPriceDescription
/infoGETFreeGateway status, pricing, node info
/healthGETFreeHealth check
/memory/storePOST3 satsStore a memory
/memory/queryGET2 satsSearch memories by relevance
/memory/listGET1 satList memories with filters
/ln/vendor/{name}GET3 satsVendor reputation report
/ln/spendingGET2 satsSpending summary
/ln/anomaly-checkPOST3 satsPayment anomaly detection
/ln/preflightPOST3 satsPre-flight payment gate
/ln/trust/{name}GET2 satsVendor trust profile
/ln/budgetGET1 satBudget rules and spending
/ln/compliance-reportGET10 satsCompliance report export

Phoenixd Setup

  1. Download and run Phoenixd (listens on localhost:9740)
  2. Fund it with ~10,000 sats for initial channel opening
  3. Configure: ~/.lightning-memory/config.json → {"phoenixd_password": "<from ~/.phoenix/phoenix.conf>"}
  4. Start: lightning-memory-gateway

Docker

bash
PHOENIXD_PASSWORD=your-password docker compose up

CLI Commands

bash
lightning-memory                  # Start MCP serverlightning-memory stats            # Memory statistics dashboardlightning-memory export json      # Export memories as JSONlightning-memory export csv       # Export memories as CSVlightning-memory relay-status     # Check Nostr relay connectivitylightning-memory-gateway          # Start L402 HTTP gatewaylightning-memory-manifest         # Generate gateway discovery manifest

Relay Configuration

Default relays: wss://relay.damus.io, wss://nos.lol, wss://relay.nostr.band

Customize in ~/.lightning-memory/config.json:

json
{  "relays": ["wss://relay.damus.io", "wss://nos.lol", "wss://relay.primal.net"],  "sync_timeout_seconds": 30,  "max_events_per_sync": 500}
RelaySpeedReliabilityNotes
wss://relay.damus.ioFastHighMost popular, good uptime
wss://nos.lolFastHighReliable, good NIP-78 support
wss://relay.nostr.bandMediumMediumSearch-focused, may be slow
wss://relay.primal.netFastHighWell-maintained
wss://nostr.wineFastHighPaid relay, less spam

Optional: Semantic Search

Add ONNX-based semantic similarity search alongside FTS5 keyword search:

bash
pip install lightning-memory[semantic]

Queries then use hybrid ranking: FTS5 BM25 + cosine similarity with reciprocal rank fusion. "Which vendors are reliable for transcription" matches memories containing "whisper API" and "audio-to-text" even without exact keyword overlap.

Data Storage

~/.lightning-memory/  memories.db    # SQLite database  keys/    private.key  # Nostr private key (chmod 600)    public.key   # Nostr public key (your agent identity)

Roadmap

  • Phase 1: MCP server with local SQLite storage
  • Phase 2: Lightning intelligence (vendor reputation, spending summary, anomaly detection)
  • Phase 3: Nostr relay sync (NIP-78, Schnorr signing, bidirectional sync)
  • Phase 4: L402 payment gateway (macaroons, Phoenixd, HTTP gateway)
  • Phase 5: Compliance & trust (budget enforcement, vendor KYC, community reputation, pre-flight gate)
  • Phase 6: Memory marketplace (gateway discovery, remote L402 queries, gateway client)
  • Phase 7: Agent reliability (semantic search, deduplication, contradiction detection, circuit breakers)

Star History

[Star History Chart]

License

MIT

Source: README.md at commit 16ce82e

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.4.1LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

Other Memory integrations