> ## 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_sendTransaction

> Sign and send a Tempo transaction using the eth_sendTransaction method with type 118.

### SDK methods

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

***

<RequestExample>
  ```sh Without sponsorship 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_sendTransaction",
    "caip2": "eip155:4217",
    "chain_type": "ethereum",
    "params": {
      "transaction": {
        "type": 118,
        "calls": [
          {
            "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
            "value": "0x2386F26FC10000"
          }
        ]
      }
    }
  }'
  ```

  ```sh With sponsorship 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_sendTransaction",
    "caip2": "eip155:4217",
    "chain_type": "ethereum",
    "sponsor": true,
    "params": {
      "transaction": {
        "type": 118,
        "calls": [
          {
            "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
            "value": "0x2386F26FC10000"
          }
        ]
      }
    }
  }'
  ```
</RequestExample>

<ResponseExample>
  ```json Without sponsorship theme={"system"}
  {
    "method": "eth_sendTransaction",
    "data": {
      "hash": "0xfc3a736ab2e34e13be2b0b11b39dbc0232a2e755a11aa5a9219890d3b2c6c7d8",
      "caip2": "eip155:4217",
      "transaction_id": "y90vpg3bnkjxhw541c2zc6a9",
      "transaction_request": {
        "chain_id": 4217,
        "type": 118,
        "calls": [
          {
            "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
            "value": "0x2386F26FC10000"
          }
        ]
      }
    }
  }
  ```

  ```json With sponsorship theme={"system"}
  {
    "method": "eth_sendTransaction",
    "data": {
      "hash": "0xfc3a736ab2e34e13be2b0b11b39dbc0232a2e755a11aa5a9219890d3b2c6c7d8",
      "caip2": "eip155:4217",
      "transaction_id": "y90vpg3bnkjxhw541c2zc6a9"
    }
  }
  ```
</ResponseExample>

<Warning>
  A successful response indicates that the transaction has been broadcasted to the network.
  Transactions may get broadcasted but still fail to be confirmed by the network. To handle these
  scenarios, see our guide on [speeding up transactions](/recipes/speeding-up-transactions).
</Warning>

### 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_sendTransaction" required>
  Available options: `eth_sendTransaction`
</ParamField>

<ParamField body="caip2" type="string" initialValue="eip155:4217" required>
  The CAIP-2 chain identifier for the Tempo network.
</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 execute atomically.

          <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. To have Privy populate this field,
          pass `sponsor: true` at the request root.

          <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>

<ParamField body="sponsor" type="boolean">
  Enable gas sponsorship for this transaction. [Learn
  more.](/wallets/gas-and-asset-management/gas/overview)
</ParamField>

<ParamField body="reference_id" type="string">
  Optional developer-provided reference ID for transaction reconciliation. Must be unique per
  transaction and up to 64 characters. Use this to correlate transactions with your own internal
  records. The `reference_id` is included in [transaction
  webhook](/api-reference/webhooks/transaction/broadcasted) payloads and can be used to [look up
  transactions](/api-reference/transactions/external-id).
</ParamField>

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

<ParamField body="chain_type" type="string">
  Available options: `ethereum`
</ParamField>

### Returns

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

<ResponseField name="data" type="object" required>
  <Expandable title="child attributes" defaultOpen="true">
    <ResponseField name="hash" type="string" required>
      The broadcast transaction hash.
    </ResponseField>

    <ResponseField name="transaction_request" type="object">
      The full transaction object that was signed and broadcast.
    </ResponseField>

    <ResponseField name="caip2" type="string" required />

    <ResponseField name="transaction_id" type="string" />

    <ResponseField name="reference_id" type="string | null">
      The developer-provided reference ID, if one was provided in the request.
    </ResponseField>
  </Expandable>
</ResponseField>
