> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dfns.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Fee Sponsors

> Sponsor gas fees for your wallets so end users can transact without holding native tokens, with policy-controlled sponsor wallets and limits.

export const Youtube = props => {
  return <iframe className="w-full aspect-video rounded-xl" src={`https://www.youtube.com/embed/${props.videoId}`} title="YouTube video player" frameBorder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowFullScreen>
      </iframe>;
};

Typically submitting transactions to a blockchain requires the sender to pay a small amount of fees called gas fees. These fees compensate network participants, such as miners or validators, for the computational resources needed to execute transactions, smart contracts, and other operations. What it means in practice is that for users to transfer some stable coins such as `USDC`, they must also hold a small amount of the native tokens of the blockchains used to pay the gas fees. This creates friction because you must constantly top up all your wallets in order for them to stay functional.

The Fee Sponsor enables you to sponsor gasless transactions for your wallets via the [Transfer API](/api-reference/wallets/transfer-asset). This allows you to manage a small set of fee sponsor wallets with native tokens and use them to pay gas fees for other wallets.

To sponsor a transfer,

* [Designate](/api-reference/fee-sponsors/create-fee-sponsor) a Dfns wallet as the fee sponsor. See below for supported networks.
* Fund the fee sponsor wallet with some native tokens.
* Specify the `feeSponsorId` when [creating a transfer request](/api-reference/wallets/transfer-asset). Note that the sponsor and sponsoree wallets must be for the same network.

<Tip>
  **High-volume tip:** If you're processing a high volume of transactions for a given wallet, use a single fee sponsor for that wallet. This allows Dfns to better optimize transaction scheduling and improve throughput.
</Tip>

## End user access

By default, only [service accounts](/guides/developers/service-account) and organization users (`CustomerEmployee`) can use a fee sponsor when creating transfers. If you want your end users (`EndUser`) to use a fee sponsor when making transfers from their delegated wallets, set `allowEndUser: true` when [creating the fee sponsor](/api-reference/fee-sponsors/create-fee-sponsor).

```typescript theme={null}
const feeSponsor = await dfns.feeSponsors.createFeeSponsor({
  body: {
    walletId: 'wa-...',
    allowEndUser: true, // Allow EndUsers to use this fee sponsor
  },
})
```

If you don't set `allowEndUser: true` and an EndUser tries to use the fee sponsor, they will receive a `401 Unauthorized` error.

<Note>
  The sponsoree wallet (the wallet being sponsored) must be an org-managed or delegated wallet in Dfns. External wallets cannot be sponsored.
</Note>

<Warning>
  **Policy consideration:** When using fee sponsorship, the fee sponsor wallet must sign a transaction to pay the gas fees. If the fee sponsor wallet has a [policy](/core-concepts/policies) that blocks or requires approval for signing (e.g., a `Block` action on `Wallets:Sign`), the sponsored transfer will fail. Ensure your fee sponsor wallet is not subject to any blocking policies.
</Warning>

## Supported networks

Not all networks support this feature. You can create fee sponsors for the following supported networks.

| Mainnets           | Testnets                                              |
| :----------------- | :---------------------------------------------------- |
| `ArbitrumOne` [^1] | `ArbitrumSepolia`                                     |
| `Base` [^1]        | `BaseSepolia`                                         |
| `Berachain` [^1]   | `BerachainBepolia`                                    |
| `Bsc` [^1]         | `BscTestnet`                                          |
| `Ethereum` [^1]    | `EthereumHolesky`, `EthereumHoodi`, `EthereumSepolia` |
| `FlowEvm` [^1]     | `FlowEvmTestnet`                                      |
| `Optimism` [^1]    | `OptimismSepolia`                                     |
| `Plasma` [^1]      | `PlasmaTestnet`                                       |
| `Polygon` [^1]     | `PolygonAmoy`                                         |
| `Solana`           | `SolanaDevnet`                                        |
| `Stellar`          | `StellarTestnet`                                      |

[^1]: The implementation leverages [EIP-7702](https://eips.ethereum.org/EIPS/eip-7702) that turns your EOA into a smart contract account. When you use this feature, the on chain account of the sponsoree wallet will become a smart contract. You can view the source code of the smart contract we use [here](https://github.com/dfns/dfns-smart-account).

<Note>
  Not all networks support fee sponsorship. For TRON, you can achieve a similar result using [native resource delegation](/networks/tron#fee-sponsorship).
</Note>

## Getting Started

<Youtube videoId="4k_Pm6JyA4g" />

***
