ALTTerminal
← Back to trenches

How ALTTerminal works

A short read so you know exactly what you're looking at and where every number comes from.

Fees and trust

ALTTerminal fees
Zero. We don't add anything on top of alt.fun's existing router fees. There's no referrer kickback either — the referrer slot in every buy call is the zero address.
alt.fun fees
Set on-chain by the alt.fun router. Currently ~0.75% on buys and ~0.75% on sells, plus the LT issuer's spread for mint/redeem. These go to alt.fun and the LT issuer, not to us.
Custody
Non-custodial. Every transaction is signed by your wallet and broadcast directly to HyperEVM. We never hold, route, or queue your funds. There is no off-chain order book.
Approvals
Buys require a one-time USDC approval to the alt.fun router; sells require a one-time approval of the token you're selling. You can revoke these at any time from any allowance manager.
What we read
Only public on-chain data and alt.fun's public GraphQL indexer. No wallet tracking, no analytics, no cookies beyond what your wallet connector needs.
What we run
A static Next.js frontend + one cache endpoint (Turso) for LT contract metadata so we don't re-multicall the chain on every page load. The cache holds public ERC-20 names — nothing user-specific.
Code
Open in the repo linked at the bottom of this page. Read it before trusting it.

What you are trading

An alt.fun token is two positions packaged in a single ERC-20:

  • A launchpad token priced by a constant-product bonding curve, like a pump.fun coin.
  • A non-liquidating leveraged perp position on a Hyperliquid market (BTC, ETH, SP500, NVDA, oil, etc.) — that's the LT (leveraged token) sitting as the curve's reserve asset.

Two things move the price: someone trading the bonding curve, and the underlying perp moving. The token re-prices continuously even when no one is trading it.

The three states

Trading
The token is on its bonding curve. Buys and sells are routed through the launchpad and priced via x·y=k against an LT reserve. Most tokens you see live here.
Graduating
The graduation condition has been met (USD-value threshold OR full token reserve drained) and migration to the AMM is queued. Buys revert with TokenIsGraduating() during this short window; sells still go through.
Graduated
Liquidity has been migrated to a Uniswap-V2-style AMM. The bonding curve is gone. Same buy/sell entry point on the launchpad router — it just routes to the AMM instead.

How the terminal reads data

ALTTerminal is a thin client. There is no proprietary backend doing magic — every number is derived from one of these sources:

indexing.alt.fun
alt.fun's public Ponder GraphQL indexer. Lists tokens, volumes, organic USDC raised, graduation flags. We read this every 8s for the trenches view.
HyperEVM (chain ID 999) via Alchemy
Direct eth_call / multicall for live state — bonding-curve state machine, reserves, quotes. Quotes are eth_call simulations of router.buy / router.sell.
LT contracts
Each leveraged token's name() and symbol() are parsed to derive the underlying perp (e.g. 'xyz:SP500 5x Long' → SP500, 5x, Long).
Turso (libsql)
Server-side cache. Once an LT's metadata has been read from chain we persist it so subsequent page loads skip the multicall. Writes are write-through, fire-and-forget.

How trades work

Every alt.fun token uses the same router contract regardless of state. The browser builds the calldata, ConnectKit prompts your wallet, your wallet sends the transaction.

  • Buy: approve USDC →router.buy(token, usdcAmount, minTokensOut, referrer). Same call pre- and post-graduation; the router handles routing.
  • Sell: approve token →router.sell(token, tokenAmount, minUsdcOut). A permit-based variant exists too but the MVP uses the approve-then-sell flow for transparency.
  • Quotes are eth_call simulations of the same functions, so the number you see is exactly what you'll get if no one front-runs.

Risks worth knowing

Volatility decay
The LT is non-liquidating because it rebalances. In choppy markets the underlying can round-trip while the LT still bleeds. Your token's curve loses USD value when this happens.
Bidirectional progress
Graduation isn't a one-way ratchet. A token at 80% can fall back to 60% on a bad day for the underlying.
Redemption capacity
LT redemptions are atomic and capped by the LT's idle USDC buffer. Under mass-sell pressure sells can revert until the LT replenishes.
Infra dependencies
Everything routes through Hyperliquid (matching), BounceTech (LT mint/redeem), Alchemy (RPC), and alt.fun's indexer. A failure in any one disrupts trading or display.

Reading a row in the table

  • Altcoin: symbol, name, creator address. Click to open the trade view.
  • Underlying: the Hyperliquid perp backing the LT, with leverage and direction. Long underlyings appear green, shorts red.
  • Volume: cumulative USDC volume since launch (from the indexer).
  • Progress: organic USDC raised vs. the graduation threshold. Coarse — the real threshold is denominated in USD-value-of-LT-balance which moves with the perp.
  • MCap: implied market cap from organic USDC raised ÷ tokens sold from the curve, scaled to the fixed 1B supply. Approximate.
  • Age: time since the TokenLaunched event.

Source of truth

The launchpad router is 0x693F12E9E6B35b34458793546065E8b08e0299d6 on HyperEVM. The bonding contract is 0xb68811BcC0e4FcD825aA49F9453b065ddF752FcB. Both are upgradeable proxies. The whitepaper alt.fun describes the curve math and graduation logic in full.

Open source

The backend that powers this terminal — RPC proxy, indexer cache, and Turso schema — is published under MIT at github.com/BlobsArp/AltTerminal-Backend. Fork it, self-host, or read it to verify exactly what data we touch.

Every endpoint is documented on the backend's landing page and the README. There is no off-chain logic that affects your trades — the backend is purely a cache layer in front of public data sources.

ALTTerminal is an independent UI. Not affiliated with alt.fun, Hyperliquid, or BounceTech. No warranty — read the code and verify on-chain before trading anything.