> 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 will return [SignResponse](#signresponse). It can be used to sign transactions for any EVM chain and screens can be customized to match your branding.

Please check the list of [JSON RPC methods](https://metamask-docs-git-imp-agt-scr-90-100-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) 

## Parameters[​](#parameters "Direct link to Parameters")

| Parameter     | Description                                                                                                                                                                                             |
| ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| chainConfig   | Defines the chain to be used for signature.                                                                                                                                                             |
| method        | JSON RPC method name in String. Currently, the request method only supports the singing 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-imp-agt-scr-90-100-consensys-ddffed67.vercel.app/wallet/reference/json-rpc-api/) to know more. |

## Usage[​](#usage "Direct link to Usage")

```
do {
  var params = [Any]()
  // Message to be signed
  params.append("Hello, Web3Auth from iOS!")
  // User's EOA address
  params.append(address)

  let response = try await web3Auth?.request(
    chainConfig: ChainConfig(
      chainId: "0xaa36a7",
      rpcTarget: "https://eth-sepolia.public.blastapi.io"
    ),
    method: "personal_sign",
    requestParams: params
  )

  if response!.success {
     print(response!.result!)
   } else {
     // Handle Error
     print(response!.error!)
   }

} catch {
  print(error.localizedDescription)
  // Handle error
}

```

## SignResponse[​](#signresponse "Direct link to 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.    |
