1
0
forked from GRIN/grim

Build 23: README rewrite + banner — describe Goblin, not Grim

Replace the inherited Grim README with one that reflects what Goblin actually
is: a private, Cash App-style GRIN wallet that pays @usernames via NIP-17
gift-wrapped DMs over Tor, with in-app nostr identity and the goblin.st
identity service. Adds the Goblin banner, a payment-flow diagram, correct
build instructions (binary is `goblin`), and keeps the Claude credit.
This commit is contained in:
Claude
2026-06-11 23:26:11 -04:00
parent f2402eb24d
commit 95403516d5
2 changed files with 46 additions and 20 deletions
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

+46 -20
View File
@@ -1,38 +1,64 @@
# Grim <img height="20" src="img/grin-logo.png"/> <img height="20" src="img/logo.png"/> <p align="center">
Cross-platform GUI for [GRiN ツ](https://grin.mw) in [Rust](https://www.rust-lang.org/) <img src="Goblin-Banner.png" alt="Goblin" width="680"/>
for maximum compatibility with original [Mimblewimble](https://github.com/mimblewimble/grin) implementation. </p>
Initially supported platforms are Linux, Mac, Windows, limited Android and possible web support with help of [egui](https://github.com/emilk/egui) - immediate mode GUI library in pure Rust.
Named by the character [Grim](http://harrypotter.wikia.com/wiki/Grim) - the shape of a large, black, menacing, spectral giant dog. # Goblin
![image](img/cover.png) Goblin is a private, Cash App-style wallet for [GRIN ツ](https://grin.mw) — confidential digital cash on [Mimblewimble](https://github.com/mimblewimble/grin), with no amounts or addresses on the chain.
Instead of passing slatepack files back and forth, you **pay a `@username` (or an `npub`)** and the payment is delivered for you as an **end-to-end encrypted message over [nostr](https://github.com/nostr-protocol/nips) and Tor**. Relays only ever see ciphertext — never the amount, the sender, or the recipient.
## Build instructions Goblin is a fork of the **Grim** egui GRIN wallet: it keeps Grim's full GRIN node/wallet engine and layers a Nostr-native, mobile-first payments experience on top.
### Install Rust
Follow instructions on [Windows](https://forge.rust-lang.org/infra/other-installation-methods.html). ## What it does
`curl https://sh.rustup.rs -sSf | sh` - **Send to people** — pay a `@username` or `npub`; the GRIN slatepack travels as a NIP-17 gift-wrapped DM (kind 1059) over Tor and is applied automatically by the recipient's wallet. No files to swap, no need to both be online at once.
- **In-app identity** — a nostr payment key that is deliberately *not* part of your seed, so you can rotate it any time to stay unlinkable without touching your funds. An optional human-readable `@name` (and hosted avatar) comes from the goblin.st identity service.
- **Private by construction** — GRIN's address-less, confidential chain; every relay and HTTP request routed through an embedded [arti](https://gitlab.torproject.org/tpo/core/arti) Tor client (webtunnel bridge by default); keys, names and history stay on your device.
- **Configurable amount pairing** — show balances against a world currency, Bitcoin, or sats (rates fetched over Tor), or turn the preview off.
- **Cross-platform** — Linux, macOS, Windows, Android, built in pure Rust on [egui](https://github.com/emilk/egui).
### Desktop ## How a payment travels
To build and run application go to project directory and run: ```
you ──slatepack──▶ NIP-17 gift wrap (kind 1059, NIP-44 encrypted)
arti / Tor
┌─────────────┴─────────────┐
your relays recipient's DM relays (kind 10050)
└─────────────┬─────────────┘
recipient ◀──unwrap, verify seal author, apply slatepack
```
Both parties only need one relay in common. The default set is the Goblin relay plus large public relays (`relay.damus.io`, `nos.lol`), and the set is editable in **Settings → Relays**.
## Build
### Desktop (Linux / macOS / Windows)
``` ```
git submodule update --init --recursive git submodule update --init --recursive
cargo build --release cargo build --release
./target/release/grim ./target/release/goblin
``` ```
Tor's webtunnel bridge is built from Go at compile time — install Go first (e.g. `pacman -S go`). Without it the bundled bridge is inert and Tor will not bootstrap on networks that block direct Tor connections.
### Android ### Android
#### Set up the environment
Install Android SDK / NDK / Platform Tools for your OS according to this [FAQ](https://github.com/codepath/android_guides/wiki/installing-android-sdk-tools). Install the Android SDK / NDK, then from the repo root:
#### Build the project ```
Run Android emulator or connect a real device. Command `adb devices` should show at least one device. ./scripts/android.sh build|release v7|v8|x86
In the root of the repo run `./scripts/android.sh build|release v7|v8|x86`, where is `v7`, `v8`, `x86` - device CPU architecture for `build` type, for `release` specify version number in format `major.minor.patch`. ```
`v7`/`v8`/`x86` is the device CPU architecture for `build`; for `release` pass a version in `major.minor.patch` form.
## Identity service (`goblin-nip05d`)
The optional `@name` + avatar service lives in `goblin-nip05d/` (axum + SQLite) and is deployed at [goblin.st](https://goblin.st). It implements NIP-05 resolution, NIP-98-authenticated registration/transfer/release, and a hardened avatar pipeline (magic-byte sniffing, bounded decode, full re-encode to a clean 256×256 PNG). The wallet is fully usable — and fully anonymous — without it.
## License ## License
@@ -40,6 +66,6 @@ Apache License v2.0.
## Credits ## Credits
**Goblin** — the Cash App-style, Nostr-native payments experience layered on top of this wallet (end-to-end encrypted NIP-17 payments over Tor, in-app identity, and the goblin.st identity service) — was designed and built with development assistance from **Claude** ([Anthropic](https://www.anthropic.com)). **Goblin** — the Cash App-style, Nostr-native payments experience layered on top of this wallet — was designed and built by the project owner with development assistance from **Claude** ([Anthropic](https://www.anthropic.com)).
The underlying cross-platform grin wallet is the upstream **Grim** project. The underlying cross-platform GRIN wallet engine is the upstream **Grim** project.