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

# eth_signTransaction

> Sign a Tempo transaction using the eth_signTransaction method with type 118.

### SDK methods

Learn more about signing Tempo transactions using our SDKs [here](/wallets/using-wallets/tempo/sign-a-transaction).

<RequestExample>
  ```sh cURL theme={"system"}
  curl --request POST \
    --url https://api.privy.io/v1/wallets/{wallet_id}/rpc \
    --header 'Authorization: Basic <encoded-value>' \
    --header 'Content-Type: application/json' \
    --header 'privy-app-id: <privy-app-id>' \
    --data '{
    "method": "eth_signTransaction",
    "params": {
      "transaction": {
        "type": 118,
        "chain_id": 4217,
        "calls": [
          {
            "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
            "value": "0x2386F26FC10000"
          }
        ]
      }
    }
  }'
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={"system"}
  {
    "method": "eth_signTransaction",
    "data": {
      "signed_transaction": "0x76f870830138de80830f4240830f437480940b81418147df37155d643b5cb65ba6c8cb7aba76872000000000000480c080a05c11a2166ec56189d993dec477477d962ce0d4c466ab7ed8982110621ec87a57a003c796590c0c62eac30acd412f2aa0e8ad740c4ded86fb64d3326ee4c0ea804c",
      "encoding": "rlp"
    }
  }
  ```
</ResponseExample>

### Headers

<ParamField header="privy-app-id" type="string" required>
  ID of your Privy app.
</ParamField>

<ParamField header="privy-authorization-signature" type="string">
  Request authorization signature. If multiple signatures are required, they should be comma
  separated.
</ParamField>

<ParamField header="privy-request-expiry" type="string">
  Request expiry. Value is a Unix timestamp in milliseconds representing the deadline by which the
  request must be processed.
</ParamField>

### Path Parameters

<ParamField path="wallet_id" type="string" required>
  ID of the wallet to get.
</ParamField>

### Body

<ParamField body="method" type="string" defaultValue="eth_signTransaction" required>
  Available options: `eth_signTransaction`
</ParamField>

<ParamField body="params" type="object" required>
  <Expandable title="child attributes" defaultOpen="true">
    <ParamField body="transaction" type="object" required>
      <Expandable title="child attributes" defaultOpen="true">
        <ParamField body="type" type="number" required>
          Must be `118` for Tempo transactions.
        </ParamField>

        <ParamField body="from" type="string" />

        <ParamField body="chain_id" type="string | number" />

        <ParamField body="nonce" type="string | number" />

        <ParamField body="gas_limit" type="string | number" />

        <ParamField body="max_fee_per_gas" type="string | number" />

        <ParamField body="max_priority_fee_per_gas" type="string | number" />

        <ParamField body="calls" type="object[]" required>
          The calls to include in the transaction.

          <Expandable title="child attributes" defaultOpen="true">
            <ParamField body="to" type="string" required>
              The target address for the call.
            </ParamField>

            <ParamField body="data" type="string">
              The calldata for the call.
            </ParamField>

            <ParamField body="value" type="string | number">
              The value to send with the call in wei.
            </ParamField>
          </Expandable>
        </ParamField>

        <ParamField body="fee_token" type="string">
          Address of the supported TIP-20 token used to pay Tempo fees. If omitted, Tempo's
          [fee-token preference rules](https://docs.tempo.xyz/protocol/fees/spec-fee#fee-lifecycle)
          apply. Tempo has no native gas token.
        </ParamField>

        <ParamField body="nonce_key" type="string | number">
          The Tempo 2D nonce key.
        </ParamField>

        <ParamField body="valid_before" type="string | number">
          Unix timestamp in seconds after which Tempo will reject the transaction.
        </ParamField>

        <ParamField body="valid_after" type="string | number">
          Unix timestamp in seconds before which Tempo will reject the transaction.
        </ParamField>

        <ParamField body="fee_payer_signature" type="object">
          A fee payer signature for sponsored Tempo transactions.

          <Expandable title="child attributes" defaultOpen={false}>
            <ParamField body="r" type="string" required />

            <ParamField body="s" type="string" required />

            <ParamField body="y_parity" type="0 | 1" required />
          </Expandable>
        </ParamField>

        <ParamField body="access_list" type="object[]">
          <Expandable title="child attributes" defaultOpen={false}>
            <ParamField body="address" type="string" required />

            <ParamField body="storage_keys" type="string[]" required />
          </Expandable>
        </ParamField>

        <ParamField body="aa_authorization_list" type="object[]">
          Account abstraction authorizations for Tempo transactions.

          <Expandable title="child attributes" defaultOpen={false}>
            <ParamField body="contract" type="string" required />

            <ParamField body="chain_id" type="string | number" required />

            <ParamField body="nonce" type="string | number" required />

            <ParamField body="signature" type="string" required />
          </Expandable>
        </ParamField>
      </Expandable>
    </ParamField>
  </Expandable>
</ParamField>

### Response

<ResponseField name="method" type="enum<string>" required>
  Available options: `eth_signTransaction`
</ResponseField>

<ResponseField name="data" type="object" required>
  <Expandable title="child properties" defaultOpen="true">
    <ResponseField name="signed_transaction" type="string" required />

    <ResponseField name="encoding" type="enum<string>">
      Available options: `rlp`
    </ResponseField>
  </Expandable>
</ResponseField>
