Offline transaction verifier for Safe multisig wallets with ERC-7730 clear signing.
Generator · Desktop App · CLI
SafeLens generates and verifies evidence packages for Gnosis Safe multisig transactions. Paste a Safe transaction URL into the generator, download the evidence.json, then verify signatures and hashes offline using the desktop app or CLI.
- Generate an
evidence.jsonpackage from any Safe transaction URL - Verify signatures, hashes, and decoded calldata locally with zero network access
- Clear signing via built-in and ERC-7730 interpreters for human-readable transaction details
The desktop verifier ships with connect-src 'none' CSP and no shell-open capability, it cannot make network requests during verification. All crypto runs locally using bundled libraries. See TRUST_ASSUMPTIONS.md for the full model.
Generate an evidence package at safelens.lfg.rs, or via CLI:
bun --cwd packages/cli dev analyze "https://app.safe.global/transactions/tx?..." --out evidence.jsonVerify offline:
bun --cwd packages/cli dev verify --file evidence.jsonProject structure, setup, and build instructions
| Path | Description |
|---|---|
apps/generator |
Next.js webapp, creates and exports evidence.json |
apps/desktop |
Tauri + Vite desktop app, verifies evidence offline |
packages/core |
Shared validation, hashing, signature verification, warnings |
packages/cli |
CLI wrapper over core logic |
Requires Bun.
bun installbun run dev # generator at localhost:3000
bun run dev:tauri # desktop app (full Tauri shell)
bun run dev:desktop # desktop frontend only (no Tauri)bun run build # generator + desktop frontend assets
bun run build:tauri # full desktop distributableSettings are JSON (address book and contract registry).
- CLI:
~/.safelens/settings.json - Desktop: app data folder
bun --cwd packages/cli dev settings init # initialize settings
bun --cwd packages/cli dev sources # show verification sourcesrm -rf apps/generator/.next apps/desktop/src-tauri/target apps/desktop/src-tauri/.tauri apps/desktop/src-tauri/Cargo.lock .opencode




