Fordefi supports fee sponsorship across multiple chains. With fee sponsorship, a designated fee payer vault covers the transaction fees on behalf of the origin vault that initiates the transaction.
This is useful when you want to abstract gas costs away from your users or consolidate fee payments into a single Fordefi vault.
Fordefi supports sponsorship on the following chains:
| Chain | Additional setup |
|---|---|
| EVM* | Origin vault must first be upgraded to an EIP-7702 smart account |
| Solana | No setup required |
| Aptos | No setup required |
| Sui | No setup required |
*EVM fee sponsorship is currently supported on: Ethereum, Arbitrum Sepolia, Avalanche, Base, Blast, BNB Chain, Flare, Gnosis Chain, Linea, Ink, Plasma, Polygon, Scroll, Sei V2, Sonic, Unichain and ZetaChain.
All sponsored transactions follow the same pattern across supported chains:
- Build a transaction request that includes a
fee_payerfield pointing to the fee payer vault. This field is added inside thedetailsobject of the transaction request body. - Sign the request payload with your API User's private key.
- Broadcast the transaction using the Fordefi API.
The fee_payer field is the key difference from a standard transfer:
"fee_payer": {
"type": "vault",
"vault_id": "<FEE_PAYER_VAULT_ID>"
}Examples have been provided for each of the supported chain types:
There are four steps to take:
Set up an API User and an API signer by following the Fordefi API Signer documentation.
You need two Fordefi vaults on the target chain:
- Origin vault: The vault initiating the transaction
- Fee payer vault: The vault that holds the gas token (ETH, SOL, APT or SUI) and that will pay transaction fees on behalf of the origin vault
Enable fee sponsorship in your organization settings through the Fordefi web console. Fee sponsorship is always enabled via the Fordefi workspace settings, this requires admin access.
For EVM chains only, the origin vault must be upgraded to an EIP-7702 smart account before it can use fee sponsorship. The fee payer vault does not require any upgrade. See the this code example for details on how to upgrade an EVM vault programmatically.