Liquidity in bins, not on a curve.

Ilyris is a bin liquidity engine on Robinhood Chain. Deposits sit in discrete price bins, so a swap that stays inside the active bin fills at one price, with zero slippage. The market runs around the clock, and nothing in the swap path calls an oracle.

01 · Pools

Live pools

One pool per pair per bin step, deployed from the factory. The pair and bin step are fixed at creation; every other figure is read from the chain when the page loads.

Reading chain 4663…

Pool Bin step Base fee Liquidity Active price
WETH/USDG0xeEc7…24D7 10 bps — — — Trade
WETH/YRIS0xcbb5…F8Ad 250 bps — — — Trade

Source: BinFactory and BinPoolLens, read over JSON-RPC. Liquidity is depositor-owned reserves valued in the pool's quote token; a dollar figure marked ≈ is routed through WETH/USDG rather than quoted directly. Two factory pools created at an inverted starting price are hidden here, in Pools and in the quote API: they hold nothing and should not be routed to.

02 · Mechanism

Why bins, not a curve

A constant-product AMM spreads every deposit across prices from zero to infinity, and most of it never trades. A bin engine holds the same capital only where trading happens.

The same capital as a thin constant-product position across all prices, and as fifteen discrete bins around the active price. constant-product position constant-product quote token · bids bids one price · zero slippage base token · asks asks i − 3 active bin i bin i i + 3 price(i) = (1 + step)^i
Left to right is price: bin i trades at (1 + step)i, one step above bin i − 1, and the pool's step is fixed at creation, from 1 to 250 bps. The grey band is a constant-product position holding the same capital across every price. The bars are that capital in fifteen bins, drawn as a Curve deposit; choose a shape below to redraw them. The app adds a fourth, Hybrid: any two of these blended by a percentage split, 40% Spot / 60% Bid-Ask by default. This figure draws only the three pure shapes a Hybrid is built from.

Three ways to place a deposit, and a Hybrid that blends any two

Equal depth in every bin across the range. The neutral choice with no view on where price goes next.

Most depth at the active price, thinning outward. Earns the most while price stays close; most exposed if it leaves.

Depth at the edges, light in the middle. Buys into weakness and sells into strength as price crosses the range.

  1. 01

    One price per bin

    Bin i holds reserves at exactly (1 + step / 10000)i. A swap that stays inside the active bin fills at that price; a larger swap crosses into the next populated bin and moves the price by one step.

  2. 02

    Fees stay with the bin

    Swap fees accrue to the bin that filled the trade and are claimable per bin. The protocol takes 10% of the swap fee, a share of the fee and not of the trade; the rest belongs to the depositors in that bin.

  3. 03

    Nothing external in the swap path

    The market guard makes no external calls: no oracle, no calendar, no sequencer feed. No upstream failure can close a pool.

03 · Staking

Staking: deployed, not funded

FeeStaking is live on chain 4663. It takes YRIS and pays WETH from the protocol's share of swap fees, once a reward period is funded. No rewards have been funded so far, and unstaking has a 72h cooldown: staking today would lock YRIS for three days to earn nothing. Nothing on this page asks you to. The figures beside this are read from the contract.

Contract
0x868a…7183
You stake
YRIS, the Ilyris token
You earn
WETH, per second, once a period is funded
Total staked
—
Reward rate
—
Cooldown
72 hours from unstake to withdraw

Your own position and the funding history are at Stake, which reads the same contract.

04 · Contracts

Verified on Blockscout

Six contracts on Robinhood Chain, all source-verified. Each address links to its Blockscout page.

ABIs and deployment history in the docs
ContractRoleAddress
BinFactoryDeploys one pool per pair per bin stepDeploys one pool per pair per bin step 0x3Bf7…5C4D
BinPoolLensOne-call pool state and quotesOne-call pool state and quotes 0x306d…9090
BinPool WETH / USDGPool, 10 bpsPool, 10 bps bin step 0xeEc7…24D7
BinPool WETH / YRISPool, 250 bpsPool, 250 bps bin step 0xcbb5…F8Ad
FeeStakingStake YRIS, earn WETHStake YRIS, earn WETH 0x868a…7183
YRISERC-20, the Ilyris tokenERC-20, the Ilyris token 0xD6af…683E

05 · Integrators

For routers and aggregators

Quote on-chain through the lens, or over HTTP if your pipeline prefers it. Both return the same number. A quote makes no external calls and does not consult the market guard, so it is deterministic for a block; a swap does consult it, so check tradable before routing.

On-chain 0x306d…9090

  • getPoolState(pool, radius) Tokens, decimals, bin step, base and total fee, active id and price, reserves over active ± radius, guard and owner. One call.
  • getBins(pool, from, to) Every populated bin in the range with its price. Discovery for a router that has never seen the pool.
  • quoteExactInWithGas(pool, xForY, amountIn) amountOut, fee, bins crossed and a gas hint. Rank routes with the hint; set the limit with eth_estimateGas.

HTTP ilyris-quote-api.ilyris.workers.dev

  • GET /health —
  • GET /pools Every routable pool with its tokens, bin step, fee and guard.
  • GET /quote?tokenIn&tokenOut&amountIn amountIn in wei. Returns amountOut, feeAmount, binsCrossed, gasEstimate, tradable and the pool to call; 422 insufficient_liquidity when no pool can fill that size.

No API key. CORS open. Chain 4663 only. Rated for 100 requests per second per client. Field-level detail in the docs.

06 · Risk

What the operator key can do

The operator key owns the pools and the market guard. Stated plainly, so you can decide with it in view.

It can

  • Pause swaps, and new deposits, through the market guard
  • Change a pool's fee parameters
  • Replace the market guard contract

It cannot

  • Withdraw or move deposited principal
  • Take fees already earned by depositors
  • Change a pool's bin step or token pair

The contracts are unaudited. An audit is planned once the protocol is feature-complete; auditing it now would mean auditing something still changing. Deposit only what you can afford to lose.