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

# Request signature

The `request` method facilitates the use of prebuilt transaction screens for signing transactions. The method returns [SignResponse](#signresponse). It can be used to sign transactions for any EVM chain and screens can be customized to match your branding.

Configure chains during initialization with `Web3AuthOptions(chains: [...])`. The `request` method uses those chains; you no longer pass a separate chain configuration argument.

Please check the list of [JSON RPC methods](https://metamask-docs-git-docs-agent-wallet-s-66054a-consensys-ddffed67.vercel.app/wallet/reference/json-rpc-api/), noting that the request method currently supports only the signing methods.

![Request Method](/img/embedded-wallets/wallet-services/mobile-request-method.png) 

## Arguments

| Arguments       | Description                                                                                                                                                                                            |
| --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `method`        | JSON RPC method name in `String`. Currently, the request method only supports the signing methods.                                                                                                     |
| `requestParams` | Parameters for the corresponding method. The parameters should be in the list and correct sequence. Take a look at [RPC methods](https://metamask-docs-git-docs-agent-wallet-s-66054a-consensys-ddffed67.vercel.app/wallet/reference/json-rpc-api) to know more. |
| `path?`         | Wallet request path. Defaults to `"wallet/request"`.                                                                                                                                                   |
| `appState?`     | Optional app state string passed to the wallet UI.                                                                                                                                                     |

## Usage

Usage

```dart

try {
  List<dynamic> params = [];
  // Message to be signed
  params.add("Hello, Web3Auth from Flutter!");
  // User's EOA address
  params.add("<User Address in Hex>");

  final response = await Web3AuthFlutter.request(
    "personal_sign",
    params,
  );

  log(response.toString());
} on UserCancelledException {
  log("User cancelled.");
} catch (e) {
  log("Unknown exception occurred");
}

```

## SignResponse

| Name      | Description                                                   |
| --------- | ------------------------------------------------------------- |
| `success` | Determines whether the request was successful or not.         |
| `result?` | Holds the signature for the request when `success` is `true`. |
| `error?`  | Holds the error for the request when `success` is `false`.    |
