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

# Execution gas cost limits

> Limit the maximum execution gas cost of EVM transactions and Para-managed sponsored transfers.

Use `request.gas.maxExecutionCost` to constrain an EVM signing request's maximum execution gas cost with one amount condition. The same policy applies to requests sent through REST and SDK signing flows.

## Calculation and units

The fact is a decimal digit string in the network's native-token base units, such as wei. It supports `eq`, `ne`, `lt`, `lte`, `gt` and `gte`.

| Request | Maximum execution gas cost |
| - | - |
| Legacy or EIP-2930 transaction | `gasLimit × gasPrice` |
| EIP-1559 or EIP-4844 transaction | `gasLimit × maxFeePerGas` |
| Para-managed sponsored transfer | `(callGasLimit + verificationGasLimit + preVerificationGas + paymasterVerificationGasLimit + paymasterPostOpGasLimit) × maxFeePerGas` |

`maxFeePerGas` already includes the priority fee ceiling; Para does not add `maxPriorityFeePerGas` again. The result is a maximum based on the signed gas fields, not a prediction of the gas used or the settled charge.

The fact excludes transferred native value or tokens, provider and Para billing markups, and separately charged L1 data, operator or blob fees. It is an execution-gas ceiling, like `maxExecutionFeeWei` in a [fee estimate](/v3/rest/transaction-signing.md), rather than a transaction's total cost.

## App-owned wallet: cap execution gas at 0.001 ETH

This Guardrail denies an EVM transaction on Base when its maximum execution gas cost exceeds `"1000000000000000"` wei. Equality is allowed by this rule. Replace `YOUR_WALLET_ID` with the wallet's Para ID.

```json execution-gas-limit.json theme={null}
{
  "id": "base-execution-gas-limit",
  "schemaVersion": "permissions.policy.v1",
  "version": "1",
  "selector": {
    "walletType": "EVM",
    "chainId": "8453",
    "walletId": "YOUR_WALLET_ID"
  },
  "rules": [
    {
      "id": "deny-excess-execution-gas",
      "effect": "deny",
      "actions": [
        "transfer_native",
        "transfer_tokens",
        "approve_tokens",
        "transfer_nfts",
        "call_contract",
        "deploy_contract",
        "execute_safe_transaction"
      ],
      "when": {
        "kind": "compare",
        "fact": "request.gas.maxExecutionCost",
        "op": "gt",
        "value": "1000000000000000"
      }
    }
  ],
  "metadata": {
    "productMode": "guardrail",
    "description": "Cap maximum execution gas cost on Base at 0.001 ETH per request"
  }
}
```

At 20 gwei per gas, 50,000 gas reaches the limit exactly; 50,001 gas exceeds it. Other Guardrails and Para's existing service limits still apply.

For a user-owned wallet, put a `lte` condition on this fact inside an accepted Request's `allow` rule. A request above that limit follows the other applicable rules or reaches user review. An overlapping `allow` rule can still authorize it; Requests do not impose a hard denial.

## Coverage

The fact applies to EVM native and token transfers, approvals, NFT transfers, contract calls and deployments, and the outer transaction that executes a Safe. Yield approvals, deposits and withdrawals use those same signing paths; each signed transaction has its own limit.

Safe payment signature collection has no outer transaction gas fields. For a readable payment evaluated as `transfer_native` or `transfer_tokens`, the Guardrail above denies collection because the gas cost is missing. A Safe's `safeTxGas`, `baseGas` and refund fields do not establish the outer transaction's fee ceiling.

Para evaluates the gas fields of each transaction it signs, including replacements from automatic retry, speed-up and cancel, and transactions rebuilt after approval. A higher fee quote can therefore make a previously acceptable request exceed the limit.

For [Para-managed sponsored transfers](/v3/rest/gas-sponsorship.md), the fact comes from the final UserOperation after its gas and paymaster quote are refreshed, and is checked before the payment signature. Sponsorship's existing per-operation service ceiling also applies.

Message signatures, Safe typed-data approvals, standalone EIP-7702 authorizations and raw signatures have no final transaction gas cost. The earlier delegation authorization in a sponsored flow is separate from its final payment signature. Generic smart-account UserOperations outside Para-managed sponsorship do not provide this fact. Non-EVM wallets do not support it.

Missing or invalid gas fields are not a calldata decode gap and do not qualify for decode-gap fallback. See [Facts Para cannot read](/v3/references/permissions/policy-json.md#facts-para-cannot-read) for condition outcomes.

Use the existing [JSON authoring flow](/v3/rest/permissions/json.md) to validate and save the policy. Test at the limit and just above it, raise the gas limit and fee ceiling separately, and repeat with a refreshed sponsored quote or replacement transaction. This is a per-request ceiling; it does not add a daily gas budget or count fees toward [spending limits](/v3/references/permissions/facts.md#metered-facts).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.