
LoveClaw
LoveClaw is a relationship trust app for two people who opt into mutual accountability.
Demo
About
 ## It's not a love lock But it's in the same spirit: a shared commitment you both choose. Each person installs the **LoveClaw** client, pairs over a **QR code** or **invite link**, and from then on the two phones stay in sync **peer-to-peer over the AXL mesh**. There is **no central couples server**. Each partner's **AI agent** is minted as an **NFT on the 0G Galileo** testnet; relationship events are stored in **0G Memory**; and both partners can lock **real ETH** in **LoveClawPact** on **Ethereum mainnet** to back the seriousness of the pact they agreed on. On **Today**, they also share a **mutual portfolio**: **ETH / USDC** balances, live pricing, and **co-approved** swaps (negotiated over AXL until both approve). Each device runs a **local agent** on **consented** signals: app usage metadata, coarse GPS, notification **categories** (not message bodies), screen activity, and presence patterns—similar in spirit to **OpenClaw**: permissioned signals are evaluated on-device and exchanged with your partner only over the channels you control, then weighed against the pact you both signed. The couple agrees on a **pact** that defines what counts as a breach. If the agents infer a violation, a **breach alert** goes to the partner over **AXL**, the event is written to **0G Memory**, and if ETH was staked the **on-chain penalty logic** on LoveClawPact can apply. Every partner message travels over **AXL** with no broker in the middle: breach alerts, diary sync, location heartbeats, pact amendments, swap coordination, and profile/avatar updates. Partners can type natural-language swap commands like "swap 0.1 ETH for USDC". The app parses intent, calls `POST /uniswap/v1/quote`, negotiates the swap peer-to-peer over **AXL**, and only after **both** confirm does it call `POST /uniswap/v1/swap` and broadcast the signed transaction with **ethers**. ## AI diary and copilot The **Diary** tab builds a daily narrative from recent signals, shared notes, and semantic context from **0G Memory**. The result reads like a **pixel-art style** journal entry that **both** partners see; entries sync over **AXL**. Type `@loveclaw` in chat to use the **pact architect**: propose rules, tighten wording, or ask questions. The model responds with structured JSON (`propose_rule`, `need_info`, `chat`). If a rule change would alter monitoring, it is sent to your partner as `pact_changes_propose` over **AXL** for approval. ## Plain-language pacts At pairing you mix **preset triggers** (dating installs, location, diary, etc.) with **custom rules in plain language**—sentences, quotes, in-jokes, or house norms. **Anything both partners explicitly agree to can live in the pact text**, as long as you are realistic about what automation can observe. **Automated breach paths only fire** when local agents can **approximate** a violation from **consented signals** they already have: installed apps / package names, coarse GPS and presence, notification *categories* without message bodies, screen-on patterns, shared diary and chat context, heartbeats, and similar. A rule that would need evidence the stack cannot access stays a **mutual promise**—not a silent hard tripwire. Use `@loveclaw` in chat to draft or rephrase rules; anything that changes monitoring still goes to your partner as `pact_changes_propose` over **AXL** until they accept.
How it's made
### Moving parts  LoveClaw is a **mobile app** built on an **OpenClaw**-style fork: each phone runs a **local agent** that **collects consented signals** (apps, rough location, notification categories—not message bodies, screen-on patterns, and similar). After pairing, those signals feed **local** checks against the **pact** you both agreed on, and the two devices **share updates with each other**—chat, diary, pact changes, heartbeats, and swap handshakes—**peer-to-peer over AXL**, with **no central “couples server.”** **Signals** can also be batched through a small **Python relay** in `prototype/relay/` for a stronger breach pass (model + fallback), an operator console stream, and **typed episodes** into **0G Memory** (router → EverMemOS → search + durable storage, including `zgs_kv` on testnet). Roughly: *signals in → “does this break our rules?” → memory and optional demo logging.* **When something looks like a breach**, the other person gets an **alert over AXL**, the moment can be **remembered in 0G Memory**, and if you turned on **ETH stakes**, **LoveClawPact** on **Ethereum mainnet** is where the serious on-chain breach / dissolve story runs (that contract is exercised with **Foundry** tests in `evm/`). **AXL** is the **private wire between the two phones**: chat, diary sync, pact edits, heartbeats, and swap coordination (`swap_confirm` / `swap_execute`) all ride that mesh—direct partner-to-partner paths, not a shared backend for couple traffic. **0G** shows up in three practical ways: mint an **ERC-7857 Agentic ID** on **Galileo** with **ethers + MetaMask**, push diary snapshots to **0G Storage** with **`@0gfoundation/0g-ts-sdk`**, and optionally pick **0G Compute** in settings like any other AI provider. **Uniswap (Trading API v1)** powers quotes and swaps from the **Today** tab. **Swaps mirror the two-party pact idea**: one partner proposes in plain language, the app fetches a **quote**, the **other phone must confirm over AXL**, you **re-quote at execute time** (routes go stale fast), then call **`/swap`** and broadcast with the **vault signer** via **ethers**. Mutual money moves stay **co-signed**, not solo.