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.
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
- 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.
- Open the app and connect MetaMask. The app asks MetaMask to switch to Robinhood Chain if it is on another network.
- Pick a curve on Explore. Each row is one ibAsset, with its current price, reserve, and what stakers and liquidity providers are earning.
- Mint. Type how much reserve to spend; the app shows what you receive and how far the price moves. Confirm once in MetaMask.
- 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.
A worked example
A curve holds 2 ETH of reserve and has 1 ibETH minted. Price is 2 ÷ (2 × 1) = 1 ETH per ibETH.
- Someone mints with 1 ETH. Reserve becomes 3 ETH, minted supply becomes 2.25 ibETH, so the price is now 3 ÷ 4.5 = 0.667 ETH. The minter received 1.25 ibETH, less the 0.5% fee, for 1 ETH, an average of 0.80 ETH each.
- If they burn it all straight back, the curve returns about 0.99 ETH. The difference is the two fees, which went to stakers and liquidity providers.
- If instead a second person mints after them, the price drops further and the first minter's ibETH is worth less. If the second person burns, it is worth more.
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:
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.
- Fee: 0.5% of what you produce, taken in ibAsset. Half goes to liquidity providers, half to stakers. risky takes nothing.
- Price impact: shown before you confirm. Large mints move the price a lot because the curve is steep near its start.
- Slippage limit: your transaction fails instead of filling at a worse price than you allowed. The default is 1%, adjustable under Advanced.
- Reserve divergence: a second guard that fails the trade if the curve's reserve changed more than you allowed since you quoted. Default 5%.
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.
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
- An LP position sized by your share of the reserve. It is not a token: it cannot be transferred or sold, only closed.
- An ibAsset credit, the ibAssets the curve counts as yours but has not handed over. You receive them, or owe them, when you close.
The rules
- One position per address. To change size, close it and open a new one.
- Positions open and close in full.
- Adding and removing each cost 0.5% of the reserve moved, split between LPs and stakers.
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.
| Action | Fee | Paid in | To LPs | To stakers | To risky |
|---|---|---|---|---|---|
| Mint | 0.5% | ibAsset | 0.25% | 0.25% | 0 |
| Burn | 0.5% | ibAsset | 0.25% | 0.25% | 0 |
| Add liquidity | 0.5% | reserve | 0.25% | 0.25% | 0 |
| Remove liquidity | 0.5% | reserve, and ibAsset if any is returned | 0.25% | 0.25% | 0 |
- Staked ibAssets cannot be burned or moved until you unstake. Unstaking is instant.
- The first staker on a curve sweeps every staker fee that accrued before anyone staked.
- Because later minters get more ibAssets per unit of reserve, latecomers can out-stake early entrants. Early does not mean permanent.
- Rewards do not compound. Claim them on the Claim tab; staking or unstaking does not claim.
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.
- Pick the reserve asset. ETH, one of the listed memecoins, or any token address.
- Choose the seed. The reserve you put in sets the starting price and supply. Price starts at
2 ÷ seedand supply atseed² ÷ 4, so a seed of 2 opens at a clean 1 : 1. The app previews both. - 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
- 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.
| Contract | Address | Role |
|---|---|---|
| Factory | 0xF9d9DdDc5cbD08021953C346C1E325F0CC03324a | Creates curves. The app's Explore list reads from here. |
| Router | 0x270cf29e1Ab9B112a5de379901Fcaf698761846f | Every trade goes through here. Wraps and unwraps ETH. |
| Admin | 0x8D63C5ADCA11Ca3FFF616B695915F8Ce45028B3b | Holds the fee schedule and curve logic pointer. Owner is 0x0. |
| Curve logic | 0xb4331954812D80bA2e2cD81A1916B17bc8Dd54a1 | The code every curve runs. Immutable. |
| Curve library | 0x2E2A835F427a24cB3e384BfA0A51Ae04B87E3684 | Shared math and reward accounting. |
| WETH | 0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73 | Robinhood 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.
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.