Docs homeGetting startedBuying and sellingLaunching a tokenThe curve, in depthDevelopersSecurity
Reference

Developers

Everything is open source and verified on chain. Quotes, trades and launches are plain contract calls; no API of ours sits between you and the curve.

Deployed addresses

WhatWhere
Solana programDQf1BBhRNnhthJUmsCT6Rt2whodZyNLbsqKQ3kHYUU6N
Robinhood Chain factory0x1e0c03D084Cd93D8DbBb796f6970a7CCc82babcd
Robinhood Chainchain id 4663, gas token ETH
Public RPChttps://rpc.mainnet.chain.robinhood.com
Explorerrobinhoodchain.blockscout.com
The factory address is deterministic: it was deployed through the standard CREATE2 proxy 0x4e59b44847b379578588920cA78FbF26c0B4956C, so anyone can re-derive it from the published salt and init code in the repo and confirm the deployment is exactly the audited source.

EVM factory interface

function launch(string name, string symbol, uint256 startPriceFp,
                uint16 minBackingBps, uint256 minOut)
    external payable returns (address token)
// msg.value executes the creator's first buy atomically with the deploy
// startPriceFp: wei per whole token * 1e9 (platform standard: 1e26 = 0.1 ETH)
// minBackingBps: 8250..9900 (25% .. 9.8% max loss)

function allTokens(uint256 i) external view returns (address)
function tokenCount() external view returns (uint256)

EVM token interface

Every launched token is a standard ERC-20 (18 decimals) plus the curve:

function buy(uint256 minOut) external payable returns (uint256 out)
function sell(uint256 units, uint256 minOut) external returns (uint256 paid)

function quoteBuy(uint256 amountIn) external view returns (uint256)   // exact
function quoteSell(uint256 units) external view returns (uint256)     // exact

function backing() external view returns (uint256)   // vault, wei
function navFp() external view returns (uint256)     // floor per token * 1e9 * 1e18
function priceFp() external view returns (uint256)   // price per token * 1e9 * 1e18
function minBackingBps() external view returns (uint16)

event Buy(address indexed buyer, uint256 amountIn, uint256 tokensOut, uint256 priceFp)
event Sell(address indexed seller, uint256 tokensIn, uint256 weiOut, uint256 floorKept)

Fees are fixed platform-wide (buy: 1% platform, 2% vault; sell: 1% creator, 5% vault). The quote views apply them, so integrate against quoteBuy/quoteSell and pass a minOut with your slippage.

Try it from a terminal

RPC=https://rpc.mainnet.chain.robinhood.com
FACTORY=0x1e0c03D084Cd93D8DbBb796f6970a7CCc82babcd

# list tokens
cast call $FACTORY "tokenCount()(uint256)" --rpc-url $RPC
cast call $FACTORY "allTokens(uint256)(address)" 0 --rpc-url $RPC

# quote then buy 0.1 ETH of a token
cast call  $TOKEN "quoteBuy(uint256)(uint256)" 100000000000000000 --rpc-url $RPC
cast send  $TOKEN "buy(uint256)" <minOut> --value 0.1ether \
  --rpc-url $RPC --private-key $KEY

Donating to a floor

A plain ETH transfer to any token address is a donation: it raises the vault without minting, lifting the floor for every holder. On Solana, transferring SOL to the token’s curve account does the same.

Hard limits baked into the code

  • Backing 82.5% minimum and 99% maximum on every launch; nothing outside that range can exist.
  • Creator fees are capped at 5% per side and set by the factory, not the launcher.
  • Vault funds can only leave through sell(). There is no other flow out, for anyone.
  • All parameters are immutable after construction: no owner, no upgrade path on the EVM contracts.
  • On Solana, the program upgrade authority is a 2-of-2 Squads multisig (Cw3BeNU8QTH5MhY12XqTincrMXjP59p8ALpzsLiBq8LU), so program changes require multiple signatures.
The curve, in depthSecurity