Self-hosted Gas Waiver lets you operate your own waiver infrastructure instead of using the hosted Waiver Server API. You register a waiver address through on-chain governance, then broadcast wrapper transactions directly to the network. This guide covers registering a waiver address, collecting signed user transactions, constructing wrapper transactions, and broadcasting them.Documentation Index
Fetch the complete documentation index at: https://docs.stable.xyz/llms.txt
Use this file to discover all available pages before exploring further.
Concept: For what Gas Waiver is and why it exists, see Gas waiver. For the full protocol specification (wrapper transaction mechanism, authorization, policy checks, execution semantics, security model), see Gas waiver protocol.
Prerequisites
- A waiver address registered on-chain via validator governance.
AllowedTargetpolicy configured for your target contracts.
Overview
The self-hosted flow:- Collect a signed InnerTx from the user with
gasPrice = 0. - Construct a WrapperTx: RLP-encode the InnerTx and wrap it in a transaction sent to the marker address.
- Broadcast the WrapperTx via
eth_sendRawTransaction.
Step 1: Collect the user’s InnerTx
The user signs a transaction withgasPrice = 0. The to address and method selector must match your waiver’s AllowedTarget policy.
Step 2: Construct the WrapperTx
RLP-encode the signed InnerTx and wrap it in a transaction to the marker address. ThegasLimit must cover both the inner execution and the wrapping overhead.
Step 3: Broadcast
Submit the signed WrapperTx via standard JSON-RPC.Key takeaways
- Self-hosted waiver requires a waiver address registered through on-chain validator governance.
- The WrapperTx is sent to the marker address (
0x...f333) with the RLP-encoded InnerTx as data. - Both InnerTx and WrapperTx must have
gasPrice = 0andvalue = 0.
Next recommended
Gas waiver concept
Understand the mechanism before you run your own.
Gas waiver protocol
Reference the full protocol spec for marker routing, authorization, and execution semantics.
Enable gas-free transactions
Use the hosted Waiver Server API instead of self-hosting.

