Graph Tally (formerly TAP - Timeline Aggregation Protocol) is a trust-minimized payment system between Gateways and Indexers in The Graph network. It supports arbitrary data services built on Graph Horizon.
- Gateways send signed Receipts to Indexers alongside each query
- Indexers collect Receipts and periodically request aggregation
- Aggregator bundles Receipts into a signed Receipt Aggregate Voucher (RAV)
- Indexers redeem RAVs on-chain to claim payment from the Gateway's escrow
This reduces on-chain transactions from one-per-query to one-per-aggregation-period, drastically lowering costs while maintaining cryptographic guarantees via EIP-712 signatures.
A more detailed specification of the protocol can be found in the following GIPs:
- GIP-0054 - Original TAP specification
- GIP-0066 - Graph Horizon, introducing TAP v2 (renamed to Graph Tally)
These services are run by Gateway operators. See each component's README for configuration and deployment details.
| Binary | Description | Docker Image |
|---|---|---|
| graph_tally_aggregator | Aggregates Receipts into signed RAVs | |
| graph_tally_escrow_manager | Manages escrow balances for Indexer payments |
| Crate | Version |
|---|---|
| graph_tally_core | |
| graph_tally_receipt | |
| graph_tally_graph | |
| graph_tally_eip712_message |
Contributions are welcome! Please submit a pull request or open an issue to discuss potential changes. See the Contributing Guide for details.