https://github.com/leosolar8/uniswap-tracker-go
High Performance Go-Fiber Microservice to Track UniswapV3 Liquidity Pools. Monitoring service for Uniswap V3 pools that continuously tracks and logs essential data points with go-ethereum, stores them in a persistent datastore (sqlite3), and provides access to the data through a REST endpoint.
https://github.com/leosolar8/uniswap-tracker-go
cryptoliquidity cryptopool ethereum go golang smart-contracts uniswap-v2 uniswap-v3
Last synced: 3 months ago
JSON representation
High Performance Go-Fiber Microservice to Track UniswapV3 Liquidity Pools. Monitoring service for Uniswap V3 pools that continuously tracks and logs essential data points with go-ethereum, stores them in a persistent datastore (sqlite3), and provides access to the data through a REST endpoint.
- Host: GitHub
- URL: https://github.com/leosolar8/uniswap-tracker-go
- Owner: LEOSOLAR8
- Created: 2025-01-12T07:28:07.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2025-09-05T16:08:04.000Z (10 months ago)
- Last Synced: 2026-01-07T04:15:24.434Z (6 months ago)
- Topics: cryptoliquidity, cryptopool, ethereum, go, golang, smart-contracts, uniswap-v2, uniswap-v3
- Language: Go
- Homepage:
- Size: 38.1 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Uniswap Tracker
High Performance Go-Fiber Microservice to Track UniswapV3 Liquidity Pools
Table of Contents
## About The Project
Monitoring service for Uniswap V3 pools that continuously tracks and logs essential data points with go-ethereum, stores them in a persistent datastore (sqlite3), and provides access to the data through a REST endpoint.
## Tech Stack
[](https://go.dev/)
[](https://www.sqlite.org/)
## Prerequisites
Download and install [Golang 1.20](https://go.dev/doc/install) (or higher).
## How To Use?
1. Navigate to `uniswap-tracker/`:
```
cd /path/to/folder/uniswap-tracker/
```
2. Open `config.json` file and fill in the `eth_client_url` field. This is useful to connect to the Ethereum Node.
Also fill in the `pool_address` of the Uniswap V3 Pool you want to track. Rest of the fields can be left to default.
Here are some details about the fields in the config file:
1. `pause_duration`: Pause duration between consecutive RPC Calls. Default is 6 seconds. (Default=6000)
2. `log_frequency`: After this many number of blocks the pool data be stored in the db. (Default=12)
3. Get dependencies:
```
go mod tidy
```
4. Run the app:
```
go run .
# use "--verbose" flag to get additional logs
go run . --verbose
```
5. Get latest data with pool_id being 1:
```
curl -X GET "http://127.0.0.1:3000/v1/api/pool/1?latest"
```
6. Get block 420 data with pool_id being 1:
```
curl -X GET "http://127.0.0.1:3000/v1/api/pool/1?block=420"
```
7. Get historic data:
```
curl -X GET "http://127.0.0.1:3000/v1/api/pool/1/historic"
```
8. In case you want to know the pool_id for all the pool addresses tracked:
```
curl -X GET "http://127.0.0.1:3000/v1/api/pool_mapping"
```
Thank you!