Crates.io | geckoterminal-rs |
lib.rs | geckoterminal-rs |
version | 0.2.5 |
source | src |
created_at | 2023-12-29 14:06:58.978161 |
updated_at | 2024-03-25 17:01:39.813618 |
description | RESTful asynchronous Rust client for GeckoTerminal API |
homepage | |
repository | https://github.com/dineshpinto/geckoterminal-rs |
max_upload_size | |
id | 1083373 |
size | 49,926 |
Wrapper around the GeckoTerminal DeFi and DeX aggregator operating across 90+ chains and 500+ dexes.
Features:
The API is currently in beta and is subject to change, please report any issues you find.
cargo add geckoterminal-rs
or via Cargo.toml
:
[dependencies]
geckoterminal-rs = "0.2"
See the GeckoTerminal API docs for more details.
use geckoterminal_rs::GeckoTerminalAPI;
#[tokio::main]
async fn main() {
let gt = GeckoTerminalAPI::new();
// Get a list of supported networks
let networks = gt.networks(None).await.unwrap();
println!("{:?}", networks);
// Query trending pools on a network
let pools = gt.network_trending_pools("solana", None).await.unwrap();
println!("{:?}", pools);
// and many more...
}
let networks = gt.networks(None).await.unwrap();
for network in networks.data {
println!(
"{} ({}, {})",
network.attributes.name, network.id,
network.attributes.coingecko_asset_platform_id.unwrap_or("".to_string())
);
}
Output:
Ethereum: (eth, ethereum)
Solana: (solana, solana)
Arbitrum: (arbitrum, arbitrum-one)
Polygon POS: (polygon_pos, polygon-pos)
Avalanche: (avax, avalanche)
Mantle: (mantle, mantle)
...
let trending = gt.network_trending_pools("solana", None).await.unwrap();
for pool in trending.data {
println!(
"{}: ${} (24H: {}%), Vol: {}, {} ({})",
pool.attributes.name, pool.attributes.base_token_price_usd,
pool.attributes.price_change_percentage.h24, pool.attributes.volume_usd.h24,
pool.attributes.address, pool.relationships.dex.data.id
);
}
Output:
MONKEY / SOL: $0.0000000021245208116085 (24H: 181.76%), Vol: 315625.360191837, Dqb7bL7MZkuDgHrZZphRMRViJnepHxf9odx3RRwmifur (raydium)
BOME / SOL: $0.0216091492330017 (24H: 359.24%), Vol: 483264168.055883, DSUvc5qf5LJHHV5e2tD184ixotSnCnwj7i4jJa4Xsrmt (raydium)
BONK2.0 / RAY: $0.0000000971470021753641 (24H: 84.85%), Vol: 813080.861892264, 3YbvsPC4arDfhY4VLNXqtf3wRPAUUe7NxFmeZykUnHoZ (raydium)
PORTNOY / SOL: $0.000823561633783244 (24H: -68.9%), Vol: 1450271.6596655, 77JrcxAzPUEvn9o1YXmFm9zQid8etT4SCWVxVqE8VTTG (raydium)
PENG / SOL: $0.958285437444166 (24H: -34.31%), Vol: 13181611.9610447, AxBDdiMK9hRPLMPM7k6nCPC1gRARgXQHNejfP2LvNGr6 (raydium)
NINJA / SOL: $0.014017222386801 (24H: 0.85%), Vol: 2734212.42346667, B8sv1wiDf9VydktLmBDHUn4W5UFkFAcbgu7igK6Fn2sW (raydium)
IQ50 / SOL: $0.000091945701104404 (24H: 77.65%), Vol: 31955796.5143891, AFCHx2PfKB8Szn6196kcrHtbwP7zmi5ijMcJfurq1owv (orca)
boden / SOL: $0.115666833387918 (24H: -25.42%), Vol: 4656209.62137547, 6UYbX1x8YUcFj8YstPYiZByG7uQzAq2s46ZWphUMkjg5 (raydium)
$WIF / SOL: $2.58524513809515 (24H: -7.83%), Vol: 25117725.2604335, EP2ib6dYdEeqD8MfE2ezHCxX3kP3K2eLKkirfPm5eyMx (raydium)
...
This project is for educational purposes only. You should not construe any such information or other material as legal, tax, investment, financial, or other advice. Nothing contained here constitutes a solicitation, recommendation, endorsement, or offer by me or any third party service provider to buy or sell any securities or other financial instruments in this or in any other jurisdiction in which such solicitation or offer would be unlawful under the securities laws of such jurisdiction.
Under no circumstances will I be held responsible or liable in any way for any claims, damages, losses, expenses, costs, or liabilities whatsoever, including, without limitation, any direct or indirect damages for loss of profits.