root@vps:~/grin-node-toolkit$
$ sudo ./grin-node-toolkit.sh --info
$
Node Setup Public API Explorer Mining Pool Wallet Portal
8 Live Demo Sites
|
~15min Pruned node (snapshot, US VPS)
|
~1hr Full archive node (snapshot)
↓ scroll down

The Story Behind the Toolkit

$ git log --oneline --origin
# The problem that started everything

issue: Grin PIBD sync — was broken, slow, unreliable
symptom: Node stalls mid-sync for days. Sometimes loops.
context: Several spare Linux VPS servers sitting idle.

# The initial fix
idea: Clone chain_data from a running node instead of syncing
result: Pruned node up in ~15 min (US VPS). Every time.
# PIBD is now fixed in recent grin releases,
# but normal pruned sync still takes 3–4 hours.
# Snapshot method stays the fastest way.

# The master node concept
vision: Keep one server with fresh chain_data for others to clone
future: Stream chain_data from master nodes → full sync in 4–5 min

# Then the addons happened
realised: Same VPS can run API, explorer, faucet, mining pool...
goal: Open source + newbie-friendly. Explore Grin magics.
status: active development
"
I had several spare Linux VPS servers and kept running into the same wall: Grin's PIBD sync was broken — nodes would stall, loop, or fail silently after days of waiting. Even now that PIBD is fixed, a normal pruned node sync still takes 3–4 hours. I just wanted a fast way to spin up a test node on a spare VPS. So I wrote a script to clone chain_data from a running node instead. Pruned node up in ~15 minutes on a US VPS. Full archive in about an hour. I kept going from there.
— Noobvie
master node network — how it grows
step-1 You run the toolkit, build a node, share chain_data
step-2 Register your server in grinmasternodes.json ↗
step-3 New nodes can pick any master node as bootstrap source
future Wallet clients stream chain_data directly → 4–5 min full sync

One Tool. Everything You Need.

grin-node-toolkit — main menu
Core Modules
1) Setup Grin New Node
2) Manage Nginx Server
3) Share Chain Data + Schedule
4) Publish Node API (Foreign API)
Wallet Services
5) Grin Wallet Services Hub
├ 051 Private Web Wallet
├ 052 Grin Drop (faucet/donation)
├ 053 WooCommerce Gateway
└ 054 Payment Processor
Infrastructure
6) Global Grin Health (stats + peer map)
7) Mining Services (stratum + pool)
8) Admin & Maintenance Centre

Ubuntu 22.04+ Rocky/Alma 10+
Mainnet + Testnet on same server
Pruned Node in ~15 Minutes
Snapshot download skips the 3–4 hr normal sync. Pruned node ready in ~15 min on a US VPS, ~30–45 min elsewhere. Full archive node takes ~1 hr. Both testnet and mainnet can run on the same server simultaneously.
Become a Community Master Node
Share your chain snapshot via nginx so others can bootstrap from your server. Every master node strengthens the Grin network.
Full Infrastructure Stack
Public API, block explorer, mining stratum, pool manager, wallet faucet — each module is independent and self-contained.
🔒
Security Built In
fail2ban, rate limiting, IP filtering, firewall audit, SSL via Let's Encrypt — all configured from the same interactive menu.

8 Sites Built With This Toolkit

Every site below was deployed semi-automatically using grin-node-toolkit on a VPS. No manual server configuration.

01
Full Node Archive
Full Grin mainnet archive node — complete chain history. Serves snapshots so other nodes can bootstrap worldwide without syncing from scratch.
mainnet full-archive live ↗
fullmain.grin.money ↗
02
Prune Node Mainnet
Pruned mainnet node — ~5 GB footprint. Provides chain snapshots in pruned mode for lightweight bootstrapping of new nodes.
mainnet pruned live ↗
prunemain.grin.money ↗
03
Prune Node Testnet
Pruned testnet node for developers. Safe environment to test wallets, transactions, and integrations without using real GRIN.
testnet pruned live ↗
prunetest.grin.money ↗
04
Grin Explorer
Block explorer cloned from grincoin.org. The toolkit automates cloning, building, and deploying a full explorer — nginx, SSL, and systemd service in one step.
explorer mainnet live ↗
scan.grin.money ↗
05
Public API Mainnet
Grin node Foreign API (/v2/foreign) exposed via nginx HTTPS. Free to use for wallets, explorers, and tooling queries on mainnet.
api mainnet live ↗
api.grin.money ↗
06
Public API Testnet
Testnet node Foreign API endpoint. Ideal for wallet developers who need a reliable testnet node without running their own infrastructure.
api testnet live ↗
testapi.grin.money ↗
07
Grin Global Health
Live peer map, network stats, hashrate/difficulty charts, node version distribution. Stats collected every 5 minutes from the global Grin network.
stats peer-map live ↗
world.grin.money ↗
08
Free Grin Coin Portal
GRIN faucet and donation portal. Interactive 3-step slatepack claim flow, rate-limited per address. Try Grin for free — no registration needed.
faucet wallet live ↗
drop.grin.money ↗

Why Use the Toolkit?

01
$ node --snapshot --faster
PIBD is fixed in recent releases, but a normal pruned sync still takes 3–4 hrs. Snapshot from a master node gets a pruned node running in ~15 min (US VPS) or ~1 hr for full archive — SHA256 verified.
02
$ network --strengthen
Every new node you run increases Grin's decentralisation. Share your chain data and become a master node that others can bootstrap from.
03
$ infra --full-stack
From a single VPS, run a node, expose a public API, host a block explorer, manage a mining stratum, and deploy a wallet portal.
04
$ binaries --official-only
All binaries come directly from the official grin ↗ and grin-wallet ↗ releases. No forks, no third-party binaries.
05
$ security --built-in
fail2ban, ufw/iptables rules, per-IP rate limiting, SSL Let's Encrypt, nginx audit, and firewall review — all from the menu. No manual config.
06
$ personal --use-case
Not just for server admins. Build your own private wallet portal, personal explorer, or testnet sandbox on a $2/mo VPS — in under an hour.

Active Development ongoing

New modules are being added regularly. All grin node + wallet binaries used are official releases — no forks, no third-party executables.

// shipped modules
Setup Grin node (mainnet + testnet) from snapshot
Nginx server manager + Let's Encrypt SSL
Share chain data + auto-scheduled snapshots
Publish Foreign API over HTTPS
Grin Drop — faucet + donation portal (Node.js)
Global Grin Health dashboard + peer map
Mining services — stratum + pool setup
Admin centre — backup, firewall, nginx audit
Block explorer deploy (clone grincoin.org style)
// coming soon
Mining Portal — full pool + stratum web UIsoon
Grin Web Wallet — personal self-hostedsoon
Public WASM Web Wallet — browser-based, no installsoon
WooCommerce Plugin — accept GRIN in your shopsoon
Payment Processor — invoice + checkout flowsoon
AlmaLinux 10 / Rocky Linux support improvementssoon
  All grin node and wallet binaries downloaded by this toolkit are the official releases from github.com/mimblewimble/grin and github.com/mimblewimble/grin-wallet. No third-party forks. SHA256 checksums are verified before installation.

Interactive Menu Demo

Click a menu item to see what the toolkit does. This is a live simulation of the bash interface.

grin-node-toolkit — requirements
--os Ubuntu 22.04+ / Rocky Linux 10+ / AlmaLinux 10+
--disk 10 GB min (pruned) · 25 GB for full archive
--access Root or sudo — required for nginx, systemd, firewall
--deps curl · wget · jq · tar · tmux — auto-installed if missing
--vps Any low-cost SSD VPS works — ~$2/mo is enough
--net Mainnet + testnet scripted to run simultaneously on the same server — independent ports, dirs, and services
root@vps:~/grin-node-toolkit$

From Node to Community Master Node

A master node shares its chain snapshot so others can bootstrap in minutes rather than days. Here's the step-by-step path.

grin-node-toolkit --become-master-node
step-01 --build-node Menu 1: Install node binary, download snapshot, launch in tmux
step-02 --nginx-server Menu 2: Setup nginx fileserver, add domain, SSL via Let's Encrypt
step-03 --share-chain-data Menu 3A+B: Configure nginx to serve .tar.gz chain snapshot publicly
step-04 --schedule-snapshots Menu 3E: Cron job to auto-rebuild and re-share snapshot on schedule
step-05 --publish-api Menu 4: Expose /v2/foreign over HTTPS for wallets and explorers
step-06 --register-in-community Fork repo → add your host URL → submit pull request to join master node list