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

# eth_sendTransaction

> Send a single transaction from the user's smart account.

Sends a single transaction. The user's smart account is the sender.

Inside the Startale App this call is sponsored and the user pays no gas. In a standalone application it is not sponsored, and it cannot carry a custom paymaster. See the note under [Notes](#notes).

## Request

```ts theme={null}
const hash = await provider.request<`0x${string}`>({
  method: 'eth_sendTransaction',
  params: [
    {
      to: '0x...',
      value: '0x38d7ea4c68000', // 0.001 ETH
      data: '0x...',             // optional
    },
  ],
})
```

## Parameters

<ParamField path="params[0].to" type="`0x${string}`" required>
  Recipient address.
</ParamField>

<ParamField path="params[0].value" type="`0x${string}`">
  Hex-encoded value in wei. Defaults to `0x0`.
</ParamField>

<ParamField path="params[0].data" type="`0x${string}`">
  Hex-encoded calldata. Defaults to `0x`.
</ParamField>

<ParamField path="params[0].from" type="`0x${string}`">
  The connected smart-account address. Handling differs by context:

  * **Inside a Mini App**, the host overwrites `from` with the smart account, so you can omit it.
  * **In a standalone application**, `from` is required and is **not** rewritten. A missing value, or one that does not match the connected account, is rejected with `-32602`.
</ParamField>

## Returns

`0x${string}`, the transaction hash.

## Errors

| Code | Cause |
| - | - |
| `4001` | User rejected the transaction |
| `4100` | Wallet not connected |
| `-32603` | The network fee could not be estimated, or the transaction failed to send |

## Notes

* In a standalone application, pass the connected smart-account address as `from`. Only a Mini App has it rewritten for you.
* Inside the Startale App, gas is sponsored by Startale.
* In a standalone application, this method **cannot** use `paymasterOptions`. The paymaster travels as an EIP-5792 capability and this method carries no capabilities, so the user pays. Send through [`wallet_sendCalls`](/api-reference/rpc-methods/wallet-send-calls) to route through your own paymaster, even for a single call.

## Related

* [`wallet_sendCalls`](/api-reference/rpc-methods/wallet-send-calls), atomic batched calls, and the only path that carries a custom paymaster.
* [Who pays for gas](/concepts/gasless).
* [Send transactions](/app-sdk/send-transactions)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.