GasPass

ERC-3525 gas card enabling automatic cross-chain refueling via Avail XCS and Lit Vincent Agent

GasPass

Created At

ETHOnline 2025

Winner of

Avail

Avail - Best DeFi or Payments app with Avail Nexus SDK 4th place

Project Description

GasPass is a programmable ERC-3525 gas card that automates and streamlines cross-chain gas refueling through Lit Protocol’s Vincent Agent and Bungee. Users mint a GasPass by depositing USDC, which is locked in an ERC-3525 contract on Arbitrum. Each card defines a custom refuel policy — including target chain, refill amount, and trigger threshold. When a wallet’s gas balance drops below its threshold, the Vincent Agent securely calls autoRefill() on-chain, triggering a signed Bungee execution that converts stored USDC into native gas on the target chain. 

All on-chain interactions in GasPass — minting, setting policies, and refueling — are gasless for the user, authorized via EIP-712 typed-data signatures that delegate transaction execution to trusted agents.  Automated and delegated refuels are handled by the Vincent Agent, which performs contract calls using Lit PKP session signatures, ensuring secure, decentralized signing.  GasPass also supports manual top-ups: users can refill instantly via the Avail Nexus SDK, which bridges USDC into native gas for those who prefer direct, card-free refueling. 

By combining ERC-3525 tokenization, EIP-712 authorization, Lit’s delegated signing, and Bungee’s cross-chain liquidity routing, GasPass ensures wallets across chains always stay fueled — programmable, auditable, and fully gasless. 

How it's Made

GasPass was built as a modular cross-chain gas management protocol combining programmable ERC-3525 smart contracts, delegated execution via Lit Protocol’s Vincent Agent, and cross-chain refueling through Bungee and Avail Nexus SDK.

At its core, the GasPass.sol contract extends Solv Protocol’s ERC-3525 standard, representing each gas card as a semi-fungible token that locks user-deposited USDC. The contract defines on-chain logic for mintWithSig(), setRefuelPolicyWithSig() and so on, all authorized by EIP-712 typed-data signatures for user-side gasless interactions. The Vincent Agent (powered by Lit PKP session keys) executes these authorized actions on-chain — calling autoRefuel() or manualRefuel() when a monitored wallet’s gas balance drops below its threshold. Each refuel event triggers a Bungee Inbox request, which bridges the locked USDC into native gas on the destination chain.

The backend, built with Node.js (Express + Ethers.js), monitors wallet balances across supported chains, checks policy thresholds, and coordinates Vincent executions. The frontend, built in Vue 3 + Vuetify, allows users to mint GasPass cards, define refuel policies, and visualize cross-chain gas levels in real time. Partner integrations made this architecture possible:

Lit Protocol (Vincent) provides decentralized, PKP-based delegated signing for secure on-chain execution.

Bungee handles reliable cross-chain swapping and delivery of native gas.

Avail Nexus SDK enables direct, user-initiated refueling for those who prefer one-time gas top-ups instead of stored cards.

A particularly interesting technical challenge was handling Vincent’s own transaction broadcasting. Because the Vincent Agent itself requires native gas to submit transactions, we implemented a sponsored transaction layer using Alchemy’s Gas Manager to pay gas on its behalf. However, the official Vincent SDK only supported sponsorship for limited operations (like approve()), so we built a custom integration layer that extended the Vincent SDK — enabling sponsored execution of full contract interactions such as autoRefuel(). This solution made GasPass effectively gasless for end users, while keeping all automation logic decentralized and verifiable on-chain.

background image mobile

Join the mailing list

Get the latest news and updates