Clients

Tycho Client streams protocol state changes to you.

Tycho Client is available as a Python package and a Rust crate.

Key Features

  • Real-Time Streaming: Get low-latency updates to stay in sync with the latest protocol changes. Discover new pools as they’re created.

  • TVL Filtering: Receive updates only for pools with a TVL larger than your specified threshold (in ETH).


Getting Started

Follow this guide to set up and use the Tycho Client.

For a simple, setup-free start: download the latest binary release on GitHub, add it to your PATH, and verify installation with:

tycho-client -V

You should see the Tycho client version displayed. If you need more guidance, refer to our detailed installation instructions.

Now, define the pools you want to track: For example, to track the Uniswap V2 and V3 pools with a minimum value locked of 100 ETH, run:

tycho-client --exchange uniswap_v2 --exchange uniswap_v3 --min-tvl 100 --tycho-url {TYCHO_INDEXER_URL}

Authentication

For services where authentication is required, you can do this securely by setting an environment variable for your token:

export TYCHO_AUTH_TOKEN={your_token}

Or skip secure connections entirely with --no-tls for local setups [coming soon].

Help and More Information

For more details on using the CLI, run:

tycho client --help

Message Types

Tycho emits data in an easy-to-read JSON format. Get granular updates on each block:

  • Snapshots for complete component (or pool) states,

  • Deltas for specific updates, and

  • Removal notices for components that no longer match your filtration criteria.

Each message includes block details to help you stay on track with the latest block data.

For specifics on the message structures and their intended uses, see our tycho-client documentation.


Harness the Power of Tycho's RPC

The client packages above not only stream live data to you, but also lets you access to Tycho’s RPC to query static token and protocol data.

Key Capabilities:

  • s.

  • Token information: Query tokens that Tycho supports, and filter by e.g. days since the token was last traded or token type.

Example fetching tokens from Tycho:

use tycho_client::rpc::HttpRPCClient;
use tycho_core::dto::Chain;

let client = HttpRPCClient::new("insert_tycho_url", Some("my_auth_token"));

let tokens = client
    .get_all_tokens(
        Chain::Ethereum,
        Some(51_i32), // min token quality to filter for certain token types
        Some(30_u64), // number of days since last traded
        1000,         // pagination chunk size
    )
    .await
    .unwrap();
    
/// Token quality is between 0-100, where:
///  - 100: Normal token
///  - 75: Rebase token
///  - 50: Fee token
///  - 10: Token analysis failed at creation
///  - 5: Token analysis failed on cronjob (after creation).
///  - 0: Failed to extract decimals onchain

Hosted Tycho: Try Our Beta Service

You don't need to host Tycho yourself.

Get beta access to our hosted Tycho service. Message @tanay_j on Telegram.


Learn More and Get Started

Ready to dive deeper? For a detailed guide on using Tycho Indexer, including setup and customization options, visit the full documentation in our GitHub repository.

Last updated