Skip to main content
Send a transaction the same way you would with any wagmi-compatible wallet. The user’s smart account is the sender. For details on who pays gas in each context, see Who pays for gas.

Send native value

Call a contract

With the raw provider

The from field is set automatically to the user’s smart account. If you supply a from value, it is ignored.

How gas works in Mini Apps

When your Mini App runs inside the Startale App, eth_sendTransaction is gasless for the user. What happens:
  1. Context detection. When your page runs inside an iframe, the App SDK uses the Mini App wallet provider, so the request goes to the Startale App host instead of opening a popup.
  2. Conversion to a UserOperation. The host converts the request into an ERC-4337 UserOperation sent from the user’s smart account.
  3. Sponsorship. The host attaches its own paymaster. Nothing in your code selects it and nothing in the request carries it. Sponsorship is decided by the host, not by the Mini App.
  4. Submission. The host submits the UserOperation to a bundler, which calls handleOps on the EntryPoint contract. Gas is settled by Startale rather than by the user.
As a Mini App developer you configure nothing. There is no paymaster URL and no paymasterOptions in your code. See Gas for the caps that apply and how to handle them.

Gas in a standalone application

Outside the Startale App, gas is not sponsored. You configure a paymaster or the user pays. See Gas in a standalone application.
eth_sendTransaction cannot carry a custom paymaster. paymasterOptions is delivered as an EIP-5792 capability, and capabilities travel only on wallet_sendCalls. If you configure a paymaster and then send through eth_sendTransaction, the transaction succeeds and the user pays, with no error indicating the paymaster was skipped. Use batched calls instead, even for a single call.
For batched calls or atomic multi-step transactions, see Batched calls.

Errors

See Errors for the full list.