dllma

Crates.iodllma
lib.rsdllma
version0.1.1
created_at2026-01-17 12:43:37.26563+00
updated_at2026-01-22 21:40:27.47236+00
descriptionUnofficial Rust client for the DefiLlama API (dllma)
homepage
repositoryhttps://github.com/yldfi/yldfi-rs/tree/main/crates/dllma
max_upload_size
id2050388
size179,388
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]
dllma = "0.1"
tokio = { version = "1", features = ["full"] }

Quick Start

use dllma::Client;

#[tokio::main]
async fn main() -> Result<(), dllma::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 dllma::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