Robinback

Docs

How Robinback works

Production guide for launching and trading stock-backed tokens on Robinhood Chain — mechanisms, fees, graduation, and the contracts that run it.

What “graduated” means

When a curve’s backing value hits $6,000, liquidity leaves the bonding curve and seeds a Uniswap V4 pool — permanently locked.

Threshold

$6,000

Backing USD on the curve

LP fee

0%

Fees via StockBackHook

Liquidity

Locked

No removeLiquidity path

How the threshold is measured

Backing value is the USD value of stock tokens sitting in the curve, using the market’s price oracle (Chainlink stock/USD feed). Progress on Explore and the token page is that value divided by $6,000.

Buys can trigger graduation

A buy that pushes backing over the threshold runs graduation in the same transaction. If that graduation step fails, the whole buy reverts — sells still work while the market is below threshold or already graduated.

On-chain graduation

Public graduate()BondingCurve.sol
function graduate() external nonReentrant {
    if (graduated) revert GraduatedAlready();
    require(
        getBackingValueUsd() >= graduationThresholdUsd8,
        "BELOW_THRESHOLD"
    );
    _graduate();
}

Internally the curve seeds the V4 pool at the final curve spot when inventory allows: it deposits all backing stock and only enough meme tokens to match that price. Leftover unsold sale tokens (and any unused LP slice) go to a dead address instead of dumping into the pool — so expensive tickers no longer open at a discount to the curve mark.

Price-continuous V4 seedBondingCurve.sol
// vs = VIRTUAL_STOCK + realStock; vt = VIRTUAL_TOKEN + unsold
// ideal = realStock * vt / (vs * leverage)
tokensForPool = min(onCurveBalance, ideal);
// excess → DEAD; stock + tokensForPool → V4Graduator.graduate(...)
// realStockReserve = 0; graduated = true;

Deploy note

Continuity seeding lives in BondingCurve bytecode. Existing live curves keep the old dump-all seed until relaunched under a factory that deploys the updated curve. Threshold stays $6k; virtual reserves unchanged in this upgrade.

Locked Uniswap V4 liquidity

Graduator designV4Graduator.sol
/// @title V4Graduator
/// @notice Initializes a Uniswap V4 pool and seeds permanently
///         locked full-range liquidity.
/// @dev Liquidity position is owned by this contract; there is
///      no removeLiquidity path.

/// @notice LP fee = 0; protocol+creator fees are taken by StockBackHook.
uint24 public constant POOL_FEE = 0;
int24 public constant TICK_SPACING = 60;

After graduation, trading continues on that pool. The StockBack hook skims protocol, creator, and holder-tax fees in stock so economics stay aligned with the curve phase.

V4Graduator

0x71E59B…7B21D4

Initializes pool + locks LP

StockBackHook

0x347F2D…c3A0CC

Post-grad fee enforcement

PoolManager

0x8366a3…e40951

Uniswap V4 singleton on RH

Universal Router

0x53BF6B…5A6F77

Used by the app for V4 swaps