> For the complete documentation index, see [llms.txt](/llms.txt).

# Trading modes

During `mm init`, you are prompted to choose a trading mode. Each wallet has its own trading mode. If the account already has a wallet, `mm init` loads that wallet's trading mode instead of prompting. For bring your own wallet, the CLI labels policy-based 2FA as coming soon.

## Guard Mode vs Beast Mode

Guard Mode enforces all of your policies and asks for approval on anything outside them.

Beast Mode is for power users who want fewer interruptions. It still blocks and surfaces dangerous transactions.

info

We recommend **Guard Mode** for most users.

## Comparison

### Guardrails

Policies enforced automatically before a transaction can proceed.

| Guardrail                      | Guard Mode | Beast Mode |
| ------------------------------ | ---------- | ---------- |
| Threat scanning                | ✓          | ✓          |
| Network allowlist              | ✓          | No         |
| Address allowlist              | ✓          | No         |
| Token recipient allowlist      | ✓          | No         |
| Rolling 24-hour outflow limit* | ✓          | No         |

In Guard Mode, untrusted contracts, networks, and recipients are caught by your allowlists. In Beast Mode there are no allowlists.

### Requires 2FA approval

Transactions that pause the job until you approve or reject them.

| Condition                        | Guard Mode | Beast Mode |
| -------------------------------- | ---------- | ---------- |
| Malicious transactions           | ✓          | ✓          |
| Risky contracts                  | ✓          | ✓          |
| Anything outside your allowlists | ✓          | No         |
| Raising your outflow limit       | ✓          | No         |

In Beast Mode, only malicious and risky transactions trigger approval.

note

See [Outflow policy](/agent-wallet/reference/outflow-policy/) for how outflows are tracked.

## Set your trading mode

Set the mode with the `--mode` flag during `mm init`, or pick it at the interactive prompt:

```bash
mm init --mode guard   # or --mode beast

```

In a non-interactive session, `mm init` sets Guard Mode when `--mode` is omitted. Agents must ask the user and pass `--mode` explicitly.

## How 2FA approval works

When a transaction needs approval, the CLI pauses the job and prints `AWAITING_MFA` until you approve or reject it. The agent cannot proceed on a flagged or policy-violating transaction without your response.

Your sign-in method determines where the approval request is sent: an email link for browser sign-in, or the MetaMask Mobile notifications menu for QR sign-in. See [Approve requests](/agent-wallet/approve-requests/) for details and recovery steps.

## Switch modes

Change the active wallet's trading mode without re-running `mm init`:

```bash
mm wallet trading-mode set guard
mm wallet trading-mode set beast
mm wallet trading-mode set beast --no-wait

```

Switching to Beast Mode needs your 2FA approval. Switching to Guard Mode applies immediately. View the current mode with:

```bash
mm wallet trading-mode get

```

See [Switch modes and wallets](/agent-wallet/switch-modes-and-wallets/#switch-trading-mode) for return values and errors.

## Wallet policy

Guard Mode allowlists and outflow limits are stored as policy YAML on the server wallet. View, update, or inspect the template with:

```bash
mm wallet policy get
mm wallet policy set --policy "<yaml>"
mm wallet policy set --policy "<yaml>" --no-wait
mm wallet policy template

```

## Outflow policy

Guard Mode enforces a rolling 24-hour outflow limit on server-wallet outgoing transfers. You're prompted to set the limit on your first transaction, or when a transaction would exceed your current limit. If a transaction would exceed the limit, or you request a higher limit, the CLI requires 2-factor authentication approval before the transaction proceeds.

See [Outflow policy](/agent-wallet/reference/outflow-policy/) for how outflows are calculated, what counts toward the limit, and known limitations.
