Expand description
Morpho Vaults Rust API Library
This crate provides a Rust client for querying Morpho V1 (MetaMorpho) and V2 vaults via their GraphQL API, and executing on-chain transactions.
§Example
use morpho_rs_api::{MorphoClient, MorphoClientConfig, NamedChain};
use alloy::primitives::{Address, U256};
#[tokio::main]
async fn main() -> Result<(), morpho_rs_api::ApiError> {
// API-only client (no transactions)
let client = MorphoClient::new();
let vaults = client.get_vaults_by_chain(NamedChain::Mainnet).await?;
// Full client with transaction support
let config = MorphoClientConfig::new()
.with_rpc_url("https://eth.llamarpc.com")
.with_private_key("0x...");
let client = MorphoClient::with_config(config)?;
// V1 vault operations using bound signer address
let vault: Address = "0x...".parse().unwrap();
let balance = client.vault_v1()?.balance(vault).await?;
// Approve and deposit
let amount = U256::from(1000000);
client.vault_v1()?.approve(vault, amount).await?;
client.vault_v1()?.deposit(vault, amount).await?;
Ok(())
}Re-exports§
pub use client::ClientConfig;pub use client::MorphoApiClient;pub use client::MorphoClient;pub use client::MorphoClientConfig;pub use client::VaultV1Client;pub use client::VaultV1Operations;pub use client::VaultV2Client;pub use client::VaultV2Operations;pub use client::DEFAULT_API_URL;pub use error::ApiError;pub use error::Result;pub use filters::VaultFiltersV1;pub use filters::VaultFiltersV2;pub use filters::VaultQueryOptionsV1;pub use filters::VaultQueryOptionsV2;pub use types::chain_from_id;pub use types::chain_serde;pub use types::Asset;pub use types::MarketInfo;pub use types::OrderDirection;pub use types::UserAccountOverview;pub use types::UserMarketPosition;pub use types::UserState;pub use types::UserVaultPositions;pub use types::UserVaultV1Position;pub use types::UserVaultV2Position;pub use types::Vault;pub use types::VaultAdapter;pub use types::VaultAllocation;pub use types::VaultAllocator;pub use types::VaultInfo;pub use types::VaultOrderByV1;pub use types::VaultOrderByV2;pub use types::VaultPositionState;pub use types::VaultReward;pub use types::VaultStateV1;pub use types::VaultV1;pub use types::VaultV2;pub use types::VaultV2Warning;pub use types::VaultVersion;pub use types::VaultWarning;pub use types::SUPPORTED_CHAINS;
Modules§
- client
- Vault client implementations for V1 and V2 vaults.
- error
- Error types for the Morpho API client.
- filters
- Filter builders for vault queries.
- queries
- GraphQL query definitions.
- types
- Type definitions for the Morpho API.
Structs§
- Vault
V1Transaction Client - Client for executing transactions against V1 (MetaMorpho) vaults.
- Vault
V2Transaction Client - Client for executing transactions against V2 vaults.
Enums§
- Named
Chain - An Ethereum EIP-155 chain.