mrls 0.1.8

Unofficial Rust client for the Moralis Web3 API - tokens, NFTs, wallets, DeFi, and market data
Documentation
<p align="center">
  <img src="https://raw.githubusercontent.com/yldfi/yldfi-rs/main/logo-128.png" alt="yld_fi" width="128" height="128">
</p>

<h1 align="center">mrls</h1>

<p align="center">
  Unofficial Rust client for the <a href="https://docs.moralis.io/">Moralis Web3</a> API
</p>

<p align="center">
  <a href="https://crates.io/crates/mrls"><img src="https://img.shields.io/crates/v/mrls.svg" alt="crates.io"></a>
  <a href="https://github.com/yldfi/yldfi-rs/blob/main/crates/mrls/LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="MIT License"></a>
</p>

## Features

- **Wallet API** - Native balances, token balances, transactions, approvals, net worth, profitability
- **Token API** - Metadata, prices, transfers, swaps, pairs, holders, stats, trending
- **NFT API** - NFT metadata, transfers, owners, trades, floor prices, collections
- **DeFi API** - Pair prices, reserves, positions, protocol summaries
- **Block API** - Block data, timestamps, date-to-block lookups
- **Transaction API** - Transaction details, decoded calls, internal transactions
- **Resolve API** - ENS, Unstoppable Domains, domain resolution
- **Market Data API** - Top tokens, movers, NFT collections, global stats
- **Discovery API** - Token discovery, trending, analytics, scores
- **Entities API** - Wallet/protocol/exchange labels and categories

## Installation

```toml
[dependencies]
mrls = "0.1"
tokio = { version = "1", features = ["full"] }
```

## Quick Start

```rust
use mrls::Client;

#[tokio::main]
async fn main() -> Result<(), mrls::Error> {
    // Create client from MORALIS_API_KEY env var
    let client = Client::from_env()?;

    // Get native balance
    let balance = client.wallet().get_native_balance(
        "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
        Some("eth"),
    ).await?;
    println!("Balance: {} wei", balance.balance);

    // Get token price
    let price = client.token().get_price(
        "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", // WETH
        Some("eth"),
    ).await?;
    println!("WETH Price: ${:?}", price.usd_price);

    Ok(())
}
```

## Environment Variables

- `MORALIS_API_KEY` - Your Moralis API key (required)

## Terms of Service

This is an **unofficial** client. By using this library, you agree to comply with [Moralis Terms of Service](https://moralis.io/terms/).

## Disclaimer

This crate is not affiliated with or endorsed by Moralis.

## License

MIT