Sponsored Transfer

Utila allows users to offload gas costs to any Utila wallet, eliminating friction and optimizing operational efficiency. This feature supports all ERC-20 and TRC-20 tokens. Below is a guide on how to implement this capability using the Utila API.

How Sponsored Transfers Work

Utila enables gas delegation by assigning dedicated wallets—often referred to as Gas Wallets—to cover transaction costs on behalf of Deposit Wallets (the source wallets).

For standard ERC-20 and TRC-20 tokens, Deposit Wallets must complete a one-time approval transaction, authorizing a Gas Wallet (which is also a Utila wallet) to move specific tokens. This setup requires an initial gas injection, but after that, the Deposit Wallet no longer needs additional gas. To streamline this, you can either send an initial amount for gas, right after wallet creation or use Utila’s batch transfer feature to fund multiple Deposit Wallets in a single transaction (via assetBatchTransfer in initiateTransaction).

Step 1 - One-time token approval for the Sponsor (Gas Wallet):

Step 2 - Performing a transfer:

Sponsor Wallet (gas wallet) - Will pay for the gas of the ERC-20 transfers, after the approval step.

Source Wallet - Performs the approval. After the approval, this wallet won't need to pay for gas.

Destination Wallet - Any address that will receive transfers.

Transaction Policy Enforcement

Sponsored transfers are safeguarded by Utila’s Transaction Policy framework. The EVM Token Approval policy rule allows users to whitelist specific Gas Wallets while restricting all other interactions. Importantly, the policy is enforced at the Deposit Wallet level, not the Gas Wallet, ensuring all transfers comply with organizational security rules. Make sure you set a rule to allow EVM APPROVAL in the Transaction Policy at Vault Settings.

API Usage Examples