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

# Limits and narrowing

> How a Stamped Mandate states spending ceilings, time limits and expiry, and why a mandate can only ever be narrowed.

A mandate's limits live in two places: parameters on its scopes, and the mandate's own expiry. Both are signed. Neither can be raised after you sign.

## Spending ceilings

A spending ceiling is the `max` parameter on a spend scope. It is the most the mandate can ever authorise.

**`max` is an amount in the display unit of the currency or asset the scope names.** It is written the way you would read it on a receipt, never in cents, pence or other minor units.

| Written                  | Means            |
| ------------------------ | ---------------- |
| `max=25&currency=USD`    | 25.00 US dollars |
| `max=25.00&currency=USD` | 25.00 US dollars |
| `max=25.50&currency=USD` | 25.50 US dollars |
| `max=2500&currency=JPY`  | 2,500 yen        |

Rules for a ceiling:

* **Fractions are allowed** up to the currency's own precision: two places for USD and EUR, none for JPY, three for KWD.
* **Too precise is refused.** `max=25.001&currency=USD` is refused, never rounded or cut down. Rounding either way would sign a different number from the one you read.
* **Positive only.** A draft with a ceiling of zero or less is refused before you are asked to sign it.
* **Exactly one.** A spending mandate states exactly one ceiling. A draft with none, or with two, is refused. A [read mandate](/concepts/mandates/scopes#read-mandates) spends nothing and states no ceiling.
* **Written one way.** When Sumvin writes a ceiling itself, it uses exactly the currency's precision: 25 US dollars is written `max=25.00`, and 2,500 yen is written `max=2500`.

The approval page shows the ceiling in plain words at the currency's own precision, such as "Authorise spending of up to 25.00 USD."

<Note>
  Anything that reports a ceiling back to you or to a verifier reports it in the same display unit, such as `12.50`, never `1250`. A ceiling that can't be read back is reported as unreadable, never as unlimited.
</Note>

## Time limits

| Limit           | Where                                                  | Unit                                                      |
| --------------- | ------------------------------------------------------ | --------------------------------------------------------- |
| Expiry          | The mandate itself                                     | A point in time. After it, the mandate no longer stands.  |
| Search window   | `time` on `errand:search`                              | A length of time, in **seconds**. `604800` is seven days. |
| Date range      | `from_date`, `to_date` on `transactions:read`          | Points in time, in Unix **seconds**.                      |
| Purchase window | `not_before`, `not_after` on a `time_window` condition | Points in time, in Unix **milliseconds**.                 |

An expiry must be in the future when the mandate is made. A search window is also capped by Sumvin's own upper limit, and the shorter of the two applies.

### How long a mandate lasts

When your agent asks you for a mandate directly, two clocks start:

* **The time to answer.** You have 24 hours to sign or decline. If the request lapses unanswered, nothing is granted.
* **The mandate's own expiry.** Once you sign, the mandate lasts 90 days by default. Your agent may ask for any length from 1 to 90 days. The approval page shows the date it lapses before you sign.

A mandate can't be extended. In the last 7 days before a read mandate lapses, your agent is told so and can offer to ask you for a new one. Renewing means signing a new mandate; until you do, the old one keeps working to its expiry.

## A mandate only narrows

A mandate can never grant more than what you signed. Every rule below takes authority away; none adds it.

* **Your agent can't widen a mandate.** More authority always means a new mandate that you sign.
* **Each parameter narrows its scope.** A ceiling, a currency, a card, a date range, a provider: each one limits what the scope allows.
* **Resources and conditions narrow the whole mandate.**
* **Revocation and expiry end it.** Neither can be undone.

### Narrowing one mandate into a smaller one

A mandate can be narrowed into a smaller one, for example so that one purchase draws a part of a larger spending mandate. The smaller mandate:

* names the larger one in its [resources](/concepts/mandates/resources);
* has a ceiling at or below the larger one's;
* keeps the same currency, and the same pinned card if there is one;
* can't expire later than the larger one;
* stops standing the moment the larger one is revoked or expires.

A smaller mandate that breaks any of these rules is refused. When you revoke a mandate, every smaller mandate drawn from it that is still in use is revoked with it.

## Next

<Columns cols={2}>
  <Card title="What a verifier checks" icon="shield-check" href="/concepts/mandates/verification">
    How a counterparty reads these limits.
  </Card>

  <Card title="Set limits" icon="sliders-horizontal" href="/guides/set-limits">
    Choose the limits for your agent.
  </Card>
</Columns>
