#ethereum #price #fetching #uniswap #smol #fixed-rate #quoter

bin+lib eth-prices

A library for fetching Ethereum prices

8 releases

Uses new Rust 2024

new 0.0.8 May 14, 2026
0.0.7 May 3, 2026
0.0.4 Apr 14, 2026
0.0.2 Mar 22, 2026

#165 in Magic Beans

LGPL-3.0

83KB
2K SLoC

eth-prices

A smol rust crate for fetching Ethereum asset prices directly from rpc.

Documentation Crates.io Repository Status: In Development License: LGPL-3.0

Quickstart

cargo add eth-prices
use eth_prices::{
    quoter::{Quoter, RateDirection},
    asset::Asset,
};

// Define your data sources
let quoter = vec![
    UniswapV2Quoter::from_selector(provider, UniswapV2Selector::Pair { pair_address }).await,
    UniswapV3Quoter::from_selector(provider, UniswapV3Selector::Pool { pool_address }).await,
    ERC4626Quoter::new(vault_address, provider).await,
    FixedQuoter::new(fixed_rate, provider).await,
];

// Create a router
let router = QuoterGraph::new(quoters);

// Compute a route
let token_in = TokenIdentifier::ERC20 { address: address!("0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48") };
let token_out = TokenIdentifier::Fiat { symbol: "usd".to_string() };
let route = router.compute(&token_in, &token_out).await.unwrap();

// Get the latest block number
let block = provider.get_block_number().await.unwrap();

// Quote the rate
let quote = route.quote(block, amount_in).await.unwrap();

Examples

This crate has a few examples you can toy around with:

Dependencies

~9–32MB
~392K SLoC