# PaymasterGuardModule

> Overview of PaymasterGuardModule

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

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

```ts
const PaymasterGuardModule: object;
```

Defined in: [packages/smart-accounts/src/ma-v2/modules/paymaster-guard-module/module.ts:4](https://github.com/alchemyplatform/aa-sdk/blob/v5.x.x/packages/smart-accounts/src/ma-v2/modules/paymaster-guard-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 \[];
        `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`: `"entityId"`;
        `type`: `"uint32"`;
        }, \{
        `internalType`: `"address"`;
        `name`: `"account"`;
        `type`: `"address"`;
        }];
        `name`: `"paymasters"`;
        `outputs`: readonly \[\{
        `internalType`: `"address"`;
        `name`: `"paymaster"`;
        `type`: `"address"`;
        }];
        `stateMutability`: `"view"`;
        `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`: `"view"`;
        `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`: `"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 \[];
        `name`: `"BadPaymasterSpecified"`;
        `type`: `"error"`;
        }, \{
        `inputs`: readonly \[];
        `name`: `"InvalidPaymaster"`;
        `type`: `"error"`;
        }, \{
        `inputs`: readonly \[];
        `name`: `"NotImplemented"`;
        `type`: `"error"`;
        }, \{
        `inputs`: readonly \[];
        `name`: `"UnexpectedDataPassed"`;
        `type`: `"error"`;
        }]
      </td>

      <td>
        `paymasterGuardModuleAbi`
      </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>