Chainflip liquidity

loading…

Liquidity by market

MarketLiquidityPer assetEarningsPool totalAPYStrategies

Trading activity

Spread per block, strategies against other providers
BlockWhenAccountSoldBoughtEarningsTickSpread
Grouped by swap: one arriving in one pool takes resting orders from the best tick outwards, and every fill it produced shares a block and a market. The window counts swaps rather than rows for the same reason — a row limit would cut one in half and leave its totals describing a fragment. Narrowing the market or direction narrows which swaps are counted, so a quiet market reaches further back instead of coming up empty.

Every provider's fills in the markets listed above — plain LPs as well as registered trading strategies, and range orders as well as limit orders, all marked as such — but only those markets. A swap takes whatever is in its way, and one filled entirely by range orders would otherwise leave this table blank while the market's earnings above kept counting it.

The two are different instruments. A limit order rests at a tick the provider chose, and its spread is what that choice captured. A range order has no tick: it holds liquidity across a band and earns the pool's fee on whatever passes through, so its rate is the fee tier rather than anything the provider decided. The rate column is fee-over-volume in both cases, which is why they can sit in one table — but only the limit rows say something about how well a provider is quoting. BTC, ETH and SOL pools are excluded for the same reason they are missing from the table above: no strategy here trades them yet. FLIP, DOT and TRX go with them, having no oracle feed to value a fill against at all.

Trades under a dollar are not listed. Below that a fill measures rounding rather than quoting: an eight basis point edge on a few cents is a fraction of one fine unit, so it floors to nothing, the maker captures none of it, and the fill lands wherever the two oracle feeds happen to sit. Those rows dominated this table by count while accounting for none of the money. Batch totals here cover only the fills shown.

Each leg is valued at the same block's oracle price, so both sides and the earnings between them are on one basis. The traded amounts are shown beside the earnings on purpose: a few cents on a few thousand traded is an ordinary stablecoin spread, and the same earnings on a few dollars traded would mean something was wrong by orders of magnitude. The figure cannot be judged without them.

Tick and spread are not the same measurement, and will not agree. A tick is a step of 1.0001 against the pool price, so it reads as whole basis points. The spread is measured against two independent oracle feeds, and USDC and USDT are not priced alike — the gap between them runs several bps and moves with every revision, which is why the spread is fractional where the tick is not. Four fills at tick −8 in one block measured 0.22, −0.08, −7.71 and −7.71 bps: the feeds were 7.71 bps apart, and the two smallest fills were dust — too few fine units for an 8 bps edge to round up even one — so they captured nothing from the pool and kept only the gap.