FUEL

DOCSFlight manual

How the tank works.

Every trade fills the tank with SPCX. Burn $FUEL to take it. Here is the whole machine: where the fees come from, how the price falls, what gets burned and who can change what.

Contents
  1. 01Overview
  2. 02The tank
  3. 03Ignition
  4. 04The burn
  5. 05Safety & renounce
  6. 06Contracts & parameters
  7. 07Risks
  8. 08FAQ

01Overview

$FUEL is a token launched on the pons launchpad on Robinhood Chain, paired with SPCX, a Robinhood Chain stock token. Every trade of $FUEL pays a 4% creator tax in SPCX, and that tax flows into an onchain contract called the Tank.

The Tank sells everything it holds in a continuous Dutch auction priced in $FUEL. Whoever pays the price ignites the tank: their $FUEL is burned and they receive the whole tank in SPCX. The price then resets and the tank starts filling again.

  • Every trade fills the tank.
  • The price per SPCX halves every 5 minutes, falling second by second.
  • Every ignition burns $FUEL forever and pays out the whole tank.

Holders who want out tend to use the tank instead of selling into the pool, so exits shrink the supply rather than the chart. Nobody sells. Everybody burns.

02The tank

Fees reach the tank in a few hops:

  1. Trade on pons
  2. 5% creator tax in SPCX
  3. pons curve / pool
  4. pons fee escrow
  5. Tank

pons keeps the creator tax on the bonding curve (or in the pool hook after graduation) until it is swept into its fee escrow, and the recipient then claims it from there. The Tank does both steps automatically at the start of every ignition, and anyone can call claimFees() at any time to sweep and claim without igniting.

ViewMeaning
reserveToken.balanceOf(tank)SPCX already held by the contract.
pendingFees()SPCX credited in the pons escrow, not yet claimed.
unsweptFees()Creator tax still sitting on the bonding curve.
tankBalance()held + pending + unswept: what the next ignition is expected to pay out.

Sweeping and claiming are best effort. If pons refuses a sweep, the ignition still goes through and pays out whatever the tank holds at that moment.

03Ignition

The auction is priced per SPCX. Each epoch starts with a unit price, initUnitPrice ($FUEL per 1 SPCX), which then decays. The price to take the whole tank is the unit price times the tank, with a minimum burn:

// unit price, in $FUEL per SPCX
elapsed = now − startTime
k       = elapsed / halfLife              // whole half-lives passed
u       = initUnitPrice >> k              // halve k times
u       = u − u · (elapsed mod halfLife) / (2 · halfLife)
if k ≥ 128: u = 0

// total $FUEL to take the tank
price   = max(ceil(u · tank / 1e18), floorPrice)

Between two halvings the unit price slides linearly from u to u/2, so it is continuous and drops every second. With a 5-minute half-life:

Time in epoch0:002:305:0010:0015:0030:00
Price per SPCX100%75%50%25%12.5%1.6%

Minimum burn

Every ignition burns at least floorPrice $FUEL (100,000 at launch), however small the tank is.

Reset

After an ignition, the next epoch starts with the price per SPCX at 2× what was just paid per SPCX (priceMultiplier), and starts falling again. Pausing freezes the price; unpausing or changing parameters restarts the auction from the current price instead of jumping.

Calling ignite

ignite(expectedEpochId, maxFuelIn, minReserveOut, recipient, deadline)

  • expectedEpochId pins the auction you are bidding on. If someone ignites first the epoch changes and your transaction reverts with EpochMismatch instead of paying the reset price.
  • maxFuelIn is the most $FUEL you accept to burn. The price scales with the tank and fees can land between your quote and inclusion, so the site sends the quote + 5% (capped at your balance). You pay the actual price, never more than this.
  • minReserveOut is the least SPCX you accept. The site uses the SPCX the tank already holds.
  • recipient receives the SPCX. The site uses your connected address.
  • deadline is a unix time after which the call reverts. The site uses now + 5 minutes.

Before igniting, you approve the tank to spend your $FUEL. The site asks for exactly maxFuelIn, not an unlimited allowance.

04The burn

The $FUEL paid in an ignition is sent to 0x000000000000000000000000000000000000dEaD, an address nobody holds a key for. It is gone for good. $FUEL sent to the tank by mistake is burned with the next ignition too.

The contract counts every burn in totalFuelBurned() and every payout in totalReserveOut(). The site shows the burn as a share of the 1,000,000,000 $FUEL supply.

05Launch-phase safety & renounce plan

FuelTank is an upgradeable (UUPS) proxy with an owner during the launch phase, so mistakes can be fixed before they become permanent. Until ownership is renounced, the owner can:

  • pause and unpause ignitions;
  • change the half-life (30 s to 1 day), the reset multiplier (1.1× to 4×) and the minimum burn (up to 10,000,000 $FUEL);
  • set the $FUEL token and restart the auction. The contract only accepts a genuine pons launch paired with SPCX whose creator fees go to the tank;
  • withdraw the tank, or rescue tokens sent by mistake;
  • redirect future creator fees elsewhere;
  • upgrade the contract.

The plan: once the first ignitions work on mainnet, the owner calls renounceOwnership(). It is permanent. No upgrades, no withdrawals, no parameter changes, no pausing. Only ignitions and claimFees() remain.

The contract only allows renouncing while the auction is live, unpaused and the tank is still the creator-fee recipient, so it can never be frozen in a broken state. Check it yourself: after renouncing, owner() returns the zero address and renounced() returns true. The Contracts section of the site shows the live status.

06Contracts & parameters

ContractAddress
FuelTank (proxy)Deploying…
$FUELRead from the tank once set
SPCX
SPCX / USD (Chainlink)
Burn address0x000000000000000000000000000000000000dEaD
ParameterAt launch
ChainRobinhood Chain (chain id 4663)
Pair / reserveSPCX
Creator tax4% of every trade, in SPCX (set on pons)
Half-life300 s (5 minutes)
Reset multiplier2× the price per SPCX just paid
Minimum burn (floorPrice)100,000 $FUEL per ignition
$FUEL supply1,000,000,000

The live values are read from the contract on the tank page. USD figures are estimates: SPCX from the Chainlink feed, $FUEL from DexScreener.

07Risks

  • Smart-contract risk. The code is public and verifiable, but bugs are always possible.
  • Owner risk during the launch phase. Until ownership is renounced, the owner can pause, withdraw the tank, redirect fees and upgrade the contract.
  • pons fee recipient. The launchpad can move a token's creator-fee recipient through a public, 3-day timelocked community-takeover process. If that happens, new fees stop flowing to the tank.
  • SPCX is issuer-controlled. It is a Robinhood Chain stock token; its issuer can restrict or change it. Stock tokens are not available to US persons.
  • Sequencer clock. The price decay follows block timestamps set by the Robinhood Chain sequencer.
  • Competition. Everyone sees the same price. If someone ignites first, your transaction reverts: nothing is burned, but you pay gas.
  • Market risk. $FUEL and SPCX can lose value quickly. USD figures on the site are estimates.

Crypto and tokenized assets are high risk; you can lose everything. Nothing here is financial advice.

08FAQ

Why is the discount small?

Because anyone can take the tank the moment it becomes a good deal. Competition lets the price fall only until burning barely beats buying SPCX on the market, then someone ignites. A small discount means the auction is working.

What if nobody ignites?

The price per SPCX keeps halving every 5 minutes while the tank keeps filling with every trade. Sooner or later taking it costs only the minimum burn, and the tank becomes an easy win for whoever moves first.

Is the contract upgradeable?

During the launch phase only. It is a UUPS proxy so bugs can be fixed early. Once ownership is renounced, the code is frozen forever.

Can the team withdraw the tank?

During the launch phase the owner has an emergency withdraw. After renounce nobody can: the only way SPCX leaves the tank is an ignition.

Do I need SPCX to ignite?

No. You need $FUEL for the price and a little ETH on Robinhood Chain for gas. You receive the SPCX.

What if my transaction loses the race?

It reverts with EpochMismatch ("someone ignited first"). Nothing is burned; you only pay gas. Refresh and look at the new price.