Documentation

Trading and routing

Every trade goes through the LaunchRouter. You pay in ETH, USDC, or the pair coin you already hold, and the router crosses whatever pools sit between your asset and the market and settles in one transaction. It holds nothing between calls: any leftover ETH, USDC, pair coin or market token is flushed back to you before the call ends.

How a buy travels

  1. ETH → USDC. The router wraps ETH and swaps it in the Uniswap V3 WETH/USDC 0.05% pool on Base.
  2. USDC → pair coin. For a synthetic pair, the router buys from that coin's peg pool ask, one tick spacing above the feed. For DIEM or a stock, it swaps through the AerodromeAdapter.
  3. Pair coin → token. The router swaps the coin for the market token in the v4 pool inside its own unlockCallback, and sends the tokens to you.

A sale takes the same path in reverse. Starting from USDC skips the first hop; starting from the pair coin skips the first two.

Function Path
buyWithEth ETH → USDC → coin → token
buyWithUsd USDC → coin → token
buyWithCoin coin → token
sellForEth token → coin → USDC → ETH
sellForUsd token → coin → USDC
sellForCoin token → coin
sellForDiem token → coin → DIEM
launchWithEth, launchWithUsd launch plus the first buy, same routes
swapUsdForCoin, swapCoinForUsd, swapCoinForEth coin legs on their own, used by the coins page and by the Treasury's sweeps
swapCoinForAsset coin → USDC, DIEM or an allow-listed stock, used by the Distributor for converted claims

The coin leg, by pair kind

This is the hop that differs, and it is worth knowing which way your trade went.

Synthetic pairs. A buy takes coin from the peg pool's ask. A sell asks the vault first: if quoteRedeem returns a non-zero amount — fresh feeds, caps not hit, inventory present — the router calls redeemFor with the caps keyed to your wallet, and you are paid at the index with your coin burned. If the vault cannot pay for any reason, the router falls through to the peg pool's bid, one tick spacing below the feed. Selling at the index is the better of the two, and it is the default path.

DIEM and stock pairs. Both directions go through the AerodromeAdapter on its owner-set routes. DIEM is USDC → WETH → VVV → DIEM and back, three Aerodrome v2 pools sent to the Aerodrome Router as one call (the USDC/VVV v2 pool is nearly empty; VVV's depth is against WETH). Each stock is USDC ↔ stock on its Aerodrome Slipstream concentrated pool, which the adapter swaps directly with the Uniswap V3-style callback, trusting no router. No peg pool is involved, because these assets have their own markets.

Selling into DIEM. sellForDiem sells the market token for its pair coin and then turns that into DIEM. For a synthetic pair it uses the vault's DIEM inventory when the inventory can pay; otherwise it goes coin → USDC → Aerodrome → DIEM. On a DIEM-paired market, the coin already is DIEM and the last hop is a transfer. Every market whose pair coin is redeemable shows a "Sell for DIEM" action on its page.

Quotes

The site calls quoteBuy and quoteSell before every trade, and quoteCoinForAsset before a conversion. A quote walks the exact route the trade will take and returns the exact amount out. Quotes are not view functions: the V3 and v4 legs are simulated by executing a swap and reverting with the result, then catching it, so a quote runs as a transaction simulation. The vault leg is quoted with quoteRedeem, a v2 Aerodrome leg with the router's getAmountsOut, and a Slipstream leg by the same simulate-and-revert pattern on the pool itself, so a quote always equals the execution in the same block.

The site subtracts 1% from the quote and passes the result as the minimum out. If the pools move between your quote and your transaction enough that you would receive less than that floor, the call reverts with Slippage and you keep what you had. The 1% is a floor rather than a fee; in a quiet market you receive the quoted amount.

Approvals

Asset Approval
ETH none
USDC once per router
Pair coin once per router, per coin
Market token once per router, per token, to sell

When a trade cannot execute

  • The pair coin's feed is stale or inactive. Launches revert, and a synthetic sell falls through to the peg bid instead of the index. For an inference coin, stale means no publish in six hours; for a stock, no Chainlink round in 26.
  • The DIEM feed is stale: an Aerodrome pool in the DIEM → VVV → WETH chain has no observations, or Chainlink ETH/USD is older than two hours. DIEM payouts halt; USDC keeps working.
  • The vault's daily or per-wallet redemption cap for that coin is used up for the day: 20% of the coin's seed amount for everyone, 5% per wallet, per rolling UTC day. quoteRedeem returns 0 and the sell routes to the peg bid, one tick spacing below the feed, instead of the index. The same fallback applies to a claim converted to USDC or DIEM.
  • The vault's DIEM inventory for that coin cannot cover the amount. sellForDiem falls back to buying DIEM on Aerodrome, and a direct DIEM redemption reverts with InsufficientDiem.
  • A B20 stock is paused, or your wallet is blocked by its policy. You cannot receive that stock, though you can still trade the market token; a payout owed to you is held instead. See AI stocks.