Paymaster
Execute Private Transaction
Relay a proven apply_action transaction on-chain
POST
Overview
JSON-RPC methodpaymaster_executeTransaction with the apply_action type. The relayer submits the proven call on-chain and pays the gas; the pool fee (from the build step) reimburses it. No user signature is needed: the transaction settles straight from the proof. Use invoke_and_apply_action to also wrap a signed user call (with the typed_data returned by the build step).
The endpoint is the base URL itself (no path): https://starknet.paymaster.avnu.fi (mainnet) or https://sepolia.paymaster.avnu.fi (testnet).
Headers
Portal API key. Required for the sponsored fee modes (
sponsored, sponsored_private)Body (JSON-RPC 2.0)
paymaster_executeTransactionapply_action, or invoke_and_apply_action when a signed user call is wrappedThe proven call, as
{ to, selector, calldata }The zero-knowledge proof produced by the proving backend
The proof facts (array of felt hex strings)
Only for
invoke_and_apply_action: { user_address, typed_data, signature }Same shape as the build step:
{ version: '0x1', fee_mode, time_bounds? }Response
The hash of the submitted transaction
Relayer tracking id
Errors
| Code | Name | When |
|---|---|---|
| 156 | TRANSACTION_EXECUTION_ERROR | On-chain execution failure |
| 159 | PRIVACY_REQUIRES_SPONSORING | Private transaction sent without a sponsored fee mode |
| 163 | UNKNOWN_ERROR | Invalid API key, service unavailable, or blacklisted call |
| 165 | MISSING_FEE_TRANSFER_TO | The private transaction calldata does not withdraw the pool fee to the paymaster |
| 166 | CALLDATA_PARSING | The private transaction calldata could not be parsed |
| 167 | POOL_FEE_TOO_LOW | The withdrawn pool fee is below the required amount |
| 168 | PRIVACY_PROOF_MISSING | The proof is missing on a private transaction |
| 169 | MAX_L2_GAS_AMOUNT_EXCEEDED | The transaction exceeds the maximum L2 gas |