Skip to content

Commands

CommandDescription
xrpl-lab startGuided launcher — walks through wallet setup, funding, and first module
xrpl-lab listShow all modules with completion status in a formatted table
xrpl-lab run <module_id>Run a specific module (add --force to redo a completed module)
xrpl-lab status [--json]Progress, curriculum position, blockers, track progress
xrpl-lab tracksTrack-level completion summaries — what was actually practiced
xrpl-lab recoveryDiagnose stuck states and show recovery commands
xrpl-lab last-runShow details of the last module run + suggested audit command
xrpl-lab --versionPrint the installed version and exit
CommandDescription
xrpl-lab support-bundleGenerate a support bundle (markdown) for facilitator handoff
xrpl-lab support-bundle --jsonMachine-parseable JSON support bundle
xrpl-lab support-bundle --verify <file>Verify a received support bundle
xrpl-lab feedbackAlias for support-bundle (markdown output)
CommandDescription
xrpl-lab proof-packExport a shareable proof pack (JSON with SHA-256 integrity)
xrpl-lab certificateExport a slim completion certificate
xrpl-lab audit --txids <file>Batch verify transactions against expectations
FlagDescription
--txids <file>Required. File with one transaction ID per line
--expect <file>Optional expectations JSON file (type checks, memo prefix, etc.)
--csv <path>Write a CSV report to this path
--md <path>Write a Markdown report to this path
--dry-runUse the dry-run transport for verification
CommandDescription
xrpl-lab wallet createCreate a new testnet wallet (add --path <dir> for custom location)
xrpl-lab wallet showShow wallet info (no secrets displayed)
xrpl-lab fundFund wallet from the testnet faucet
xrpl-lab send --to <addr> --amount <xrp>Send a payment (optional --memo <text>)
xrpl-lab verify --tx <id>Verify a single transaction on-ledger
CommandDescription
xrpl-lab doctorRun diagnostic checks (wallet, state, workspace, env overrides, RPC, faucet, last error)
xrpl-lab self-checkAlias for doctor
xrpl-lab resetWipe local state (requires typing RESET to confirm; add --keep-wallet to preserve wallet)
xrpl-lab reset --module <module_id>Granular per-module reset — clear one module’s state and workspace artifacts only, keep everything else
FlagDescription
--module <module_id>Reset only the named module (removes it from completed_modules, clears its tx records and workspace report). Wallet, other modules, and audit packs are preserved
--confirmSkip the confirmation prompt (granular --module mode only)
--keep-walletWhole-state reset, but keep the wallet file

xrpl-lab serve starts the FastAPI backend that drives the bundled web dashboard. Facilitators use it during workshops for at-a-glance cohort monitoring, kill-switch control of in-flight runs, and a click-through artifact viewer; integration users hit the same surface programmatically via REST + WebSocket.

Terminal window
# Start the API on the default port
xrpl-lab serve
# Custom port + offline sandbox for a demo cohort
xrpl-lab serve --port 9000 --dry-run

API docs are auto-published at http://<host>:<port>/docs once the server is running.

FlagDefaultPurpose
--port <N>8321API server port. The dashboard’s frontend hardcodes http://localhost:8321 for fetch calls, so non-default ports require you to drive the API directly (curl, custom client) rather than the bundled UI
--host <H>127.0.0.1Bind address. Stays on loopback by default — workshop threat-model line. Override only when you understand the exposure (e.g., a trusted LAN-only facilitator station)
--dry-runoffRun the entire dashboard surface in offline-sandbox mode. Useful for projector demos with no internet, or for facilitators rehearsing the workshop flow without funding wallets

In development, the Astro site runs separately on port 4321:

Terminal window
# Terminal 1 — API
xrpl-lab serve
# Terminal 2 — Astro dev server (hot reload)
cd site && npm run dev

Open http://localhost:4321/xrpl-lab/app/ to use the dashboard.

In production (after cd site && npm run build), the FastAPI app serves both the API surface and the built dashboard from one process — xrpl-lab serve is the only command you need.

The dashboard is the surface most workshop facilitators run on a second monitor while the cohort works in their own terminals. It is the live cohort view: per-run module ID, status, queue depth, kill button on stuck runs, capacity badge. See the facilitator dashboard page for what each piece of that surface tells you and how the kill-switch semantics work.

VariablePurpose
XRPL_LAB_RPC_URLOverride the default XRPL Testnet RPC endpoint
XRPL_LAB_FAUCET_URLOverride the default testnet faucet URL

Both overrides are reported by xrpl-lab status and xrpl-lab doctor when set.

All commands support --dry-run for offline mode where applicable. Dry-run mode simulates transactions without touching the network — useful for learning the workflow or working without an internet connection.