> ## 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.

# Fee Delegation

> Let your application pay gas on behalf of users, removing the need for users to hold WKRC.

> 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](/en/v0.3/build/use-cases/stablecoin-transfers). For deploying the contracts that use fee delegation, see [Smart Contract Deploy](/en/v0.3/build/use-cases/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.

<Info>
  Fee delegation requires the Applepie fork to be active on the network. It is enabled on StableNet Testnet.
</Info>

## Quickstarts

<CardGroup cols={2}>
  <Card title="Implement Fee Delegation" icon="credit-card" href="/en/v0.3/build/tutorials/fee-delegation">
    **Intermediate**. Build a fee delegation flow with a separate fee payer account.
  </Card>
</CardGroup>

## Why StableNet for fee delegation

<AccordionGroup>
  <Accordion title="Native protocol support">
    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.
  </Accordion>

  <Accordion title="Improved user onboarding">
    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.
  </Accordion>

  <Accordion title="Gas refunds go to the fee payer">
    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.
  </Accordion>

  <Accordion title="Transparent to contract logic">
    `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.
  </Accordion>
</AccordionGroup>
