Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.stablenet.network/llms.txt

Use this file to discover all available pages before exploring further.

StableNet’s fee delegation separates who signs a transaction from who pays for it. Your application acts as a fee payer, covering gas costs so users can transact without holding WKRC.
For sending basic WKRC transfers, see Stablecoin Transfers. For deploying the contracts that use fee delegation, see Smart Contract Deploy.

How it works

A fee-delegated transaction has two signers:
  • Sender (From) — signs the transaction intent and provides the value to transfer
  • Fee Payer (FeePayer) — separately signs to approve gas payment
The transaction uses type 0x16 (FeeDelegateDynamicFeeTxType). Both signatures are required. The EVM sees tx.origin as the sender — fee payer identity is not exposed to contract logic.
Fee delegation requires the Applepie fork to be active on the network. It is enabled on StableNet Testnet.

Quickstarts

Implement Fee Delegation

Intermediate. Build a fee delegation flow with a separate fee payer account.

Why StableNet for fee delegation

Fee delegation is built into StableNet at the transaction type level (0x16), not a smart contract abstraction. Both parties sign independently, and the protocol enforces the separation of sender and fee payer without requiring additional infrastructure.
New users don’t need to acquire WKRC before interacting with your application. Your app funds a fee payer wallet and covers gas, removing a common friction point in Web3 onboarding.
After execution, unused gas is refunded to the fee payer account — not the sender. This means your application’s fee payer balance is managed predictably, with no gas locked in user wallets.
tx.origin always reflects the transaction sender (From), not the fee payer. Existing contracts that check tx.origin or msg.sender behave identically — no contract changes needed to support fee delegation.