# Limits

{% code overflow="wrap" %}

```solidity
Limits(uint40 valid_from,uint40 expires_at,uint64 gas_price_limit,bool purgeable,bool blockable)
```

{% endcode %}

## Params

| Name              | Type   |
| ----------------- | ------ |
| `valid_from`      | uint40 |
| `expires_at`      | uint40 |
| `gas_price_limit` | uint64 |
| `purgeable`       | bool   |
| `blockable`       | bool   |

### valid\_from

Defines the date and time from which signed FCT can be executed on-chain.

{% hint style="info" %}
Number of seconds since January 1, 1970
{% endhint %}

### expires\_at

Defines the date and time from which signed FCT cannot be executed anymore.&#x20;

{% hint style="info" %}
Number of seconds since January 1, 1970
{% endhint %}

### gas\_price\_limit

The max gas price that can be used by the activator when running this FCT.

{% hint style="success" %}
The tokenomics encourage activators to decrease the gas price by as much as possible, so only in rare cases the actual gas price will reach this limit.
{% endhint %}

### purgeable

When purgeable is true, on-chain information of an expired FCT can be removed from the blockchain by the activators as part of running newer FCTs. This will clean-up the blockchain from unused stored data and will reduce the overall gas usage of the transaction.&#x20;

{% hint style="warning" %}
If the FCT is part of cross FCTs logic, "false" should be used to ensure that the data is always available on-chain.
{% endhint %}

### blockable

FCT Engine sends the FCT's message hash to the FCT\_Runner upon execution requests of calls.\
It allows the runner to block specific signed FCTs from executing on the blockchain.&#x20;

{% hint style="info" %}
The vault implements functions to block and unblock "blockable" FCTs
{% endhint %}

{% hint style="warning" %}
The FCT runner might override this functionality, e.g. implementing "blocking all FCTs" function that blocks all FCT regardless of the "blockable" field
{% endhint %}


---

# Agent Instructions: Querying This Documentation

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

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.intentable.io/intent-structure/limits.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
