6c56dafb72
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
283 lines
17 KiB
HTML
283 lines
17 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<title>Goblin — a private wallet for GRIN ツ</title>
|
|
<meta name="description" content="Pay a username and the payment travels as an end-to-end encrypted message over nostr, through the Nym mixnet. No files to swap, no addresses on the chain.">
|
|
<meta property="og:type" content="website">
|
|
<meta property="og:title" content="Goblin — a private wallet for GRIN ツ">
|
|
<meta property="og:description" content="Pay a username — slatepacks and the Nym mixnet handled for you. Relays only ever see ciphertext.">
|
|
<meta property="og:url" content="https://goblin.st/">
|
|
<meta property="og:image" content="https://goblin.st/assets/goblin-icon.png">
|
|
<link rel="icon" type="image/png" href="assets/goblin-icon.png">
|
|
<link rel="apple-touch-icon" href="assets/goblin-icon.png">
|
|
<link rel="stylesheet" href="styles.css">
|
|
</head>
|
|
<body>
|
|
|
|
<div class="wrap">
|
|
<header class="site">
|
|
<a class="brand" href="/">
|
|
<span class="mark" aria-hidden="true"></span>
|
|
<span class="word">Goblin</span>
|
|
</a>
|
|
<nav class="site" aria-label="Site">
|
|
<a href="#features">Features</a>
|
|
<a href="#handles">Handles</a>
|
|
<a href="#downloads">Downloads</a>
|
|
<a class="gh" href="https://github.com/2ro/goblin" rel="noopener">
|
|
<svg viewBox="0 0 16 16" aria-hidden="true"><path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.01 8.01 0 0 0 16 8c0-4.42-3.58-8-8-8Z"/></svg>
|
|
GitHub
|
|
</a>
|
|
</nav>
|
|
</header>
|
|
|
|
<main>
|
|
<section class="hero">
|
|
<div>
|
|
<span class="kicker">Free & open source</span>
|
|
<h1>Send grin like <span class="strike">a text.</span></h1>
|
|
<p class="lede">
|
|
Goblin is a private wallet for
|
|
<strong>GRIN</strong>. Pay a <span class="at">username</span> and the payment is
|
|
delivered as an end-to-end encrypted message over <strong>nostr</strong>, through
|
|
the <strong>Nym mixnet</strong>. No files to swap. No need to both be online.
|
|
</p>
|
|
<div class="cta-row">
|
|
<a class="btn-primary" href="#downloads">
|
|
<svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 3v10.6l3.3-3.3 1.4 1.4-5.7 5.7-5.7-5.7 1.4-1.4 3.3 3.3V3h2zM5 19h14v2H5v-2z"/></svg>
|
|
Get the builds
|
|
</a>
|
|
<div class="store-btns" role="note" aria-label="App stores coming soon">
|
|
<span class="store" aria-disabled="true" title="Coming soon">
|
|
<svg viewBox="0 0 24 24" aria-hidden="true"><path d="M17.05 12.54c-.03-2.89 2.36-4.28 2.47-4.35-1.35-1.97-3.44-2.24-4.18-2.27-1.78-.18-3.47 1.05-4.37 1.05-.9 0-2.29-1.02-3.77-1-1.94.03-3.72 1.13-4.72 2.86-2.01 3.49-.51 8.65 1.45 11.48.96 1.39 2.1 2.94 3.6 2.88 1.45-.06 1.99-.93 3.74-.93 1.74 0 2.24.93 3.77.9 1.56-.03 2.54-1.41 3.49-2.81 1.1-1.61 1.55-3.17 1.58-3.25-.04-.02-3.03-1.16-3.06-4.56zM14.17 4.04c.8-.97 1.34-2.32 1.19-3.66-1.15.05-2.55.77-3.38 1.74-.74.85-1.39 2.22-1.22 3.53 1.29.1 2.6-.65 3.41-1.61z"/></svg>
|
|
<span class="lines"><small>App Store</small><span>Coming soon</span></span>
|
|
<i class="soon">SOON</i>
|
|
</span>
|
|
<span class="store" aria-disabled="true" title="Coming soon">
|
|
<svg viewBox="0 0 24 24" aria-hidden="true"><path d="M3.6 1.8c-.35.37-.55.94-.55 1.68v17.07c0 .74.2 1.31.55 1.68l.09.08 9.56-9.56v-.22L3.69 1.71l-.09.09zm13.05 13.04-3.18-3.18v-.22l3.19-3.19.07.04 3.78 2.15c1.08.61 1.08 1.61 0 2.23l-3.78 2.14-.08.03zm-3.4-2.96L3.69 22.31c.36.38 1.5.42 2.13.06l11.27-6.4-3.84-4.09zm0-7.76L5.82 1.63C5.19 1.27 4.05 1.31 3.69 1.7l9.56 9.56 3.84-4.1-3.84-2.04z" transform="translate(1.5 0)"/></svg>
|
|
<span class="lines"><small>Google Play</small><span>Coming soon</span></span>
|
|
<i class="soon">SOON</i>
|
|
</span>
|
|
</div>
|
|
</div>
|
|
<p class="micro">
|
|
Linux · macOS · Windows · Android. Apache-2.0, sha256 checksums on every build.
|
|
</p>
|
|
</div>
|
|
|
|
<div class="phone-wrap" aria-hidden="true">
|
|
<div class="phone">
|
|
<img class="screen" src="assets/screenshot.png" alt="" loading="lazy" decoding="async">
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<section class="rail-sec" aria-label="How a payment travels">
|
|
<div class="rail-card">
|
|
<div class="rail-title">
|
|
<h2>How a payment travels</h2>
|
|
<span class="sub">Payments are NIP-44 encrypted; relays only ever see ciphertext — never the amount, sender, or recipient. Privacy is Mimblewimble on-chain + Nym on the wire.</span>
|
|
</div>
|
|
<div class="rail">
|
|
<img class="packet" src="assets/grin-logo.png" alt="" aria-hidden="true">
|
|
<div class="stop">
|
|
<div class="pin"><svg viewBox="0 0 24 24"><circle cx="12" cy="8" r="3.4"/><path d="M5 20c.8-3.6 3.6-5.6 7-5.6s6.2 2 7 5.6"/></svg></div>
|
|
<b>You</b><i>type an amount, pick a name</i>
|
|
</div>
|
|
<div class="stop">
|
|
<div class="pin"><svg viewBox="0 0 24 24"><rect x="4" y="7" width="16" height="13" rx="2"/><path d="M4 11h16M12 7v13M9.5 7C7.5 5 8.5 3 10.5 3.5 11.7 3.8 12 5.5 12 7c0-1.5.3-3.2 1.5-3.5 2-.5 3 1.5 1 3.5"/></svg></div>
|
|
<b>Gift wrap</b><i>slatepack sealed, <a href="https://nips.nostr.com/17" rel="noopener">NIP-17</a></i>
|
|
</div>
|
|
<div class="stop">
|
|
<div class="pin"><svg viewBox="0 0 24 24"><circle cx="12" cy="12" r="8.5"/><circle cx="12" cy="12" r="5.2"/><circle cx="12" cy="12" r="2"/></svg></div>
|
|
<b>Nym mixnet</b><i>5-hop, linked in-process</i>
|
|
</div>
|
|
<div class="stop">
|
|
<div class="pin"><svg viewBox="0 0 24 24"><path d="M12 21s-6.5-4.3-6.5-9.2C5.5 8 8 6 12 6s6.5 2 6.5 5.8C18.5 16.7 12 21 12 21z" transform="translate(0 -1.5)"/><path d="M9 11.5l2 2 4-4.5"/></svg></div>
|
|
<b>them</b><i>unwrapped, verified, applied</i>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<section id="features">
|
|
<div class="sec-head">
|
|
<h2>Private by construction</h2>
|
|
<p>Pay anyone instantly and directly — an addressless, confidential
|
|
chain underneath.</p>
|
|
</div>
|
|
<div class="features">
|
|
<article class="feat">
|
|
<div class="glyph"><svg viewBox="0 0 24 24"><path d="M9.88 9.88a3 3 0 1 0 4.24 4.24"/><path d="M10.73 5.08A10.4 10.4 0 0 1 12 5c7 0 10 7 10 7a13.2 13.2 0 0 1-1.67 2.68"/><path d="M6.61 6.61A13.5 13.5 0 0 0 2 12s3 7 10 7a9.7 9.7 0 0 0 5.39-1.61"/><path d="M2 2l20 20"/></svg></div>
|
|
<h3>Confidential by design</h3>
|
|
<p>GRIN is confidential digital cash — every amount is cryptographically
|
|
hidden. Like handing someone cash, what you send stays between the two
|
|
of you.</p>
|
|
</article>
|
|
<article class="feat">
|
|
<div class="glyph"><svg viewBox="0 0 24 24"><circle cx="12" cy="12" r="4"/><path d="M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-4 8"/></svg></div>
|
|
<h3>Pay a username</h3>
|
|
<p>Handles are <a href="https://nips.nostr.com/5" rel="noopener">NIP-05</a> identities at <code>goblin.st</code>. Pay
|
|
<code>alice</code> — or any raw <code>npub</code> on nostr.</p>
|
|
</article>
|
|
<article class="feat">
|
|
<div class="glyph"><svg viewBox="0 0 24 24"><rect x="3" y="5" width="18" height="14" rx="2"/><path d="M3 7l9 6 9-6"/></svg></div>
|
|
<h3>Sealed delivery</h3>
|
|
<p>The slatepack travels as a NIP-17 gift-wrapped DM (<a href="https://nostrbook.dev/kinds/1059" rel="noopener">kind 1059</a>) and is
|
|
applied automatically by the recipient's wallet — no files, no meetups.</p>
|
|
</article>
|
|
<article class="feat">
|
|
<div class="glyph"><svg viewBox="0 0 24 24"><circle cx="12" cy="12" r="9"/><circle cx="12" cy="12" r="5.5"/><circle cx="12" cy="12" r="2"/></svg></div>
|
|
<h3>Mixnet, built in</h3>
|
|
<p>Your payments and identity — nostr messages, names, price and
|
|
avatars — ride the
|
|
<a href="https://nym.com" rel="noopener">Nym mixnet</a>, with the SDK
|
|
linked right into the app. Five hops of cover traffic hide who pays
|
|
whom. (The grin node connects directly — public chain data, not tied
|
|
to you.) Nothing to set up.</p>
|
|
</article>
|
|
<article class="feat">
|
|
<div class="glyph"><svg viewBox="0 0 24 24"><circle cx="8" cy="15" r="5"/><path d="M11.5 11.5 21 2"/><path d="M16.5 6.5 19 9"/><path d="M14 9l2.5 2.5"/></svg></div>
|
|
<h3>Separate from your wallet key</h3>
|
|
<p>Your nostr payment key is deliberately separate from your funds.
|
|
Rotate it any time to stay unlinkable — your grin never moves.</p>
|
|
</article>
|
|
<article class="feat">
|
|
<div class="glyph"><svg viewBox="0 0 24 24"><path d="M4 21v-7M4 10V3M12 21v-9M12 8V3M20 21v-5M20 12V3M1 14h6M9 8h6M17 16h6"/></svg></div>
|
|
<h3>Your numbers, your way</h3>
|
|
<p>Off by default. Opt into a world currency, Bitcoin, or sats and the
|
|
rate is fetched over the mixnet — nothing leaves your device otherwise.</p>
|
|
</article>
|
|
</div>
|
|
</section>
|
|
|
|
<section id="handles">
|
|
<div class="handle-grid">
|
|
<div>
|
|
<p class="big-at">Be <span class="at-name">yourself</span>.</p>
|
|
<p>Claim a free handle in the app and friends can pay you by name.
|
|
Your handle resolves through the open <a href="https://github.com/2ro/goblin-nip05d" rel="noopener">goblin.st identity service</a> —
|
|
standard NIP-05, one name per key, yours until you release it.</p>
|
|
<p>Or remain anonymous and reset your identity whenever you want.</p>
|
|
</div>
|
|
<div class="code-card" aria-label="NIP-05 resolution example">
|
|
<span class="c-dim">$</span> curl 'https://goblin.st/.well-known/nostr.json?name=alice'<br>
|
|
{<br>
|
|
<span class="c-key">"names"</span>: {<br>
|
|
<span class="c-key">"alice"</span>: <span class="c-str">"7d2f19c0…a4c41a"</span><br>
|
|
}<br>
|
|
}
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<section id="downloads">
|
|
<div class="sec-head">
|
|
<h2>Downloads</h2>
|
|
<p>Fresh from the forge. Verify with the checksums file — every build ships one.</p>
|
|
</div>
|
|
<div class="dl-grid">
|
|
<div class="dl-card">
|
|
<span class="build-chip"><span class="dot"></span> latest release</span>
|
|
<div class="dl-rows">
|
|
<a href="https://github.com/2ro/goblin/releases/latest">
|
|
<svg viewBox="0 0 24 24"><path d="M12 3c-2 0-3.5 1.6-3.5 3.8 0 1.5-.6 2.7-1.5 4-1 1.4-2 3-2 5C5 19 7 21 9.5 20.4c.8-.2 1.6-.2 2.5-.2s1.7 0 2.5.2C17 21 19 19 19 15.8c0-2-1-3.6-2-5-.9-1.3-1.5-2.5-1.5-4C15.5 4.6 14 3 12 3z"/><path d="M9.5 9.8h.01M14.5 9.8h.01"/></svg>
|
|
<span class="name">Linux <span class="file">x86_64 · tar.gz</span></span>
|
|
<span class="arrow">↓</span>
|
|
</a>
|
|
<a href="https://github.com/2ro/goblin/releases/latest">
|
|
<svg viewBox="0 0 24 24"><path d="M12 3l8 4.5v9L12 21l-8-4.5v-9L12 3z"/><path d="M4 7.5l8 4.5 8-4.5M12 12v9"/></svg>
|
|
<span class="name">Linux AppImage <span class="file">x86_64 · chmod +x, run</span></span>
|
|
<span class="arrow">↓</span>
|
|
</a>
|
|
<a href="https://github.com/2ro/goblin/releases/latest">
|
|
<svg viewBox="0 0 24 24"><path d="M4 6.5 10.5 5v6H4v-4.5zM11.5 4.8 20 3.5V11h-8.5V4.8zM4 12.5h6.5v6L4 17.1v-4.6zM11.5 12.5H20v7.4l-8.5-1.3v-6.1z"/></svg>
|
|
<span class="name">Windows <span class="file">x86_64 · zip</span></span>
|
|
<span class="arrow">↓</span>
|
|
</a>
|
|
<a href="https://github.com/2ro/goblin/releases/latest">
|
|
<svg viewBox="0 0 24 24"><path d="M12 7.6c-1.2-1-2.9-1-4.1 0-1.7 1.3-2.1 4.1-1 6.7.7 1.8 2 3.9 3.4 3.9.7 0 1-.4 1.7-.4s1 .4 1.7.4c1.4 0 2.7-2.1 3.4-3.9 1.1-2.6.7-5.4-1-6.7-1.2-1-2.9-1-4.1 0z"/><path d="M12 7.6c0-1.6 1.1-3.1 2.7-3.4"/></svg>
|
|
<span class="name">macOS <span class="file">universal · zip</span></span>
|
|
<span class="arrow">↓</span>
|
|
</a>
|
|
<a href="https://github.com/2ro/goblin/releases/latest">
|
|
<svg viewBox="0 0 24 24"><path d="M7 8.5C7 6 9.2 4 12 4s5 2 5 4.5M7 8.5h10M7 8.5v7a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2v-7M9 4 8 2.5M15 4l1-1.5M9.5 19.5V22M14.5 19.5V22"/></svg>
|
|
<span class="name">Android <span class="file">armv7 + arm64 · apk</span></span>
|
|
<span class="arrow">↓</span>
|
|
</a>
|
|
<a href="https://github.com/2ro/goblin/releases">
|
|
<svg viewBox="0 0 24 24"><path d="M12 4v9M12 13l-3.5-3.5M12 13l3.5-3.5M5 17h14M5 20h14"/></svg>
|
|
<span class="name">All builds & checksums <span class="file">sha256sums.txt</span></span>
|
|
<span class="arrow">→</span>
|
|
</a>
|
|
</div>
|
|
<p class="dl-meta">
|
|
macOS build is universal — Apple Silicon and Intel in one. Prefer to compile?
|
|
<a href="https://github.com/2ro/goblin#build" rel="noopener">Build from source</a> —
|
|
clone with <code>--recursive</code>, then <code>cargo build --release</code>.
|
|
</p>
|
|
</div>
|
|
<div class="dl-card stores-card">
|
|
<span class="store" aria-disabled="true" title="Coming soon">
|
|
<svg viewBox="0 0 24 24" aria-hidden="true"><path d="M17.05 12.54c-.03-2.89 2.36-4.28 2.47-4.35-1.35-1.97-3.44-2.24-4.18-2.27-1.78-.18-3.47 1.05-4.37 1.05-.9 0-2.29-1.02-3.77-1-1.94.03-3.72 1.13-4.72 2.86-2.01 3.49-.51 8.65 1.45 11.48.96 1.39 2.1 2.94 3.6 2.88 1.45-.06 1.99-.93 3.74-.93 1.74 0 2.24.93 3.77.9 1.56-.03 2.54-1.41 3.49-2.81 1.1-1.61 1.55-3.17 1.58-3.25-.04-.02-3.03-1.16-3.06-4.56zM14.17 4.04c.8-.97 1.34-2.32 1.19-3.66-1.15.05-2.55.77-3.38 1.74-.74.85-1.39 2.22-1.22 3.53 1.29.1 2.6-.65 3.41-1.61z"/></svg>
|
|
<span class="lines"><small>Download on the</small><span>App Store</span></span>
|
|
<i class="soon">SOON</i>
|
|
</span>
|
|
<span class="store" aria-disabled="true" title="Coming soon">
|
|
<svg viewBox="0 0 24 24" aria-hidden="true"><path d="M3.6 1.8c-.35.37-.55.94-.55 1.68v17.07c0 .74.2 1.31.55 1.68l.09.08 9.56-9.56v-.22L3.69 1.71l-.09.09zm13.05 13.04-3.18-3.18v-.22l3.19-3.19.07.04 3.78 2.15c1.08.61 1.08 1.61 0 2.23l-3.78 2.14-.08.03zm-3.4-2.96L3.69 22.31c.36.38 1.5.42 2.13.06l11.27-6.4-3.84-4.09zm0-7.76L5.82 1.63C5.19 1.27 4.05 1.31 3.69 1.7l9.56 9.56 3.84-4.1-3.84-2.04z" transform="translate(1.5 0)"/></svg>
|
|
<span class="lines"><small>Get it on</small><span>Google Play</span></span>
|
|
<i class="soon">SOON</i>
|
|
</span>
|
|
<p>Store listings are on the way. Until then, grab the APK on the left —
|
|
it's the same wallet.</p>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
</main>
|
|
</div>
|
|
|
|
<footer class="site">
|
|
<div class="wrap">
|
|
<div class="foot-grid">
|
|
<div class="foot-brand">
|
|
<span class="mark" aria-hidden="true"></span>
|
|
<p>Goblin is a peer-to-peer wallet for GRIN ツ — confidential digital
|
|
cash on Mimblewimble. Keys, names and history stay on your device.</p>
|
|
</div>
|
|
<div>
|
|
<h4>Project</h4>
|
|
<ul>
|
|
<li><a href="https://github.com/2ro/goblin" rel="noopener">Wallet on GitHub</a></li>
|
|
<li><a href="https://github.com/2ro/goblin/releases" rel="noopener">Releases</a></li>
|
|
<li><a href="https://github.com/2ro/goblin-nip05d" rel="noopener">Identity service</a></li>
|
|
</ul>
|
|
</div>
|
|
<div>
|
|
<h4>Network</h4>
|
|
<ul>
|
|
<li><a href="https://grin.mw" rel="noopener">GRIN ツ</a></li>
|
|
<li><a href="https://github.com/nostr-protocol/nips" rel="noopener">Nostr NIPs</a></li>
|
|
<li><a href="https://nym.com" rel="noopener">Nym</a></li>
|
|
</ul>
|
|
</div>
|
|
<div>
|
|
<h4>Legal</h4>
|
|
<ul>
|
|
<li><a href="terms.html">Terms of Use</a></li>
|
|
<li><a href="privacy.html">Privacy</a></li>
|
|
<li><a href="https://www.apache.org/licenses/LICENSE-2.0" rel="noopener">Apache-2.0</a></li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
<div class="foot-bottom">
|
|
<span>© 2026 the Goblin project · Built on <a href="https://code.gri.mw/GUI/grim" rel="noopener" style="color:inherit">Grim</a> by Ardocrat</span>
|
|
<span>Money is a conversation. Keep it between friends. ツ</span>
|
|
</div>
|
|
</div>
|
|
</footer>
|
|
|
|
</body>
|
|
</html>
|