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

# Cover Transaction Fees for Your Users

> Sponsor gas fees so users can transact without holding native tokens

Gas sponsorship lets you cover the transaction fees (gas) for your users' blockchain interactions. By removing the need for users to hold native tokens for gas, you can reduce friction and improve conversion rates for both human users and AI agents interacting with your application.

For Solana smart wallets, gas sponsorship is **enabled** by default in staging so you can test without holding tokens. For new production projects, it is **disabled** by default; transactions are paid by the executing wallet unless you enable project-sponsored fees. To enable project-sponsored fees in production, <a href="https://www.crossmint.com/contact/sales" target="_blank">contact Crossmint sales</a>.

<Note>This Console fee-payer setting applies only to Solana smart wallets.</Note>

Crossmint handles:

* Sponsoring the transaction fees on your behalf
* Maintaining a treasury to cover the gas costs
* Securely verifying and rate-limiting each transaction to prevent abuse
* Protecting against common attack vectors when sponsoring gas on chains like Solana
* Calculating optimal fees to ensure transactions land without overpaying

## Prerequisites

* A Crossmint project with wallets enabled
* Access to the <a href="https://www.crossmint.com/console" target="_blank">Crossmint Console</a>

## Change the Fee Payer

You can change the fee payer for Solana smart wallets in the Console.

<Steps>
  <Step title="Navigate to Wallets Settings">
    Open the <a href="https://www.crossmint.com/console" target="_blank">Crossmint Console</a> and go to **Wallets → Settings**.
  </Step>

  <Step title="Choose the Fee Payer">
    Select who pays transaction fees:

    * **You** — project-sponsored fees. Crossmint covers the gas with your project's credits and bills your project, so your users never have gas friction.
          <Snippet file="enterprise-feature.mdx" />
    * **Executing Wallet** — the wallet that performs the transaction pays the gas

    <Frame type="simple">
      <img src="https://mintcdn.com/crossmint/cTwj9ZgX-DwCO6kx/images/wallets/gas-sponsorship.jpg?fit=max&auto=format&n=cTwj9ZgX-DwCO6kx&q=85&s=35f30b239c48c9aaeeba0dd83979e683" alt="Gas Sponsorship Settings" width="1901" height="927" data-path="images/wallets/gas-sponsorship.jpg" />
    </Frame>
  </Step>
</Steps>

<Note>
  When the **Executing Wallet** is selected as the fee payer for Solana, you can choose whether it pays gas in SOL or USDC.

  <Frame type="simple">
    <img src="https://mintcdn.com/crossmint/cTwj9ZgX-DwCO6kx/images/wallets/gas-sponsorship-solana.jpg?fit=max&auto=format&n=cTwj9ZgX-DwCO6kx&q=85&s=9d70e431735ef3c8f111d40ca96f1114" alt="Solana Payment Currency Options" width="2750" height="732" data-path="images/wallets/gas-sponsorship-solana.jpg" />
  </Frame>
</Note>

## Set Spending Limits

<Note>
  Configuring per-user spending limits for gas sponsorship is available under private access. <a href="https://www.crossmint.com/contact/sales" target="_blank">Contact Crossmint</a> to enable this feature for your project.
</Note>

## Monitor Sponsored Transactions

You can track gas sponsorship usage and costs through the Crossmint Console and webhooks.

### View usage in the Console

The Crossmint Console provides an overview of your gas sponsorship usage, including total gas sponsored, number of transactions, and costs over time. Navigate to **Wallets → Settings** to view your current usage statistics.

### Track transactions with webhooks

For real-time monitoring, set up webhooks to receive notifications when transactions are sponsored. The `wallets.transfer.out` event includes information about the transaction and its gas costs.

```typescript theme={null}
// Partial type showing fields used in this example.
// See /wallets/guides/webhooks for the full schema.
type TransferWebhookEvent = {
    type: string;
    data: {
        status: string;
        recipient: { address: string };
        token: { amount: string; symbol: string };
        onChain: { explorerLink: string };
    };
};

async function processTransferEvent(
    event: TransferWebhookEvent
) {
    const { type, data } = event;

    if (
        type === "wallets.transfer.out" &&
        data.status === "succeeded"
    ) {
        console.log("Sponsored transaction completed:");
        console.log(`  To: ${data.recipient.address}`);
        console.log(`  Amount: ${data.token.amount} ${data.token.symbol}`);
        console.log(`  Explorer: ${data.onChain.explorerLink}`);
    }
}
```

For complete webhook setup instructions, see the [Transfer Webhooks Setup](/wallets/guides/webhooks) guide.

## Best Practices

* **Review the default fee payer before launch**: For Solana smart wallets, new production projects start with user-paid fees. Make sure the selected mode matches your user experience and budget.
* **Monitor usage regularly**: Keep track of your gas sponsorship costs to ensure they align with your budget
* **Set appropriate limits**: Once spending limits are enabled for your project, configure them based on your expected user behavior to prevent abuse
* **Use webhooks for real-time tracking**: Set up webhooks to monitor sponsored transactions and detect any unusual patterns

## Learn More

<CardGroup cols={2}>
  <Card title="Transfer Webhooks Setup" icon="bell" href="/wallets/guides/webhooks">
    Set up real-time notifications for wallet transfers
  </Card>

  <Card title="Transfer Tokens" icon="paper-plane" href="/wallets/guides/transfer-tokens">
    Learn how to send tokens between wallets
  </Card>

  <Card title="Check Balances" icon="wallet" href="/wallets/guides/check-balances">
    Query token balances across your wallets
  </Card>

  <Card title="Webhooks Overview" icon="webhook" href="/introduction/platform/webhooks/overview">
    Learn about Crossmint webhooks
  </Card>
</CardGroup>
