A price feed for
every token.
ZK-verified DEX prices for any on-chain pair. Deploy as a standalone feed or a trusted backup alongside your existing oracle. Same interface, independent verification.
Search by name, symbol, or address. Works on Ethereum, Base, Arbitrum, and 14 more chains.
Or try these tokens:
| Token | Cost |
|---|---|
| ETHUniswap V3 · Ethereum | $0.01 |
| UNIUniswap V2 · Ethereum | $0.01 |
| LINKBalancer V2 · Ethereum | $0.01 |
| AEROAerodrome · Base | $0.01 |
| RPLUniswap V2 · Ethereum | $0.01 |
| CAKEPancakeSwap · BSC | $0.01 |
Chainlink covers ~1,000 tokens.
There are 500,000+ pairs.
Want a feed for your token? Get in line. Or pay $50–200K/year to sponsor one. We built something different.
500× more coverage
Tokens Chainlink will never support
8 DEX types supported
Three steps. That's it.
Read
Steel reads DEX pool state across a contiguous range of 10+ blocks inside the RISC Zero zkVM. The median price across the range is computed — manipulation of any single block has no effect. The range is configurable for stronger guarantees. Every read is cryptographically tied to actual on-chain state.
8 DEX types supportedProve
Boundless computes the multi-block median price and generates a ZK proof. 73M cycles. $0.004 on the Boundless marketplace. Proven in 15s.
Outsourced to Boundless proversVerify
A Solidity contract checks the proof on-chain (~250K gas) and stores the price. Safety checks enforce minimum samples, deviation limits, and block freshness. Your protocol calls latestRoundData() -- zero code changes.
Chainlink-compatible interfaceMulti-block median. Can't flash-loan that.
We prove prices across a contiguous range of 10+ blocks and take the median. The range is configurable — use more blocks for stronger guarantees. Flash loans execute within a single block and cannot influence the median across a range.
To manipulate this feed, an attacker would need to sustain manipulation across >50% of sampled blocks while risking arbitrageurs correcting the price every block.
Other oracles choose which tokens get a feed.
Existing oracles curate a fixed list of pairs and gatekeep access behind vendor contracts, governance votes, or allowlists. If your token isn't on their list, you're out of luck.
| Provider | Pair coverage | Trust model |
|---|---|---|
| ZK Price Feed | Any DEX pool | Mathematics |
| Chainlink | ~860 feeds | 4-31 node committee |
| Pyth | ~500 feeds | Wormhole guardians |
| RedStone | ~1,000 feeds | Signer set |
| Chronicle | ~70 feeds | Schnorr multisig |
500K+
DEX pools exist on-chain. Every one of them is a feed you can deploy today — no proposal, no vote, no vendor.
~$0.004
Per ZK-proven update via the Boundless proving network. No LINK subsidies. No hidden vendor contracts. Transparent cost.
Math
ZK proofs verify prices from real on-chain state. No committee. No multisig. No guardians. A proof anyone can verify.
Add a ZK-verified second opinion to your existing oracle.
Same interface. Drop in as a backup or a replacement.
// Before
AggregatorV3Interface feed = AggregatorV3Interface(
0x5f4eC3Df...5b8419 // Chainlink ETH/USD
);
// After
AggregatorV3Interface feed = AggregatorV3Interface(
0x... // ZK price feed -- proven by math
);
// Your code stays exactly the same
(, int256 price, , uint256 updatedAt, ) = feed.latestRoundData();We implement the standard interfaces from every major oracle provider. Use it as a circuit breaker alongside your primary feed — if the two disagree, pause. Or swap it in as your primary. Either way, one address change.
This is the simplest thing we can prove.
Reading prices from one pool is day-one functionality. The same framework proves arbitrarily complex computations -- all at the same on-chain gas cost.
Single pool median
Live20-block median from any DEX pool
Multi-pool aggregation
Coming soonRead 5 DEX pools across protocols, liquidity-weighted median
Cross-DEX price
Coming soonAggregate Uniswap + Sushi + Curve into a single feed
Composite index
Coming soonTop-10 DeFi token index verified in one proof
LP token pricing
Coming soonFair value from underlying reserves, proven on-chain
On-chain volatility
Coming soonImplied vol from price variance across blocks
On-chain verification cost is fixed regardless of complexity.
Whether the prover reads 1 pool or 50 pools, the proof is the same size. Only off-chain proving cost scales -- and at $0.05/billion cycles, a 10x bigger computation costs $0.04.
FAQ
Not yet. This is a template and POC. You deploy it for your pair. We don't operate feeds -- you run your own keeper or let anyone call updatePrice().
As fresh as the last keeper update. Proving takes ~15 seconds, then it's a normal on-chain transaction. If you run a keeper every 30 seconds, your price is never more than ~45 seconds old.
8 DEX types: Uniswap V2, Uniswap V3, Curve, Balancer V2, Solidly/Aerodrome, Trader Joe LB, DODO PMM, and Algebra V3 (Camelot/QuickSwap). Any V2 fork works out of the box.
Yes. We prove prices across a contiguous range of 10+ blocks and take the median. Flash loans execute within a single block — they cannot influence the median across a range. The range is configurable (use more blocks for stronger guarantees). An attacker would need to sustain manipulation across a majority of the range, risking arbitrageurs correcting the price every block.
Any EVM chain supported by Steel. Currently tested on Ethereum mainnet and Base. L2 support is straightforward -- and that's where the economics get really good ($0.01/update).
Yes. We implement AggregatorV3Interface. Change the feed address and everything else stays the same. Drop-in adapters also available for Pyth, RedStone, and Chronicle.
You do, or your protocol does, or an MEV searcher does (they need fresh prices for liquidations). It's permissionless -- anyone can call updatePrice().
Because we verify a ZK proof on-chain (~250K gas for Groth16). Pyth/RedStone verify signatures (~65-90K gas). The tradeoff: their security comes from trusting a committee. Ours comes from math.