You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/for-dexs/protocol-integration/3.-testing.md
+7-6Lines changed: 7 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -29,9 +29,10 @@ You need an EVM **Archive** node to fetch the state from a previous block. If yo
29
29
30
30
The node also needs to support the [debug\_storageRangeAt](https://www.quicknode.com/docs/ethereum/debug_storageRangeAt) method, which is required for our Token Quality Analysis.
31
31
32
-
As of February 2026, Erigon is the only major client supporting debug_storageRangeAt. The following API providers support archive nodes with debug\_storageRangeAt:
33
-
-[Chainnodes](https://www.chainnodes.org/)
34
-
-[Chainstack](https://chainstack.com/)
32
+
As of February 2026, Erigon is the only major client supporting debug\_storageRangeAt. The following API providers support archive nodes with debug\_storageRangeAt:
33
+
34
+
*[Chainnodes](https://www.chainnodes.org/)
35
+
*[Chainstack](https://chainstack.com/)
35
36
36
37
### Test Configuration
37
38
@@ -129,18 +130,18 @@ By default this should be `false` . It should only be `true` temporarily if you
129
130
130
131
To be able to test execution, you need to provide the executor's runtime bytecode file.
131
132
132
-
1. Export it using the helper script in [tycho-execution/foundry/scripts/export-runtime-bytecode.js ](https://github.com/propeller-heads/tycho-execution/blob/main/foundry/scripts/export-runtime-bytecode.js)(see the [README](https://github.com/propeller-heads/tycho-execution/blob/main/foundry/scripts/README.md#export-runtime-bytecode) for instructions on how).
133
+
1. Export it using the helper script in [tycho-execution/foundry/scripts/export-runtime-bytecode.js ](https://github.com/propeller-heads/tycho-execution/blob/main/foundry/scripts/export-runtime-bytecode.js)(see the [README](https://github.com/propeller-heads/tycho-execution/blob/main/foundry/scripts/README.md#export-runtime-bytecode) for instructions on how).
133
134
2. Copy `YourExecutor.runtime.json` file to the SDK repository in [`tycho-protocol-sdk/evm/test/executors`](https://github.com/propeller-heads/tycho-protocol-sdk/tree/main/evm/test/executors) .
134
135
3. Import the file in [tycho-protocol-sdk/protocol-testing/src/execution.rs](https://github.com/propeller-heads/tycho-protocol-sdk/blob/3f31f85c157b1f860fcc9604376e2c11b1e8da0c/protocol-testing/src/execution.rs#L51) and add the corresponding entry to the `EXECUTOR_MAPPING` .
135
136
136
137
{% hint style="danger" %}
137
-
### Block Compatibility Requirements
138
+
####Block Compatibility Requirements
138
139
139
140
The `TychoRouter` requires post-Cancun blocks for execution. Testing must use block numbers after the Cancun upgrade.
140
141
{% endhint %}
141
142
142
143
{% hint style="info" %}
143
-
#### Testing during development
144
+
**Testing during development**
144
145
145
146
To test your protocol integration during development, update the `tycho-simulation` and `tycho-execution` dependencies in `protocol-testing/Cargo.toml` to point to your working branch/commit or to your local repository.
Copy file name to clipboardExpand all lines: docs/for-solvers/indexer/tycho-client/README.md
+51-1Lines changed: 51 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,10 +4,16 @@ Tycho Client helps you consume data from Tycho Indexer. It's the recommended way
4
4
5
5
In this guide, you'll learn more about the Tycho Client and the streamed data models.
6
6
7
-
{% hint style="info" %}
7
+
{% hint style="success" %}
8
8
If you are developing in Rust and is using Tycho to simulate DeFi Protocol's behavior, we recommend checking out our [simulation.md](../../simulation.md"mention") package - this tool extends Tycho Client's data streaming functionality with powerful simulation capabilities.
9
9
{% endhint %}
10
10
11
+
{% hint style="info" %}
12
+
**✨ New: Sub-Second Latency with Partial Blocks**
13
+
14
+
Tycho now provides early support for partial blocks on Base, enabling sub-second latency by streaming pre-confirmation updates. Enable via `--partial-blocks` (CLI), `partial_blocks=True` (Python), or `.enable_partial_blocks()` (Rust). See [Streaming Options](./#streaming-options) below for details.
15
+
{% endhint %}
16
+
11
17
### Key Features
12
18
13
19
***Real-Time Streaming**: Get low-latency updates to stay in sync with the latest protocol changes. Discover new pools as they’re created.
This will stream state updates for all components whose TVL exceeds the `add-tvl-threshold`. It will continue to track already added components if they drop below the `add-tvl-threshold`, only emitting a message to remove them if they drop below `remove-tvl-threshold`.
74
80
81
+
#### Streaming Options
82
+
83
+
Tycho Client supports several options to customize the data stream. These are available as CLI flags, Rust builder methods, and Python parameters. Refer to each client's documentation for usage details.
Some chains, such as [Base](https://docs.base.org/building-with-base/differences/flashblocks), support _flash blocks_ - pre-confirmation updates that contain parts of a future block before its construction is finished. When `partial blocks` is enabled, Tycho streams these incremental updates as they arrive, giving you sub-block latency. On chains without flash block support, enabling this flag is unsupported.
102
+
103
+
{% hint style="warning" %}
104
+
Block hashes in partial block messages are **unstable** — they change between partial updates and will differ from the final block hash. Do not use them as persistent identifiers or cache keys. See the [Substreams documentation](https://docs.substreams.dev/reference-material/chain-support/flashblocks#developing-for-partial-blocks) for details.
105
+
{% endhint %}
106
+
107
+
</details>
108
+
109
+
<details>
110
+
111
+
<summary><strong>Details: No State</strong></summary>
112
+
113
+
By default, the first sync message includes full component snapshots, and every subsequent block includes state deltas (reserves, balances, contract storage). If you only need to discover which components exist and which tokens they involve, such as to build a pool registry or monitor new deployments, you can disable state monitoring with `no state`. This significantly reduces message sizes, startup time, and processing overhead, as both snapshots and per-block state updates are omitted entirely.
114
+
115
+
</details>
116
+
117
+
<details>
118
+
119
+
<summary><strong>Details: Include TVL</strong></summary>
120
+
121
+
When enabled, each message includes an approximate TVL estimate for every tracked component. This is useful for building dashboards or for ranking pools by liquidity. Note that enabling this option increases startup latency: for each snapshot request, the client makes additional RPC calls to fetch token prices and compute TVL for all tracked components. This overhead scales with the number of components you're tracking.
Copy file name to clipboardExpand all lines: docs/for-solvers/simulation.md
+10Lines changed: 10 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,6 +10,12 @@ Tycho Simulation is a Rust crate that provides powerful tools for **interacting
10
10
11
11
The repository is available [here](https://github.com/propeller-heads/tycho-simulation).
12
12
13
+
{% hint style="info" %}
14
+
**✨ New: Sub-Second Latency with Partial Blocks**
15
+
16
+
Tycho now provides early support for partial blocks on Base, enabling sub-second latency by streaming pre-confirmation updates. Enable this feature with `.enable_partial_blocks()` on your `ProtocolStreamBuilder`.
17
+
{% endhint %}
18
+
13
19
## Installation
14
20
15
21
The `tycho-simulation` package is available on [Github](https://github.com/propeller-heads/tycho-simulation).
@@ -210,6 +216,10 @@ The first message received will contain states for all protocol components regis
210
216
211
217
For a full list of supported protocols and the simulation state implementations they use, see [Supported Protocols](supported-protocols.md).
212
218
219
+
{% hint style="info" %}
220
+
`ProtocolStreamBuilder` supports the same [streaming options](https://docs.propellerheads.xyz/tycho/for-solvers/indexer/tycho-client#streaming-options) as the Tycho Client, with one difference: TVL estimates are **always included** in the simulation package and cannot be disabled.
221
+
{% endhint %}
222
+
213
223
<details>
214
224
215
225
<summary>Example: Consuming the Stream and Simulating</summary>
0 commit comments