@startale/app-sdk from their own origin are not sponsored by Startale. This page covers the two supported outcomes at the call site: your paymaster pays, or the user pays.
Building a Mini App instead? Gas is sponsored by the Startale App and there is nothing to configure. See Gas in a Mini App.
Configure a paymaster
PasspaymasterOptions to either createStartaleAccountSDK or startaleConnector. The map is keyed by chain id.
- Raw SDK
- wagmi connector
Only batched calls carry your paymaster
paymasterOptions is attached as an EIP-5792 paymasterService capability, and that capability exists only on wallet_sendCalls. A plain eth_sendTransaction carries no capabilities, so it cannot carry your paymaster either.
This is the single most common integration mistake. A viem
walletClient.sendTransaction call, or wagmi’s useSendTransaction and useWriteContract, all issue eth_sendTransaction. Configuring paymasterOptions and then sending through those paths produces a working transaction that the user pays for, with no error to tell you the paymaster was skipped.
To route through your paymaster, send the transaction as a batch of one:
paymasterService capability for you, so there is no capability to write by hand. On wagmi, use the EIP-5792 useSendCalls hook rather than the single-transaction hooks. See Batched calls.
Or let the user pay
With nopaymasterOptions, UserOperations are still built and submitted and gas is debited from the user’s smart account. The user needs:
- ETH at their smart account address, not at the EOA that signs for it.
- A route to put ETH there, such as a bridge or a deposit flow inside your product.
Configure per chain
paymasterOptions is a map, so sponsorship is a per-chain decision. A chain with no entry falls back to the user paying.
Constraints applied by the Startale App
Paymaster requests are forwarded server-side by the Startale App rather than called from the browser, and that forwarding applies fixed limits. Check these first when a sponsorship fails for no obvious reason.
Because no
Authorization header is forwarded, any credential your paymaster requires must be carried in the URL or terminated by a gateway you control. See Secure your paymaster.
Failure modes
Your application does not see your paymaster’s error text or the forwarding layer’s. The Startale App reports a failed send to yourwallet_sendCalls request as a JSON-RPC error with a short reason category.
Related
Paymaster wire format
The two ERC-7677 methods your service must implement, with request and response shapes.
Secure your paymaster
Your URL is public. Proxy your credentials and scope what you sponsor.
Who pays for gas
The model across both contexts, and where Startale’s responsibility ends.
Batched calls
The
wallet_sendCalls path that carries your paymaster.