> ## Documentation Index
> Fetch the complete documentation index at: https://docs.eco.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Make your first transfer with the Routes CLI

> Install the Routes CLI, preview a Base-to-OP Mainnet transfer, publish the intent, and track fulfillment.

Use the [Routes CLI](https://www.npmjs.com/package/eco-routes-cli) to select a route and publish an intent from your terminal. This guide uses CLI 1.0.5. For a backend integration, follow [Integrate the Routes API](/get-started/integrate-routes-api).

## Prerequisites

* Node.js 20 or later.
* An EVM wallet with USDC and ETH for source-chain transactions on Base.
* A recipient address on OP Mainnet.
* `EVM_PRIVATE_KEY` set in your environment or a local `.env` file excluded from version control.

The CLI includes RPC defaults. Set `EVM_RPC_URL_8453` to use your own Base endpoint. Check [supported chains and tokens](/resources/supported-chains-tokens) before choosing another pair.

## 1. Install the CLI

```bash theme={null}
npm install -g eco-routes-cli@1.0.5
```

## 2. Preview a transfer

```bash theme={null}
eco-routes-cli publish --source 8453 --destination 10 --dry-run
```

Follow the prompts to choose the token, recipient, and amount. Review the quote and funding details. The `--dry-run` flag validates the flow without broadcasting a transaction; it does not reserve liquidity or guarantee a later fill.

## 3. Publish and fund the intent

```bash theme={null}
eco-routes-cli publish --source 8453 --destination 10 --watch
```

Review the new quote and confirm the transfer when prompted. This command submits source-chain transactions and spends the selected tokens and gas. Save the intent hash and transaction hashes it returns.

## 4. Track fulfillment

The `--watch` flag watches for fulfillment after publishing. You can also look up the intent hash with [`GET /v1/intents/status`](/api-reference/v1/intent-status), using a v1 API key. A source-chain receipt confirms publication or funding; it does not confirm destination delivery.

If an intent remains unfulfilled, check its status and deadline before taking another action. See [Vaults](/concepts/vaults) for the refund path.

## Troubleshooting

* **Missing private key:** check that `EVM_PRIVATE_KEY` is available in the directory or environment where you run the CLI.
* **Insufficient balance:** allow for both the transfer amount and source-chain gas.
* **No quote:** cancel if the CLI offers manual route, Portal, or prover entry. Confirm the pair and amount, then retry quote discovery.
* **RPC or broadcast error:** check the returned transaction hash onchain before retrying a funding transaction.

## Next steps

* [Integrate the Routes API](/get-started/integrate-routes-api) to build the workflow into your application.
* [Intents](/concepts/intents) to understand funding, fulfillment, and settlement.
