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

# Strategy Commands

> Clone strategy templates, build batch calls, and submit governance proposals

Strategy templates are ERC-1167 clonable contracts deployed once per chain. Each proposal clones a template, initializes it with custom parameters, then uses the clone in governor batch calls.

<Note>
  On Robinhood testnet (chain 46630), Sherwood's current deployment target, the live strategy is **Portfolio** — a weighted basket of tokenized stocks, rebalanced through the vault's swap adapter (Uniswap-compatible, backed by Synthra).
</Note>

## `strategy list`

Show available strategy templates and their deployed addresses.

```bash theme={null}
sherwood strategy list
```

## `strategy clone <template>`

Clone a template and initialize it. Returns the clone address for use in proposal batch calls.

```bash theme={null}
sherwood strategy clone portfolio \
  --vault 0x... \
  --amount 0.5 \
  --tokens TSLA,AMZN,AMD \
  --weights 4000,3000,3000
```

The clone is deployed and initialized on-chain. The proposer (your wallet) pays gas for both transactions.

## `strategy propose <template>`

<Warning>
  **Proposer bond (WOOD).** On the Robinhood mainnet fork, `propose` pulls a
  risk-scaled WOOD bond into `ProposerBondEscrow` — a **second** WOOD spend after
  the 10k owner stake. The CLI quotes `ExposureLedger.proposerBondWood`, sets
  allowance, and exits with `InsufficientProposerBondWood` if the wallet balance is
  short. The wallet must **hold** the WOOD. The amount scales (\~1% of extractable
  value at default `proposerBondBps`); do not treat a fixed WOOD number as the
  requirement. Fork faucet 15k WOOD covers small books. See
  [Proposer bond](/protocol/governance/proposer-bond).
</Warning>

All-in-one command: clone + initialize + build batch calls + submit proposal (or write JSON files).

<Note>
  This command takes no agent-fee flag. The agent fee is the vault's `agentFeeBps`, set by the vault owner via [`sherwood fund set-agent-fee`](/cli/governance-commands#sherwood-fund-set-agent-fee) within the protocol ceiling (for example 20%). Each proposal snapshots it at propose time; the governor clamps that snapshot to `maxPerformanceFeeBps` at settlement.
</Note>

### Write calls to files (for manual proposal creation)

```bash theme={null}
sherwood strategy propose portfolio \
  --vault 0x... \
  --amount 0.5 --tokens TSLA,AMZN,AMD --weights 4000,3000,3000 \
  --write-calls ./portfolio-calls

# Then submit manually:
sherwood proposal create \
  --vault 0x... \
  --name "Tech Stock Basket" \
  --duration 7d \
  --execute-calls ./portfolio-calls/execute.json \
  --settle-calls ./portfolio-calls/settle.json
```

### Submit directly

```bash theme={null}
sherwood strategy propose portfolio \
  --vault 0x... \
  --amount 0.5 --tokens TSLA,AMZN,AMD --weights 4000,3000,3000 \
  --name "Tech Stock Basket" \
  --description "Weighted basket of tokenized stocks for 7 days" \
  --duration 7d
```

## Template Options

### portfolio

Weighted basket of tokenized stocks with on-chain rebalancing. Built on the vault's `UniswapSwapAdapter` (backed by Synthra on Robinhood testnet) with automatic multi-hop routing: the adapter tries direct pools first, then falls back to routing through WETH for tokens without a direct pool. **This is the live strategy on Robinhood testnet** (chain 46630).

| Flag                       | Description                                        | Default       |
| -------------------------- | -------------------------------------------------- | ------------- |
| `--amount <n>`             | Total asset amount to allocate (WETH)              | required      |
| `--tokens <list>`          | Comma-separated token addresses or symbols         | required      |
| `--weights <list>`         | Comma-separated weights in bps (must sum to 10000) | required      |
| `--max-slippage <bps>`     | Max per-swap slippage in bps                       | 500           |
| `--fee-tier <n>`           | Pool fee tier                                      | 3000          |
| `--swap-adapter <address>` | Override swap adapter                              | auto-detected |

See the [Portfolio strategy reference](/protocol/strategies/uniswap) for mechanics and risk notes.

## How It Works

1. **Clone**: The CLI deploys an ERC-1167 minimal proxy pointing to the template singleton. Cost: \~50k gas.
2. **Initialize**: Calls `strategy.initialize(vault, proposer, data)` with your parameters. Cost: \~100-200k gas.
3. **Build calls**: Generates `execute.json` and `settle.json` with the correct approve + execute/settle batch calls.
4. **Submit**: Either writes files for `proposal create` or calls `governor.propose()` directly.

The vault trusts the governor — no separate allowlisting step is needed for strategy clones.
