stonfi_api_client
Thin typed wrapper for the STON.fi API v1 and public export endpoints.
Use this crate when an application needs typed access to STON.fi assets, pools, farms, routers, swap/liquidity simulation, wallet views, stats, transactions, or public export feeds. The crate does not execute swaps or manage transaction submission; application code owns wallet signing, retries around business workflows, persistence, and fallback behavior.
Usage
[]
= "0.9"
= { = "1", = ["macros", "rt-multi-thread"] }
The minimum supported Rust version (MSRV) is 1.88.
Run requests inside an async Tokio runtime. Pass request parameter structs
directly where Into<V1Request> or Into<ExportRequest> is implemented, and
match response enums with a wildcard arm.
use StonfiApiClient;
use ;
# async
Use ExportApiClient for public export feeds:
use StonfiApiClient;
use ;
# async
Supported Endpoints
| Group | Method | Supported |
|---|---|---|
| AMM | /v1/assets | ✅ |
| AMM | /v1/assets/query | ✅ |
| AMM | /v1/assets/search | ✅ |
| AMM | /v1/assets/{addr_str} | ✅ |
| AMM | /v1/farms | ✅ |
| AMM | /v1/farms/by_pool/{pool_addr_str} | ✅ |
| AMM | /v1/farms/{addr_str} | ✅ |
| AMM | /v1/jetton/{addr_str}/address | ✅ |
| AMM | /v1/liquidity_provision/simulate | ✅ |
| AMM | /v1/markets | ✅ |
| AMM | /v1/pools/query | ✅ |
| AMM | /v1/pools | ✅ |
| AMM | /v1/pools/by_market/{asset_0_addr_str}/{asset_1_addr_str} | ✅ |
| AMM | /v1/pools/{addr_str} | ✅ |
| AMM | /v1/reverse_swap/simulate | ✅ |
| AMM | /v1/routers | ✅ |
| AMM | /v1/routers/{addr_str} | ✅ |
| AMM | /v1/stats/dex | ✅ |
| AMM | /v1/stats/fee_accruals | ✅ |
| AMM | /v1/stats/fee_withdrawals | ✅ |
| AMM | /v1/stats/fees | ✅ |
| AMM | /v1/stats/operations | ✅ |
| AMM | /v1/stats/pool | ✅ |
| AMM | /v1/stats/staking | ✅ |
| AMM | /v1/swap/simulate | ✅ |
| AMM | /v1/swap/status | ✅ |
| AMM | /v1/transactions/query | ✅ |
| AMM | /v1/transactions/{hash}/action_tree | ✅ |
| AMM | /v1/wallets/{addr_str}/assets | ✅ |
| AMM | /v1/wallets/{addr_str}/assets/{asset_str} | ✅ |
| AMM | /v1/wallets/{addr_str}/farms | ✅ |
| AMM | /v1/wallets/{addr_str}/farms/{farm_str} | ✅ |
| AMM | /v1/wallets/{addr_str}/fee_vaults | ✅ |
| AMM | /v1/wallets/{addr_str}/operations | ✅ |
| AMM | /v1/wallets/{addr_str}/pools | ✅ |
| AMM | /v1/wallets/{addr_str}/pools/{pool_str} | ✅ |
| AMM | /v1/wallets/{addr_str}/stakes | ✅ |
| AMM | /v1/wallets/{addr_str}/transactions/last | ✅ |
| Export | /export/cmc/v1 | ✅ |
| Export | /export/dexscreener/v1/asset/{address} | ✅ |
| Export | /export/dexscreener/v1/events | ✅ |
| Export | /export/dexscreener/v1/latest-block | ✅ |
| Export | /export/dexscreener/v1/pair/{address} | ✅ |
Public request and response types are marked #[non_exhaustive] for semver
headroom. Build public POD structs with Default::default().with_<field>(...)
or request parameter new() constructors, pass request parameters directly to
V1ApiClient::exec or ExportApiClient::exec where Into<V1Request> or
Into<ExportRequest> is implemented, and include a wildcard arm when matching
response enums.
Live API tests hit STON.fi directly. Asset metadata, pool counts, prices, transaction state, and optional transaction fields can drift with upstream data.