<!--
Parallel Documentation — this page, as markdown.
Index of every page: https://docs.parallel.best/llms.txt
The whole documentation in one file: https://docs.parallel.best/llms-full.txt
-->

# Command reference

Amounts are always human-readable (`--amount 100` = 100 tokens, never wei); chains are lowercase slugs (`base`, `ethereum`, `avalanche`, …).

Global flags, available across commands:

| Flag | Alias | Purpose |
|---|---|---|
| `--chain <chain>` | `-c` | Target chain (default: `network.default_chain` from config) |
| `--json` | `-j` | Force JSON output |
| `--dry-run` | | Build the transaction without signing or broadcasting |
| `--wallet [path\|env]` | `-w` | Sign and broadcast — see [the wallet model](/agents/cli#the-wallet-model) |
| `--address <0x…>` | | Simulate a write for a real account without a wallet — works on swap, savings, staking and bridge write commands |
| `--no-cache` | | Bypass the read cache and force a fresh RPC call |
| `--verbose` | `-v` | Verbose logs |

## Protocol data

Read-only, no wallet.

```bash
parallel protocol overview                    # TVL · supply · APY · solvency
parallel protocol tvl            [--chain <chain>]
parallel protocol supply         <usdp|susdp|prl|sprl1|sprl2>
parallel protocol backing        [--chain <chain>]
parallel protocol chains                      # feature matrix per chain
parallel protocol collaterals    --chain <chain>
parallel protocol mint-capacity  --collateral <symbol> --chain <chain> [--amount <n>]
parallel protocol fees           [--collateral <symbol>] [--chain <chain>]
parallel protocol savings-rate   [--chain <chain>]
parallel protocol exchange-rate  [--chain <chain>]
parallel protocol solvency       [--chain <chain>]
parallel protocol surplus        [--chain <chain>]
parallel protocol flashloan      [--chain <chain>]
```

`backing`, `tvl`, `savings-rate` and `supply` also take `--history [--from <YYYY-MM-DD>] [--to <YYYY-MM-DD>]` for daily time series (`supply --history` is available for `usdp` only).

## Swap — mint and redeem

```bash
parallel swap quote      --op <mint|redeem|redeem-all> --amount <n> [--collateral <symbol>]
parallel swap mint       --collateral USDC --amount 1000 --chain base --dry-run
parallel swap redeem     --collateral USDC --amount 500  --chain base --wallet
parallel swap redeem-all --amount 500 --chain base --wallet    # proportional redeem
```

`--collateral` is required for `mint` and `redeem`; `redeem-all` pays out the whole basket proportionally. The names match the MCP tools. Earlier releases named these `swap burn` (one collateral) and `swap redeem` (proportional) — `burn` still works as a hidden alias, but scripts that used `swap redeem` for the proportional operation must switch to `swap redeem-all`.

| Flag | Default | Purpose |
|---|---|---|
| `--slippage <pct>` | `0.5` | Slippage tolerance in percent |

## Savings (sUSDp)

```bash
parallel savings rate     [--chain <chain>]
parallel savings estimate --amount <n> --duration <days>
parallel savings balance  <address> [--chain <chain>]
parallel savings deposit  --amount <n> --chain <chain> --wallet
parallel savings withdraw --amount <n> --chain <chain> --wallet   # amount in sUSDp
```

In a terminal, `deposit` offers two methods: EIP-3009 `depositWithAuthorization` (no approval transaction — two signatures, one transaction) or standard approve + deposit. In JSON / non-TTY mode the standard path is used.

## Bridge (LayerZero)

```bash
parallel bridge quote   --from <chain> --to <chain> --amount <n>
parallel bridge fees    --from <chain>              # fees to all destinations
parallel bridge limits  [--chain <chain>]           # daily + global capacity
parallel bridge send    --from <chain> --to <chain> --amount <n> --wallet [--recipient <address>]
parallel bridge status  <txHash> --from <chain>
parallel bridge history <address> [--limit <n>] [--offset <n>]
```

Only USDp bridges for now, on every supported chain.

## Staking (PRL)

```bash
parallel staking overview
parallel staking info     <address>
parallel staking cooldown <address>
parallel staking stake    --type <sprl1|sprl2> --amount <n> --wallet
parallel staking unstake  --type <sprl1|sprl2> --amount <n> --wallet   # starts cooldown
parallel staking unstake  --type sprl2 --wallet                        # withdraw matured requests
parallel staking claim    --type <sprl1|sprl2|all> --wallet
```

Staking transactions run on Ethereum. The sPRL2 stake takes `--weth-amount <n>` for the PRL + WETH path; `claim` can return transactions on both Ethereum and Polygon.

## Governance

```bash
parallel gov proposals [--status active|pending|passed|rejected] [--type PIP|PGP|PIR]
parallel gov proposal  <PIP-65|0xabc…>
parallel gov params
```

## Payments (x402)

```bash
parallel pay capabilities [--chain <chain>]     # routes + gas sponsoring per chain
parallel pay quota  <address> [--chain <chain>] # gas sponsoring quota
parallel pay verify <txHash> [--chain <chain>]
parallel pay prepare --amount <n> --recipient <address> [--chain <chain>] [--wallet]
```

`pay prepare` builds an x402 payment payload: `--token` sets what the merchant receives (`usdp` by default, `usdc`, `susdp`, a collateral symbol or a token address), `--pay-with` forces the paying token (`usdp`, `usdc` or `susdp`). With `--wallet` it auto-selects the route from your balances and signs the payload. This is the engine behind [agent payments](/agents/x402/agent-quickstart) — agents rarely call it directly.

`pay verify` reports `confirmed: true` only for payments the facilitator actually settled — a merely mined transaction returns `confirmed: false` with `txMined: true`, and an unknown hash returns everything `false`.

## Utilities

```bash
parallel version                    # CLI, bundled server and Node versions
parallel health [--chain <chain>]   # RPC latency per chain
parallel config init | get <key> | set <key> <value>
```

## Errors

Failures exit 1 and print `Error [CODE]: message`. In JSON mode the envelope `{ "success": false, "error": { "code", "message", "hint?" } }` is written to **stderr** — stdout carries data only, so read errors from stderr or branch on the exit code.

| Code | Trigger |
|---|---|
| `MISSING_OPTION` | Required flag, argument or subcommand not provided |
| `INVALID_OPTION` | A provided flag or argument has an invalid value |
| `UNKNOWN_COMMAND` / `UNKNOWN_OPTION` | Typo in a command or flag name |
| `INVALID_ADDRESS` | Argument is not a valid EVM address |
| `INVALID_AMOUNT` | Negative, zero, malformed or sub-decimal amount |
| `UNKNOWN_CHAIN` | Chain identifier not recognised |
| `CHAIN_SUNSET` | Operation not available on a sunset chain |
| `PARALLELIZER_NOT_DEPLOYED` | Mint, redeem and savings need a chain with a Parallelizer |
| `COLLATERAL_NOT_SUPPORTED` | Collateral (or bridge token) not accepted on this chain |
| `EXCEEDS_CAP` | Mint or redeem beyond the collateral's deposited capacity — the message carries the remaining capacity |
| `EXCEEDS_BRIDGE_LIMIT` | Daily or global bridge limit reached — the message carries the reset time |
| `ROUTE_UNAVAILABLE` | The bridge route does not exist (same chain, or no bridgeable token on the destination) |
| `PARTIAL_READ` | Some chain reads failed and the aggregate would be wrong — retry shortly |
| `INSUFFICIENT_BALANCE` | Wallet balance too low for the requested amount |
| `WALLET_REQUIRED` | Signing requested but no wallet available |
| `INVALID_KEYSTORE` | Keystore unreadable, invalid format, or wrong password |
| `CONFIG_KEY_NOT_FOUND` | `config get` on a key absent from the config file |
| `RPC_ERROR` | RPC call failed |
| `UNKNOWN` | Anything else |

Match on `error.code` — the message holds the human detail (remaining capacity, valid values…).

