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

# Zero-effective-input guard

> Why a tiny swap can return all input without moving price.

The bounded partial path calculates:

```text theme={"languages":{"custom":["/languages/leo.tmLanguage.json"]}}
input_less_fee = floor(input * (1_000_000 - fee_pips) / 1_000_000)
```

For a small input and a nonzero fee, this value can be zero. The current contract treats that as no fill:

* output remains zero;
* square-root price remains unchanged;
* fee growth remains unchanged;
* protocol fees remain unchanged; and
* all input remains in `SwapOutput.amount_remaining` for later claim.

This rule prevents a trade from consuming input entirely as fee while producing no output.

An application should calculate the same integer threshold before submission. It should warn the user or reject the quote when fee-adjusted input is zero.
