Getting Started
Install
Section titled “Install”With pipx (recommended):
pipx install xrpl-labOr with pip:
pip install xrpl-labRequires Python 3.11+.
Start learning
Section titled “Start learning”The guided launcher walks you through wallet setup, funding, and your first module:
xrpl-lab startOffline mode
Section titled “Offline mode”No internet required. Use dry-run for simulated transactions:
xrpl-lab start --dry-runAll commands support --dry-run where applicable, letting you learn the workflow without touching the network.
Verify your installation
Section titled “Verify your installation”After installing, confirm everything works:
xrpl-lab --versionxrpl-lab doctorThe doctor command checks your wallet, state file, workspace, RPC endpoint, and faucet connectivity. It reports actionable hints for anything that needs attention.
What happens on first run
Section titled “What happens on first run”xrpl-lab startlaunches the guided launcher- If an XRPL Camp certificate is detected, you can reuse that wallet
- You create a wallet (stored locally in
~/.xrpl-lab/wallet.json) - The faucet funds your testnet wallet
- You choose a module and work through it
- Each module produces a verifiable artifact (transaction ID, report, etc.)
Curriculum and tracks
Section titled “Curriculum and tracks”Modules are organized into five tracks with explicit prerequisites:
- foundations — wallet, payments, trust lines, error handling
- dex — offers, order books, market making, inventory management
- reserves — account reserves, owner count, cleanup
- audit — batch verification, audit reports
- amm — automated market maker liquidity (dry-run only)
Prerequisites are enforced: xrpl-lab start always suggests the next valid module
based on what you’ve completed. Use xrpl-lab list to see all modules with track,
mode, and progression status.
Each module has a mode: testnet (real transactions) or dry-run (offline sandbox).
Some modules (AMM) require dry-run because the testnet may not have AMM pairs.
Validating modules
Section titled “Validating modules”Authors can lint module files for correctness:
xrpl-lab lint # lint all modulesxrpl-lab lint modules/dex*.md # lint a subsetxrpl-lab lint --json # CI-friendly JSON outputThe linter validates frontmatter, action names, payload schemas, mode labeling, prerequisite references, and curriculum structure.
Data storage
Section titled “Data storage”All state lives locally:
- Wallet —
~/.xrpl-lab/wallet.json(with restrictive file permissions) - Progress —
~/.xrpl-lab/state.json(module status, transaction IDs) - Workspace —
./.xrpl-lab/in the current directory for module outputs
What survives a browser close, reboot, or migration
Section titled “What survives a browser close, reboot, or migration”- Browser close — progress is saved to
~/.xrpl-lab/state.jsonafter each module step via atomic write-then-rename. Closing or refreshing the dashboard does not lose progress; reopening picks up where the learner left off. - Machine reboot — state survives the reboot. Resume by reopening the
dashboard or running
xrpl-lab statusto see what’s next. - Moving to a new machine — copy
~/.xrpl-lab/to the new machine to bring both the wallet and progress with you. There is no separate export command; the directory itself is the portable bundle. Preserve file permissions onwallet.jsonafter the copy.
Network usage
Section titled “Network usage”- XRPL Testnet RPC — public endpoint, transactions signed locally before submission
- Testnet faucet — public HTTP, only your address is sent
- Both endpoints are overridable via environment variables:
XRPL_LAB_RPC_URL— custom RPC endpointXRPL_LAB_FAUCET_URL— custom faucet endpoint
- Both are optional with
--dry-run
Workshop use
Section titled “Workshop use”XRPL Lab works in real teaching settings — no accounts, no telemetry, no cloud. Everything runs locally.
Facilitator view
Section titled “Facilitator view”Check any learner’s status in under 10 seconds:
xrpl-lab status # where are they, what's blocked, what's nextxrpl-lab tracks # track-level completion: what was actually practicedxrpl-lab recovery # stuck? see exactly what to runSupport handoff
Section titled “Support handoff”When a learner needs help:
xrpl-lab support-bundle # generates a markdown summaryxrpl-lab support-bundle --json # or machine-parseable JSONThe bundle includes curriculum position, blockers, environment, doctor results, and recent transactions. No secrets.
Common workshop flows
Section titled “Common workshop flows”All-offline sandbox (no internet):
xrpl-lab wallet createxrpl-lab start --dry-runMixed offline + testnet (most common):
xrpl-lab wallet createxrpl-lab fundxrpl-lab startCamp → Lab progression:
xrpl-lab start # auto-detects camp wallet and certificate