# NativeTokenLimitModule

> Overview of NativeTokenLimitModule

> For the complete documentation index, see [llms.txt](/docs/llms.txt).

{/* This file is auto-generated by TypeDoc. Do not edit manually. */}

```ts
const NativeTokenLimitModule: object;
```

Defined in: [packages/smart-accounts/src/ma-v2/modules/native-token-limit-module/module.ts:4](https://github.com/alchemyplatform/aa-sdk/blob/v5.x.x/packages/smart-accounts/src/ma-v2/modules/native-token-limit-module/module.ts#L4)

## Type Declaration

<table>
  <thead>
    <tr>
      <th align="left">Name</th>
      <th align="left">Type</th>
      <th align="left">Default value</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>
        <a id="abi" /> `abi`
      </td>

      <td>
        readonly \[\{
        `inputs`: readonly \[\{
        `internalType`: `"uint256"`;
        `name`: `"entityId"`;
        `type`: `"uint256"`;
        }, \{
        `internalType`: `"address"`;
        `name`: `"account"`;
        `type`: `"address"`;
        }];
        `name`: `"limits"`;
        `outputs`: readonly \[\{
        `internalType`: `"uint256"`;
        `name`: `"limit"`;
        `type`: `"uint256"`;
        }];
        `stateMutability`: `"view"`;
        `type`: `"function"`;
        }, \{
        `inputs`: readonly \[];
        `name`: `"moduleId"`;
        `outputs`: readonly \[\{
        `internalType`: `"string"`;
        `name`: `""`;
        `type`: `"string"`;
        }];
        `stateMutability`: `"pure"`;
        `type`: `"function"`;
        }, \{
        `inputs`: readonly \[\{
        `internalType`: `"bytes"`;
        `name`: `"data"`;
        `type`: `"bytes"`;
        }];
        `name`: `"onInstall"`;
        `outputs`: readonly \[];
        `stateMutability`: `"nonpayable"`;
        `type`: `"function"`;
        }, \{
        `inputs`: readonly \[\{
        `internalType`: `"bytes"`;
        `name`: `"data"`;
        `type`: `"bytes"`;
        }];
        `name`: `"onUninstall"`;
        `outputs`: readonly \[];
        `stateMutability`: `"nonpayable"`;
        `type`: `"function"`;
        }, \{
        `inputs`: readonly \[\{
        `internalType`: `"uint32"`;
        `name`: `""`;
        `type`: `"uint32"`;
        }, \{
        `internalType`: `"bytes"`;
        `name`: `""`;
        `type`: `"bytes"`;
        }];
        `name`: `"postExecutionHook"`;
        `outputs`: readonly \[];
        `stateMutability`: `"pure"`;
        `type`: `"function"`;
        }, \{
        `inputs`: readonly \[\{
        `internalType`: `"uint32"`;
        `name`: `"entityId"`;
        `type`: `"uint32"`;
        }, \{
        `internalType`: `"address"`;
        `name`: `""`;
        `type`: `"address"`;
        }, \{
        `internalType`: `"uint256"`;
        `name`: `""`;
        `type`: `"uint256"`;
        }, \{
        `internalType`: `"bytes"`;
        `name`: `"data"`;
        `type`: `"bytes"`;
        }];
        `name`: `"preExecutionHook"`;
        `outputs`: readonly \[\{
        `internalType`: `"bytes"`;
        `name`: `""`;
        `type`: `"bytes"`;
        }];
        `stateMutability`: `"nonpayable"`;
        `type`: `"function"`;
        }, \{
        `inputs`: readonly \[\{
        `internalType`: `"uint32"`;
        `name`: `""`;
        `type`: `"uint32"`;
        }, \{
        `internalType`: `"address"`;
        `name`: `""`;
        `type`: `"address"`;
        }, \{
        `internalType`: `"uint256"`;
        `name`: `""`;
        `type`: `"uint256"`;
        }, \{
        `internalType`: `"bytes"`;
        `name`: `""`;
        `type`: `"bytes"`;
        }, \{
        `internalType`: `"bytes"`;
        `name`: `""`;
        `type`: `"bytes"`;
        }];
        `name`: `"preRuntimeValidationHook"`;
        `outputs`: readonly \[];
        `stateMutability`: `"pure"`;
        `type`: `"function"`;
        }, \{
        `inputs`: readonly \[\{
        `internalType`: `"uint32"`;
        `name`: `""`;
        `type`: `"uint32"`;
        }, \{
        `internalType`: `"address"`;
        `name`: `""`;
        `type`: `"address"`;
        }, \{
        `internalType`: `"bytes32"`;
        `name`: `""`;
        `type`: `"bytes32"`;
        }, \{
        `internalType`: `"bytes"`;
        `name`: `""`;
        `type`: `"bytes"`;
        }];
        `name`: `"preSignatureValidationHook"`;
        `outputs`: readonly \[];
        `stateMutability`: `"pure"`;
        `type`: `"function"`;
        }, \{
        `inputs`: readonly \[\{
        `internalType`: `"uint32"`;
        `name`: `"entityId"`;
        `type`: `"uint32"`;
        }, \{
        `components`: readonly \[\{
        `internalType`: `"address"`;
        `name`: `"sender"`;
        `type`: `"address"`;
        }, \{
        `internalType`: `"uint256"`;
        `name`: `"nonce"`;
        `type`: `"uint256"`;
        }, \{
        `internalType`: `"bytes"`;
        `name`: `"initCode"`;
        `type`: `"bytes"`;
        }, \{
        `internalType`: `"bytes"`;
        `name`: `"callData"`;
        `type`: `"bytes"`;
        }, \{
        `internalType`: `"bytes32"`;
        `name`: `"accountGasLimits"`;
        `type`: `"bytes32"`;
        }, \{
        `internalType`: `"uint256"`;
        `name`: `"preVerificationGas"`;
        `type`: `"uint256"`;
        }, \{
        `internalType`: `"bytes32"`;
        `name`: `"gasFees"`;
        `type`: `"bytes32"`;
        }, \{
        `internalType`: `"bytes"`;
        `name`: `"paymasterAndData"`;
        `type`: `"bytes"`;
        }, \{
        `internalType`: `"bytes"`;
        `name`: `"signature"`;
        `type`: `"bytes"`;
        }];
        `internalType`: `"struct PackedUserOperation"`;
        `name`: `"userOp"`;
        `type`: `"tuple"`;
        }, \{
        `internalType`: `"bytes32"`;
        `name`: `""`;
        `type`: `"bytes32"`;
        }];
        `name`: `"preUserOpValidationHook"`;
        `outputs`: readonly \[\{
        `internalType`: `"uint256"`;
        `name`: `""`;
        `type`: `"uint256"`;
        }];
        `stateMutability`: `"nonpayable"`;
        `type`: `"function"`;
        }, \{
        `inputs`: readonly \[\{
        `internalType`: `"address"`;
        `name`: `"paymaster"`;
        `type`: `"address"`;
        }, \{
        `internalType`: `"address"`;
        `name`: `"account"`;
        `type`: `"address"`;
        }];
        `name`: `"specialPaymasters"`;
        `outputs`: readonly \[\{
        `internalType`: `"bool"`;
        `name`: `"allowed"`;
        `type`: `"bool"`;
        }];
        `stateMutability`: `"view"`;
        `type`: `"function"`;
        }, \{
        `inputs`: readonly \[\{
        `internalType`: `"bytes4"`;
        `name`: `"interfaceId"`;
        `type`: `"bytes4"`;
        }];
        `name`: `"supportsInterface"`;
        `outputs`: readonly \[\{
        `internalType`: `"bool"`;
        `name`: `""`;
        `type`: `"bool"`;
        }];
        `stateMutability`: `"view"`;
        `type`: `"function"`;
        }, \{
        `inputs`: readonly \[\{
        `internalType`: `"uint32"`;
        `name`: `"entityId"`;
        `type`: `"uint32"`;
        }, \{
        `internalType`: `"uint256"`;
        `name`: `"newLimit"`;
        `type`: `"uint256"`;
        }];
        `name`: `"updateLimits"`;
        `outputs`: readonly \[];
        `stateMutability`: `"nonpayable"`;
        `type`: `"function"`;
        }, \{
        `inputs`: readonly \[\{
        `internalType`: `"address"`;
        `name`: `"paymaster"`;
        `type`: `"address"`;
        }, \{
        `internalType`: `"bool"`;
        `name`: `"allowed"`;
        `type`: `"bool"`;
        }];
        `name`: `"updateSpecialPaymaster"`;
        `outputs`: readonly \[];
        `stateMutability`: `"nonpayable"`;
        `type`: `"function"`;
        }, \{
        `anonymous`: `false`;
        `inputs`: readonly \[\{
        `indexed`: `true`;
        `internalType`: `"uint32"`;
        `name`: `"entityId"`;
        `type`: `"uint32"`;
        }, \{
        `indexed`: `true`;
        `internalType`: `"address"`;
        `name`: `"account"`;
        `type`: `"address"`;
        }, \{
        `indexed`: `false`;
        `internalType`: `"uint256"`;
        `name`: `"newLimit"`;
        `type`: `"uint256"`;
        }];
        `name`: `"NativeTokenSpendLimitUpdated"`;
        `type`: `"event"`;
        }, \{
        `anonymous`: `false`;
        `inputs`: readonly \[\{
        `indexed`: `true`;
        `internalType`: `"address"`;
        `name`: `"account"`;
        `type`: `"address"`;
        }, \{
        `indexed`: `true`;
        `internalType`: `"address"`;
        `name`: `"paymaster"`;
        `type`: `"address"`;
        }, \{
        `indexed`: `false`;
        `internalType`: `"bool"`;
        `name`: `"allowed"`;
        `type`: `"bool"`;
        }];
        `name`: `"SpecialPaymasterUpdated"`;
        `type`: `"event"`;
        }, \{
        `inputs`: readonly \[];
        `name`: `"ExceededNativeTokenLimit"`;
        `type`: `"error"`;
        }, \{
        `inputs`: readonly \[];
        `name`: `"InvalidPaymaster"`;
        `type`: `"error"`;
        }, \{
        `inputs`: readonly \[];
        `name`: `"NotImplemented"`;
        `type`: `"error"`;
        }, \{
        `inputs`: readonly \[];
        `name`: `"UnexpectedDataPassed"`;
        `type`: `"error"`;
        }]
      </td>

      <td>
        `nativeTokenLimitModuleAbi`
      </td>
    </tr>

    <tr>
      <td>
        <a id="encodeoninstalldata" /> `encodeOnInstallData()`
      </td>

      <td>
        (`args`) => `` `0x${string}` ``
      </td>

      <td>
        ‐
      </td>
    </tr>

    <tr>
      <td>
        <a id="encodeonuninstalldata" /> `encodeOnUninstallData()`
      </td>

      <td>
        (`args`) => `` `0x${string}` ``
      </td>

      <td>
        ‐
      </td>
    </tr>

  </tbody>
</table>