Open app ↗
/docs

How risky works

Inverse bonding curves for Robinhood Chain memecoins. Buying pushes the price down. Selling pushes it up. Nobody holds the keys.

What risky is

risky is a set of markets on Robinhood Chain where each market, called a curve, mints its own token, called an ibAsset, against a reserve coin. Put in ETH, get ibETH. Put in a memecoin, get the ib-version of that memecoin.

The twist is the pricing rule. On a normal market, buying makes the price go up. On risky, buying makes the price go down and selling makes it go up. The curve is the only counterparty: there is no order book, no market maker, and no one to run out of liquidity, because the reserve never leaves the curve except when someone sells or withdraws.

In one line

Price = reserve ÷ (2 × minted supply). More minted, lower price. Less minted, higher price.

risky runs an unmodified, permissionless deployment of the open-source Inverse Bonding Curve contracts. We turned the protocol's own fee off, then gave up the admin key. What is on chain now is what will be on chain forever.

Quick start

  1. Get ETH on Robinhood Chain. Bridge from Ethereum with the Arbitrum bridge, or withdraw from Robinhood. You need a little for gas, plus whatever you want to trade.
  2. Open the app and connect MetaMask. The app asks MetaMask to switch to Robinhood Chain if it is on another network.
  3. Pick a curve on Explore. Each row is one ibAsset, with its current price, reserve, and what stakers and liquidity providers are earning.
  4. Mint. Type how much reserve to spend; the app shows what you receive and how far the price moves. Confirm once in MetaMask.
  5. Stake if you want the fees. Staked ibAssets collect a share of every trade on that curve. Claim whenever you like.

Everything is one transaction, signed in your wallet. The app never asks for your seed phrase or private key.

The curve

A bonding curve is a rule that sets the price of a token from how many exist. Normal bonding curves slope upward: each new token costs more than the last. An inverse bonding curve slopes downward: each new token is cheaper than the last, and each token burned makes the rest worth more.

The white dot is the current market. Minting slides it right and down; burning slides it left and up.

A worked example

A curve holds 2 ETH of reserve and has 1 ibETH minted. Price is 2 ÷ (2 × 1) = 1 ETH per ibETH.

That is the whole game: you are betting on what other people do next. Holding ibAssets pays off when the crowd sells and loses when the crowd buys.

Why a price like "20,000 ETH" is normal

The opening price of a market is 2 ÷ seed. A market seeded with 0.0001 ETH opens at 20,000 ETH per ibETH, with a total supply of 0.0000000025 ibETH. Nothing is wrong: one whole ibETH is simply an enormous slice of a tiny market, so the unit price is enormous too. It is a label, not a valuation.

What matters is the direction. The app shows how much 1 ETH buys, how the market has moved since it opened and over the last day, and what your position is worth in ETH. Those numbers are meaningful on every market regardless of how it was seeded. A market seeded with 2 ETH opens at a tidy 1 : 1 instead.

For the curious: the math

Every risky curve uses a utilization of ½, which fixes the shape. With reserve R and minted supply S:

price = R ÷ (2·S)
invariant = R ÷ √S  unchanged by mints and burns; updated by liquidity moves

Minting with ΔR reserve creates ΔS = S·((1 + ΔR/R)² − 1) new ibAssets. Burning ΔS ibAssets returns ΔR = R·(1 − √(1 − ΔS/S)) reserve. Both are exactly what the app quotes before the fee.

Minting and burning

Mint means pay reserve, receive ibAsset. Burn means pay ibAsset, receive reserve. The curve is always open, at any size, at the price the rule gives.

Both guards exist because other people's trades can land before yours in the same block. They make a bad fill impossible; they can also make a fair fill fail on a busy curve, in which case just retry.

Why the app matters

The curve contracts take payment by transfer first, call second. Sent on their own, tokens sitting in a curve can be claimed by anyone. The app routes every trade through the Router, which does both steps in one transaction so that cannot happen. Never send tokens straight to a curve address.

Providing liquidity

Liquidity providers add reserve to a curve without minting. That deepens the market: after an add, the same size trade moves the price less. In return, LPs collect 0.25% of every mint, burn, add and remove on that curve.

What you get

The rules

Closing, and why you might owe ibAssets

When you close, you take back your share of the reserve. The curve also has to retire your share of the minted supply. If the price is higher than when you entered, your credit covers it with some left over, and you receive the extra ibAssets. If the price is lower, your credit is not enough and you must hand over the difference from your wallet. The app shows which case you are in and blocks the close if you do not hold enough.

Put simply: an LP position gains when the price moves away from where you entered, in either direction, and collects fees the whole time.

For the curious: the math

Adding ΔR reserve to a curve with total LP supply L mints ΔL = (ΔR/R)·L LP units and credits ΔS = (ΔR/R)·S ibAssets. Price does not change. Closing ΔL returns (ΔL/L)·R reserve and retires (ΔL/L)·S ibAssets; the gap between that and your credit is what you receive or owe.

Staking and fees

Stake ibAssets on their curve to collect fees. Stakers as a group receive 0.25% of every mint, burn, add and remove, split pro rata by stake. Fees arrive in the same tokens the trade produced, so a stake earns a mix of ibAsset and reserve.

ActionFeePaid inTo LPsTo stakersTo risky
Mint0.5%ibAsset0.25%0.25%0
Burn0.5%ibAsset0.25%0.25%0
Add liquidity0.5%reserve0.25%0.25%0
Remove liquidity0.5%reserve, and ibAsset if any is returned0.25%0.25%0

Creating a curve

Anyone can open a curve for any token on Robinhood Chain, or for ETH. Whoever does it first for a given token owns that first move permanently: there is exactly one curve per reserve asset, forever.

  1. Pick the reserve asset. ETH, one of the listed memecoins, or any token address.
  2. Choose the seed. The reserve you put in sets the starting price and supply. Price starts at 2 ÷ seed and supply at seed² ÷ 4, so a seed of 2 opens at a clean 1 : 1. The app previews both.
  3. Create. One transaction. You receive the initial LP position; 0.01% of it is burned so the curve can never be fully drained. The minimum seed is 0.0001. There is no creation fee.

Small seeds are valid but open at very high unit prices with tiny supply. That is only a matter of how the numbers look, not how the curve behaves, but the app warns when the starting price is far from 1.

Risks

Read this before you trade
  • No admin, no rescue. The admin key was renounced at deployment. Nothing can be paused, upgraded or changed. That is the point, and it also means there is no emergency stop if something goes wrong.
  • Unaudited code. The contracts are the upstream open-source implementation, well tested but never audited. Use amounts you can afford to lose.
  • ibAssets fall when others buy. This is the design, not a bug. Holding an ibAsset while a curve is popular loses money.
  • Memecoins are memecoins. A curve on a token that goes to zero holds a reserve that is worth zero.
  • Trades can front-run each other. The slippage and divergence guards protect you from a bad fill, but a fair fill can fail and need a retry.

Contracts

Deployed on Robinhood Chain (chain ID 4663) on 7 September 2026, compiled with Solidity 0.8.18 and the optimizer at 200 runs. Source is GPL-3.0.

ContractAddressRole
Factory0xF9d9DdDc5cbD08021953C346C1E325F0CC03324aCreates curves. The app's Explore list reads from here.
Router0x270cf29e1Ab9B112a5de379901Fcaf698761846fEvery trade goes through here. Wraps and unwraps ETH.
Admin0x8D63C5ADCA11Ca3FFF616B695915F8Ce45028B3bHolds the fee schedule and curve logic pointer. Owner is 0x0.
Curve logic0xb4331954812D80bA2e2cD81A1916B17bc8Dd54a1The code every curve runs. Immutable.
Curve library0x2E2A835F427a24cB3e384BfA0A51Ae04B87E3684Shared math and reward accounting.
WETH0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73Robinhood Chain's canonical wrapped ETH, used by ETH curves.

Verified on chain after deployment: the Admin's owner is the zero address, pause() reverts for everyone, and the fee schedule reads 0.25% / 0.25% / 0 on all four actions.

Open source

Everything risky runs is public. This site and the app are at github.com/RiskyMarkets/risky. The deployed contracts, deploy script and tests are at github.com/RiskyMarkets/risky-contracts: the Inverse Bonding Curve implementation with the optimizer on, deployed as-is, then renounced. Both are GPL-3.0. Read the code, run the tests, compare the deployed bytecode.

Glossary

Curve
One market. Holds one reserve asset and mints one ibAsset.
ibAsset
The token a curve mints. ibETH, ibMOO, and so on. A normal ERC-20 you can hold, move, stake or burn.
Reserve
The coin locked in a curve. What you pay to mint and receive when you burn.
Mint / Burn
Buy from the curve / sell back to the curve.
Minted supply
How many ibAssets exist, including those credited to liquidity providers. Sets the price together with the reserve.
LP position
A non-transferable record of reserve you added. Earns fees; closes in full.
ibAsset credit
ibAssets the curve counts as an LP's, settled when the position closes.
Seed
The reserve a creator puts in to open a curve. Fixes the starting price and supply.
Slippage
The worst price you will accept. The trade fails rather than fill below it.