Tycho Indexer gives you a low-latency, reorg-aware stream of all attributes you need to simulate swaps over DEX and other onchain liquidity.
For comprehensive documentation about tycho-indexer, visit our GitBook.
We warmly welcome open-source contributions!
No contribution is too small and all contributions are valued.
The tycho.build Telegram is available for any questions you may have that are not covered in this guide.
You can contribute in three ways:
- Open an issue: For example, if you believe that you have uncovered a bug in Tycho, create a new issue in the issue tracker to report it.
- Add context: Help resolve open issues by adding more context, such as screenshots and code snippets.
- Resolve an issue: Open a pull request that fixes the issue, or demonstrates it's not an issue.
Anybody can participate in any stage of contribution. We encouarge you to participate in discussing issues and also to participate in reviewing PRs.
Please submit pull requests (PRs) targeting the main branch. Ensure all PR and commits titles follow the Conventional Commit format using a prefix like fix: bug XXX
. This prefix is essential for automatically incrementing the version number.
Please ensure the following commands pass if you have changed the code:
cargo clippy --workspace --lib --all-targets --all-features
cargo +nightly fmt --check
If you're interested in contributing, join us on Telegram at tycho.build.
The Tycho community is eager to help you find an issue to work on and will support you throughout the implementation process.
Contact [email protected]
As Tycho is still in heavy development, the documentation can be a bit scattered.
The Official Documentation is our current best-effort attempt at keeping up-to-date information.
Tycho's architecture is designed to handle both real-time and historical data efficiently. Extractors process on-chain data, which then propagate the data to clients and storage. Clients can access stored data with the RPC service, and combine it with streamed deltas to reconstruct the current state of a protocol system.
Tycho consists of several crates, each responsible for different aspects of the system:
tycho-simulation
: Provides tools for interacting with protocol states, calculating spot prices, and quoting token swaps. More detailed docs here.tycho-execution
: Modules for encoding and executing swaps against Tycho router and protocol executors. heretycho-common
: Defines the common structs and traits used throughout the Tycho system. More detailed docs here.tycho-indexer
: Contains the main logic used to process incoming data and propogate the relevant information to clients and storage. Includes the RPC service. More detailed docs here.tycho-storage
: Manages the underlying database and provides gateways for data access. More detailed docs here.tycho-client
: A rust client to simplify the start-up and managing of data from a Tycho connection. More detailed docs here.tycho-client-py
: A python interface for the rust client and RPC service. More detailed docs here.tycho-ethereum
: A module that integrates Ethereum-specific blockchain functionalities into Tycho. More detailed docs here.