Snapshot Composition
The protocol state collects finalized snapshots for incremental epochs against contracts configured as data sources. These snapshots can be further composed using either one or a combination of the following strategies:
- Primitives like map-reduce, summation, filter, etc.
- A specific span of epochs to denote a time period (e.g., 24 hours).
- And anything else you can think of...!
Single Project Composition
We can compose snapshots on top of base snapshots for a single contract.
Multiple Projects Composition
As defined by the data sources configuration, the protocol state collects snapshots across multiple smart contracts that can be further composed according to the strategies outlined at the beginning of this page.
Higher-Order Aggregations
An example of this can be found in the Uniswap V2 and V3 dashboard implementation, where a trade activity aggregation dataset is generated by:
- Combining individual snapshots of trade volume and fees across multiple pair contracts.
- Spanning a specific set of epochs that satisfy a time duration (e.g., 24 hours).
Since all snapshots are finalized on an epoch basis, you can weave together snapshots across multiple contracts and accurately derive complex data compositions without approximations.
Dependency Graph
All of this is controlled by the dependency graph specified in the data market's configuration of data sources.