The x402 gas station for Hedera, built on SaucerSwap. An account holding tokens but zero HBAR swaps a slice into native HBAR — non-custodially, staying msg.sender, paying the fee over x402 in the same token because it's the only rail it can use.
network: sponsor … facilitator …

00Bridge an asset to Hedera → arrive stranded

The user pays gas on the origin chain; nothing is needed on Hedera to receive. Bridges deliver to your Hedera address, then you land with tokens and zero HBAR — because no bridge reliably drops HBAR on arrival. That's where Refuel402 comes in.

Bridges (Squid/Axelar, Stargate/LayerZero) run on Hedera mainnet (chainId 295). This bounty entry runs on testnet, so the button above simulates the arrival with a real testnet token transfer — clearly labeled.

01Stranded account inspector

Paste any Hedera account id or EVM address. Refuel402 detects the "I have tokens, no gas" state and which holdings it can fuel.

02Fuelable tokens (live SaucerSwap liquidity)

Whitelist generated from SaucerSwap analytics: direct WHBAR pool, liquidity + price-impact gated. Bridged assets that don't yet clear the bar are shown too.

loading…

03Connect a Hedera wallet and review a bundle

Uses Hedera's official open-source WalletConnect provider. Refuel402 never asks for a private key. The wallet signs only the zero-value, zero-gas-price EVM transactions shown below; x402 payment and sponsorship remain the explicit API/agent step.

not connected

04Run the local/API flow

Drives the real testnet loop through this server. Requires the demo user set up (scripts/setup-demo.ts) and a funded sponsor.

  1. Sign [approve, swap→unwrapWHBAR] locally (maxFeePerGas = 0)
  2. POST /v1/fuel → HTTP 402 with a USDC fee quote
  3. Pay the fee over x402 (facilitator is the fee payer)
  4. Sponsor submits via EthereumTransaction (payer=sponsor, from=user)
  5. Account now holds native HBAR — user HBAR spent: 0

05Architecture

agent (0 HBAR, holds USDC) Refuel402 sponsor Hedera testnet │ sign approve+swap (gas=0) ──────▶ policy + preflight + simulate │ ◀─────────── 402 + USDC quote ── bound to bundle hash │ pay fee via x402 ───────────────▶ facilitator settles (it pays the fee) │ retry w/ PAYMENT-SIGNATURE ─────▶ re-simulate, then EthereumTransaction ──▶ SaucerSwap V2 router │ ◀──── receipts + HashScan ────── (sponsor pays gas, user = msg.sender) ▼ native HBAR in hand — user HBAR spent: 0

x402 is load-bearing: it prepays the sponsor's real, irreversible gas cost, and the payer is exactly the entity that can't pay for gas any other way. /v1/policy · /v1/bridges

Personal project — not an official SaucerSwap product. Testnet execution is the default; mainnet source/read support remains execution-disabled unless explicitly configured. Bridged-asset fueling (Axelar / LayerZero / hashport) is gated on real SaucerSwap liquidity; most bridged tokens on Hedera do not yet clear the bar and are shown as such, honestly.