> ## Documentation Index
> Fetch the complete documentation index at: https://defi-cli.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Bridge, Swap, Transfer, and Approvals Commands

> Full reference for bridge/swap quote and execution, ERC-20 transfers, approvals, and action inspection.

## `bridge quote`

```bash theme={null}
defi bridge quote --provider across --from 1 --to 8453 --asset USDC --amount 1000000 --results-only
```

Flags:

* `--provider string` (`across|lifi|bungee`) required
* `--from string` required
* `--to string` required
* `--asset string` required
* `--to-asset string` optional
* `--amount string` or `--amount-decimal string`

`bridge quote` also accepts `--input-json` and `--input-file` for the same local request fields. Explicit CLI flags override structured input values.

Output note: bridge quotes include `fee_breakdown` with component fees (`lp_fee`, `relayer_fee`, `gas_fee`) and aggregate totals when available.

## `bridge list`

```bash theme={null}
defi bridge list --limit 20 --include-chains --results-only
```

Flags:

* `--limit int` (default `20`)
* `--include-chains` bool (default `true`)

Auth: requires `DEFI_DEFILLAMA_API_KEY`.

Reason: this route uses DefiLlama bridge analytics endpoints that are provider-gated.

## `bridge details`

```bash theme={null}
defi bridge details --bridge layerzero --include-chain-breakdown --results-only
```

Flags:

* `--bridge string` required
* `--include-chain-breakdown` bool (default `true`)

Auth: requires `DEFI_DEFILLAMA_API_KEY`.

Reason: this route uses DefiLlama bridge analytics endpoints that are provider-gated.

## `swap quote`

```bash theme={null}
defi swap quote --provider fibrous --chain hyperevm --from-asset USDC --to-asset WHYPE --amount 1000000 --results-only
defi swap quote --provider jupiter --chain solana --from-asset USDC --to-asset SOL --amount 1000000 --results-only
defi swap quote --provider tempo --chain tempo --from-asset pathUSD --to-asset USDC.e --amount 1000000 --results-only
```

Flags:

* `--provider string` (`1inch|uniswap|tempo|jupiter|fibrous|bungee|taikoswap`) required
* `--chain string` required
* `--from-asset string` required
* `--to-asset string` required
* `--type string` (`exact-input|exact-output`, default `exact-input`)
* `--amount string` or `--amount-decimal string` (for `--type exact-input`)
* `--amount-out string` or `--amount-out-decimal string` (for `--type exact-output`)
* `--from-address string` required for `--provider uniswap`
* `--slippage-pct float` optional (Uniswap only; default uses provider auto slippage)

`swap quote` also accepts `--input-json` and `--input-file` for the same local request fields. Explicit CLI flags override structured input values.

Type support:

* `uniswap`: `exact-input`, `exact-output`
* `tempo`: `exact-input`, `exact-output`
* `1inch`, `jupiter`, `fibrous`, `bungee`, `taikoswap`: `exact-input` only

Auth requirements:

* `1inch` -> `DEFI_1INCH_API_KEY`
* `uniswap` -> `DEFI_UNISWAP_API_KEY`
* `jupiter` -> `DEFI_JUPITER_API_KEY` (optional for higher limits)
* `tempo`, `fibrous`, `bungee`, `taikoswap` -> keyless by default

These requirements are driven by provider APIs. `defi-cli` passes through provider auth requirements per route/provider pair.

## `bridge plan|submit|status`

```bash theme={null}
defi bridge plan --provider across --from 1 --to 8453 --asset USDC --amount 1000000 --wallet agent-treasury --results-only
defi bridge submit --action-id <action_id> --results-only
defi bridge status --action-id <action_id> --results-only
```

Execution providers: `across|lifi`.

`plan` and `submit` also accept structured input:

```bash theme={null}
defi bridge plan --input-json '{"provider":"across","from":"1","to":"8453","asset":"USDC","amount":"1000000","wallet":"agent-treasury"}' --results-only
defi bridge submit --input-json '{"action_id":"<action_id>"}' --results-only
```

Structured input flags:

* `--input-json string` inline JSON payload
* `--input-file string` JSON file path or `-` for stdin

For `submit`, structured payloads use `action_id` plus any optional signer/execution overrides.

Explicit flags override structured input values.

`submit` notes:

* Wallet-backed bridge actions use the persisted `wallet_id` and require `DEFI_OWS_TOKEN` in the environment.
* Wallet-backed actions do not accept legacy signer flags (`--signer`, `--key-source`, `--private-key`).
* `--from-address` on `plan` creates a local-signer action. `--wallet` (OWS) is recommended. See [Execution & Signing](/concepts/execution-auth).
* `bridge` steps are marked complete only after source-chain confirmation and destination settlement confirmation from provider status APIs.
* `--step-timeout` applies to each bridge wait stage (receipt and settlement polling).
* Global `--timeout` controls provider/planning requests; execution wait budget is derived from `--step-timeout` and remaining action stages.
* `--allow-max-approval` lets execution continue when provider approval calldata exceeds planned input amount (needed for some Across routes).
* `--unsafe-provider-tx` bypasses canonical execution-target and settlement guardrails for provider-generated bridge payloads on covered provider/chain combinations.

Recommended slow-route settings:

```bash theme={null}
defi bridge submit --action-id <action_id> --step-timeout 15m --timeout 20m --allow-max-approval --results-only
```

## `swap plan|submit|status`

```bash theme={null}
defi swap plan --provider taikoswap --chain taiko --from-asset USDC --to-asset WETH --amount 1000000 --wallet agent-treasury --results-only
defi swap plan --provider tempo --chain tempo --from-asset pathUSD --to-asset USDC.e --amount 1000000 --from-address 0xYourEOA --results-only
defi swap plan --provider tempo --chain tempo --from-asset pathUSD --to-asset USDC.e --type exact-output --amount-out 1000000 --from-address 0xYourEOA --results-only
defi swap submit --action-id <action_id> --results-only
defi swap status --action-id <action_id> --results-only
```

Execution providers: `tempo|taikoswap`.

`plan` and `submit` also accept `--input-json` and `--input-file` with the same precedence rules as bridge plans.

`submit` supports polling, gas, simulation, and policy override flags consistent with other execution commands. Wallet-backed standard EVM actions rely on persisted wallet metadata plus `DEFI_OWS_TOKEN`; Tempo remains on its separate signer path.

Tempo execution notes:

* Tempo is the explicit exception to the OWS migration: `swap plan --provider tempo` still uses `--from-address`.
* Tempo DEX planning supports `exact-input` and `exact-output`.
* Tempo DEX currently supports USD-denominated TIP-20 assets only and auto-routes supported pairs through quote-token relationships on-chain.
* Tempo DEX swaps settle to the caller, so `--recipient` must be omitted or match `--from-address`.
* `actions estimate` returns fee-token-denominated estimates for Tempo actions with `fee_unit` and `fee_token` fields (instead of EIP-1559 native-gas pricing used on standard EVM chains). If a step requires an ERC-20 approval that has not been granted on-chain, estimation may fail with a simulation error.

Standard EVM swap notes:

* TaikoSwap `swap plan` is wallet-first and prefers `--wallet`.
* Plan with `--wallet` (OWS, recommended) or `--from-address` (local signer). See [Execution & Signing](/concepts/execution-auth) for submit auth.
* Wallet-backed `submit` uses the action's persisted `wallet_id` and `DEFI_OWS_TOKEN`.

## `transfer plan|submit|status`

```bash theme={null}
defi transfer plan --chain taiko --asset USDC --amount 1000000 --wallet agent-treasury --recipient 0xRecipient --results-only
defi transfer submit --action-id <action_id> --results-only
defi transfer status --action-id <action_id> --results-only
```

`transfer` executes a direct ERC-20 `transfer(to,amount)` on the selected chain.

`plan` flags:

* `--chain string` required
* `--asset string` required
* `--amount string` or `--amount-decimal string`
* `--wallet string` recommended primary identity input
* `--from-address string` local signer identity input
* `--recipient string` required
* `--rpc-url string` optional
* `--simulate bool` optional (default `true`)
* `--input-json string` optional structured payload
* `--input-file string` optional structured payload file or `-` for stdin

`submit` flags:

* `--action-id string` required
* `--from-address string` optional signer-address guard
* `--simulate bool` optional (default `true`)
* `--input-json string` optional structured payload
* `--input-file string` optional structured payload file or `-` for stdin
* `--poll-interval string` (default `2s`)
* `--step-timeout string` (default `2m`)
* `--gas-multiplier float` (default `1.2`)
* `--max-fee-gwei string` optional
* `--max-priority-fee-gwei string` optional

Explicit flags override structured input values on `submit` as well.

Wallet-backed transfer submit requires `DEFI_OWS_TOKEN`. Local signer flags apply to actions planned with `--from-address`. See [Execution & Signing](/concepts/execution-auth).

## `approvals plan|submit|status`

```bash theme={null}
defi approvals plan --chain taiko --asset USDC --spender 0xSpender --amount 1000000 --wallet agent-treasury --results-only
defi approvals submit --action-id <action_id> --results-only
defi approvals status --action-id <action_id> --results-only
```

Creates and executes ERC-20 approval transactions for a given spender and amount. `plan` and `submit` accept `--input-json` / `--input-file`.

Plan with `--wallet` (OWS, recommended) or `--from-address` (local signer). See [Execution & Signing](/concepts/execution-auth). Wallet-backed submit requires `DEFI_OWS_TOKEN`.

## `actions list|show|estimate`

```bash theme={null}
defi actions list --results-only
defi actions show --action-id <action_id> --results-only
defi actions estimate --action-id <action_id> --results-only
```

Inspect persisted actions. `actions estimate` computes per-step gas projections using `eth_estimateGas` and EIP-1559 fee resolution.

Tempo note: `actions estimate` returns fee-token-denominated estimates for Tempo actions with `fee_unit` and `fee_token` fields (instead of EIP-1559 native-gas pricing). If a Tempo step requires an ERC-20 approval that has not been granted on-chain, estimation may fail with a simulation error.
