> For the complete documentation index, see [llms.txt](https://docs.goassay.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.goassay.ai/use-tools/advanced/set-limits-and-rules.md).

# Set limits and rules

Control what your agents can spend and which tools and providers they may use.

Open **Controls → Limits** to see **Spending limits**. Start with the agent's **Effective limit: what applies now**: it shows the lowest limit that applies, and which setting supplies it. Raising another limit cannot override it.

{% hint style="info" %}
**Before you start:** [turn on paid calls](/use-tools/get-started/turn-on-paid-calls.md) for the local app you want to control. You need your account's wallet to change limits enforced on chain.
{% endhint %}

| Control               | What it covers                                                                                                                           | How you change it                                                                                                  |
| --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ |
| **Account ceiling**   | The most per call and per 24 hours from your balance, across all agents and payment keys.                                                | **Change account ceiling** opens **Money → Funding**. Review and sign with your wallet.                            |
| Agent spending limits | The effective limits shown for that agent, including its payment permission and Assay's monthly and rate limits.                         | **Change spending limits**. Monthly and rate changes alone use **Save**, without a signature.                      |
| Payment-key limits    | The per-call, per-24-hour and expiry permission for the particular key that signs payments. Separate keys can have separate permissions. | Review the key's **Payment limits** on **Controls → Agents**. Changing the permission needs your wallet signature. |

Every applicable restriction must pass. A payment key cannot spend above the account ceiling, and an agent cannot bypass its own rules by using a different server. The account ceiling and payment-key permissions are enforced on chain. Monthly limits, rate limits, access rules and **Pause all** are checked by Assay's software; they are controls, not a wallet or contract guarantee.

## Steps

{% stepper %}
{% step %}

### Read the limit that binds

Open **Controls → Limits** and find your agent. Read each line under **Effective limit: what applies now**, including the remaining amount and the setting named beside it. **Account ceiling** shows the shared ceiling and usage across agents.
{% endstep %}

{% step %}

### Change the agent's spending limits

Choose **Change spending limits** for the agent. Edit **Most per call**, **Most per 24 hours** or **Most per month** as needed. Review the expiry before changing payment permission.

Use **Save** when only Assay's monthly or rate settings changed. Use **Sign and save (free)** when changing the payment permission, and approve the matching wallet request. If you need to raise the account ceiling first, follow **Change account ceiling** and review that separate signature. These signatures do not need a network fee.

A monthly limit resets on the first of the month at 00:00 UTC. The payment permission's 24-hour window is separate from a calendar day. Lowering a signed limit can take time to become fully effective; read the delay and any payments still settling before signing.
{% endstep %}

{% step %}

### Choose what the agent may use

Find **What \[your agent] can use**. Select **Only these tool sets and tools** to narrow access, then select the permitted sets or tools. **Everything** also allows new tools added later.

<figure><img src="https://141356682-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAhFBOJnejgrUxXsfscIS%2Fuploads%2Fgit-blob-bbd4c1e26e8e26a58d85b493c532889a9a51e86f%2Fset-limits-and-rules-1.png?alt=media" alt="Agent access controls with Only these tool sets and tools marked"><figcaption><p>These restrictions apply whichever server the agent uses.</p></figcaption></figure>

<figure><img src="https://141356682-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAhFBOJnejgrUxXsfscIS%2Fuploads%2Fgit-blob-cad615f3cb70b25bea9a2ce29863bc2b50731774%2Fset-limits-and-rules-2.png?alt=media" alt="Restricted tool selection before saving, with selection controls marked"><figcaption><p>Select the tools you want to allow; this example has not been saved.</p></figcaption></figure>

**Shortcut: only what's connected** saves a restriction based on the agent's connections. It is unavailable while one connection is **Everything**. Choosing a tool set for an app and restricting an agent are separate actions; see [Create and share tool sets](/use-tools/advanced/create-and-share-toolsets.md).
{% endstep %}

{% step %}

### Save the provider rules

Under **Provider limits**, choose any providers to exclude with **Never use these providers**, set **Max price per call**, or enable **Only verified providers**. Read **Result per tool** to check whether a tool still has a provider that can serve it. Choose **Save changes**. No wallet signature is needed.

<figure><img src="https://141356682-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAhFBOJnejgrUxXsfscIS%2Fuploads%2Fgit-blob-f7563a73996fed711de167758def815c553d6f6d%2Fset-limits-and-rules-3.png?alt=media" alt="Provider limits with maximum price and verified-provider controls"><figcaption><p>Provider limits apply to every call this agent makes.</p></figcaption></figure>

<figure><img src="https://141356682-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAhFBOJnejgrUxXsfscIS%2Fuploads%2Fgit-blob-7fe2cea0a5cb0d4555dee26d4b438ed7a7978b7a%2Fset-limits-and-rules-4.png?alt=media" alt="Save changes bar showing one selected tool set and Save changes marked"><figcaption><p>Save changes applies the selection to subsequent calls.</p></figcaption></figure>
{% endstep %}

{% step %}

### Pause all paid calls when needed

For an emergency stop, use **Pause all paid calls** at the top of the page or in the top bar. Review the confirmation and choose **Pause all paid calls**. This needs no wallet signature. Free calls keep working; earlier charges and money still owed do not change.

To allow paid calls again, use **Resume** in the paused banner and confirm **Resume paid calls**. Other limits, debts and withdrawal pauses still apply.
{% endstep %}
{% endstepper %}

## Check it worked

The page shows the effective spending limits you intended and the saved access summary. After a pause, look for the paused banner. Changes affect subsequent calls; check any wallet change's confirmation and delay before relying on it.

## If something goes wrong

| You see                                            | Do this                                                                                                                      |
| -------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| **Your monthly limits could not be read just now** | Retry later. The existing limits still apply.                                                                                |
| A monthly setting is unavailable for another agent | Monthly and **Advanced** limits can be set only for the agent you signed in with. Read the explanation on that agent's card. |
| A higher limit did not allow the call              | Recheck the effective limit, account ceiling and the particular payment key's permission.                                    |
| No provider remains                                | Relax only the restriction you intend to change, or choose a different tool.                                                 |
| Paid calls remain stopped after resuming           | Follow [Fix a paused or refused payment](/use-tools/when-something-goes-wrong/fix-a-payment-problem.md) for the other cause. |

<details>

<summary>Optional: rate limits and older rules</summary>

In the spending drawer, expand **Advanced: rate limits** for **Calls per minute**, **Calls per hour** and **Spend per hour**. These are checked by Assay. Refused attempts count toward the calls-per-minute limit too. Save without a wallet signature if these are the only changes.

**Older rules still checked** appears only when older restrictions remain. Saving the current spending limits replaces the older agent budget. The separate rule that refuses calls above an amount remains until you use **Remove it**, review the change and confirm **Remove the rule**. It does not offer a web approval flow for individual refused calls.

The Assay local app also enforces its own limits ($0.50 per call and $5 per 24 hours by default); browser changes do not raise them. To change them, run `npx -y @goassay-ai/mcp limits set --per-call 1 --per-day 10` in a terminal.

</details>

## Go further

* [Fix a paused or refused payment](/use-tools/when-something-goes-wrong/fix-a-payment-problem.md)
* [Manage alerts and review account history](/use-tools/everyday-use/alerts-and-account-history.md)

## Next

* [Manage agents, connected apps and payment keys](/use-tools/advanced/manage-agents-apps-and-keys.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.goassay.ai/use-tools/advanced/set-limits-and-rules.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
