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

# Solana Gasless

> Send SPL tokens from vault accounts with no SOL by setting a fee payer vault account. Covers setup, the key set requirement, useGasless, and feePayerInfo.

## Overview

New to Solana Gasless? See [Configuring Solana Gasless transactions](https://support.fireblocks.io/hc/en-us/articles/20170988182300) in the Help Center for the Console walkthrough, then use this guide for the API behavior.

Solana Gasless lets a vault account send SPL tokens without holding SOL. It uses Solana's native fee payer: one vault account in your workspace is set as the *fee payer* and pays the SOL fee for every gasless transaction. Each transaction is signed by two vault accounts, the source (token owner) and the fee payer. It does not cover SOL transfers.

For how gasless compares across chains, see the [Gasless Transactions Overview](/docs/gasless-transactions).

## Requirements

* **A fee payer vault account** in your workspace, holding enough SOL to pay fees. The fee payer must be in the same workspace. External workspaces, the Fireblocks relay, and Wallet Pools are not available as the fee payer on Solana.
* **Same key set.** The source vault account must share a key set with the fee payer vault account.

## Step 1. Set the fee payer in the Console

Go to **Settings** > **Initiate gasless transactions**, turn on **Solana**, select the fee payer vault account, then select **Save**.

Solana has no default-mode setting. Once a fee payer is set, eligible SPL transfers from other vault accounts use it automatically.

## Step 2. Send a transaction

Submit a standard SPL token transfer with [Create a new transaction](/reference/createtransaction). You need no extra fields.

`POST /v1/transactions`

```jsonc theme={"system"}
{
  "assetId": "SOL_USDC_PTHX",
  "amount": "250",
  "source": {
    "type": "VAULT_ACCOUNT",
    "id": "42"
  },
  "destination": {
    "type": "ONE_TIME_ADDRESS",
    "oneTimeAddress": {
      "address": "7xKX..."
    }
  },
  "useGasless": false // Optional - Set false to pay the fee from the source vault account instead
}
```

**Field notes:**

* `useGasless`: omit it to use the fee payer. Set `false` to have the source vault account pay its own fee.
* `source`: the vault account needs the token balance only. When the source is the fee payer itself, the transaction is sent as a standard transaction.
* `assetId`: an SPL token. SOL transfers are not covered.

## Step 3. Confirm the fee payer paid

[Get a transaction](/api-reference/transactions/get-a-specific-transaction-by-fireblocks-transaction-id) or read the [transaction webhook](/reference/monitoring-transaction-status). The fee payer is reported in `feePayerInfo`.

```json theme={"system"}
{
  "id": "9d3a...",
  "status": "COMPLETED",
  "assetId": "SOL_USDC_PTHX",
  "feePayerInfo": {
    "feePayerAccountId": "3"
  }
}
```

| Field                            | Description                          |
| -------------------------------- | ------------------------------------ |
| `feePayerInfo.feePayerAccountId` | The vault account that paid the fee. |

## Troubleshooting

| Symptom                                           | Cause                                             | Fix                                        |
| ------------------------------------------------- | ------------------------------------------------- | ------------------------------------------ |
| Error `1448` "Fee payer is not allowed for asset" | The asset does not support a fee payer            | Check that the asset is an SPL token.      |
| Error `1449` "Fee payer can't pay"                | The fee payer has no SOL wallet or not enough SOL | Fund the fee payer vault account with SOL. |

See [API error codes](/reference/api-error-codes) for the full list.

## Related

* [Gasless Transactions Overview](/docs/gasless-transactions): compare gasless mechanisms across chains.
* [EVM Gasless (Universal Gasless)](/docs/evm-gasless): gasless transactions on EVM chains.
* [Monitoring transaction statuses](/reference/monitoring-transaction-status): track transactions through webhooks.
