Files
GoblinPay/docs/woocommerce-quickstart.md
T
2ro e404aca7b4
ci / fmt / clippy / test (push) Has been cancelled
setup: operator-chosen wallet password + seed acknowledgement + restart-mode choice
Make the gp-server setup wizard grin-wallet-faithful about the two secrets
that belong to the operator, and let them decide how the till restarts.

- Wallet password: the wizard now PROMPTS for it (entered twice, confirmed to
  match, hidden echo on a TTY) instead of auto-generating it. Only the service
  secrets (API token, admin token, webhook secret) are still generated.
- Seed: a fresh 24-word seed is shown once and gated behind an explicit
  "wrote it down" acknowledgement before proceeding, like grin-wallet init; the
  paste-existing-recovery-phrase path is kept and gated the same way.
- Restart mode: the wizard offers both and defaults to unattended. Unattended
  seals the chosen password to the host as a 0400 systemd credential so the
  service auto-restarts (honest trade-off disclosed). Manual persists nothing
  and writes a gp-server.service.d/manual.conf drop-in that repoints the
  credential to a tmpfs path the operator populates via systemd-ask-password at
  each start.
- Pure helpers (validate_password, passwords_match, RestartMode/parse, parse_ack,
  render_manual_dropin, mode-aware render_env) unit-tested in gp-core; wizard
  flow tested in gp-server (fresh/paste, unattended/manual, mismatch reprompt).
- Reconfigure keeps an existing wallet's seed, password, and restart mode
  untouched (never re-prompts), so a running till is undisturbed.
- Updated deploy/gp-server.service, deploy/.env.example, README, and the
  WooCommerce/Medusa quickstarts to drop all auto-generated-password wording.
2026-07-05 14:41:00 -04:00

2.8 KiB

WooCommerce quick start

Take Grin payments on your WooCommerce store in four steps. You will run the GoblinPay till on your own server, then paste three values into WooCommerce.

1. Install GoblinPay and run the wizard

On your server (a small Linux box is plenty):

# build + install the binary and the service unit, then it offers the wizard
sudo ./deploy/install.sh
# or, if GoblinPay is already installed:
sudo gp-server setup

The wizard asks a few questions (all with defaults). You choose your wallet password (entered twice) and write down the 24-word seed it shows once; it generates the service tokens, creates your till wallet, picks a healthy Grin node, asks how the till should restart (default unattended), and writes the config. Two answers matter for WooCommerce:

  • Your till URL - either a subdomain like https://pay.myshop.com, or a path on your existing shop domain like https://myshop.com/pay if you would rather not add a DNS record (put a reverse proxy in front either way; the wizard prints the exact snippet).
  • Your shop URL - https://myshop.com. The wizard turns this into your webhook URL for you.

When it finishes it prints three values and a webhook URL. Keep that screen. Then start the till:

sudo systemctl start gp-server

2. Install the plugin

Download goblinpay-woocommerce.zip (a GoblinPay release artifact; you can also build it yourself with deploy/package-woocommerce.sh). In WordPress:

Plugins → Add New → Upload Plugin → choose the zip → Install → Activate.

3. Paste the three values

WooCommerce → Settings → Payments → GoblinPay (Grin) → Manage:

Field Paste
GoblinPay URL your till URL (e.g. https://pay.myshop.com)
API Token the gp_live_… value from the wizard
Webhook Secret the whsec_… value from the wizard
Matching mode Per-invoice identity (recommended)

Tick Enable Grin payments via GoblinPay and Save changes. The wizard already pointed the till's webhook at your shop, so nothing else to wire.

4. Test a payment

Place a test order and choose the Grin method at checkout. You are shown a QR (or redirected to the hosted checkout). Pay it from your Goblin wallet: scan, approve, done. The order moves to processing once the payment confirms on chain (default 10 confirmations).

Watch WooCommerce → Status → Logs (source goblinpay) if you enabled debug logging, or the till's own admin dashboard, to follow the payment.

Notes

  • Refunds are manual: GoblinPay is receive-only, so refund a customer by sending Grin back from your wallet.
  • Run the till hot but light: it has its own seed, so keep only a small working balance on it and sweep to your main wallet regularly.
  • For the full plugin reference see connectors/woocommerce/INSTALL.md.