defillama

Crates.iodefillama
lib.rsdefillama
version0.1.0
created_at2026-01-17 09:02:38.793749+00
updated_at2026-01-17 09:02:38.793749+00
descriptionUnofficial Rust client for the DefiLlama API
homepage
repositoryhttps://github.com/yldfi/yldfi-rs
max_upload_size
id2050162
size179,234
michaeldim (michaeldim)

documentation

README

yld_fi

defillama

Unofficial Rust client for the DefiLlama API

crates.io MIT License

Features

  • TVL - Protocol TVL data, chains, historical data
  • Coins - Token prices, historical prices, charts
  • Yields - DeFi yield data, pool APYs
  • Fees - Protocol fees and revenue
  • Volumes - DEX and protocol volumes
  • Stablecoins - Stablecoin market data
  • Bridges - Cross-chain bridge data
  • DAT - Developer analytics tools (Pro)
  • Emissions - Token emission schedules (Pro)

Installation

[dependencies]
defillama = "0.1"
tokio = { version = "1", features = ["full"] }

Quick Start

use defillama::Client;

#[tokio::main]
async fn main() -> Result<(), defillama::Error> {
    // Create a free-tier client
    let client = Client::new()?;

    // Get all protocols
    let protocols = client.tvl().protocols().await?;
    println!("Found {} protocols", protocols.len());

    // Get current ETH price
    use defillama::coins::Token;
    let tokens = vec![Token::coingecko("ethereum")];
    let prices = client.coins().current(&tokens).await?;

    Ok(())
}

Pro API Access

Some endpoints require a Pro API key. Get one at defillama.com/subscription.

// Create client with Pro API key
let client = Client::with_api_key("your-api-key")?;

// Or from environment variable
let client = Client::from_env()?; // reads DEFILLAMA_API_KEY

// Access Pro endpoints
let yields = client.yields().pools().await?;

Environment Variables

  • DEFILLAMA_API_KEY - Your DefiLlama Pro API key (optional, for Pro endpoints)

License

MIT

Commit count: 46

cargo fmt