Watchmarket is a Blockchain explorer API aggregator and caching layer. It's your one-stop-shop to get information for (almost) any coin in a common format
Watchmarket comes with three apps:
- API: RESTful API to retrieve coin info, charts, and tickers
- Worker: fetch and parse data from market APIs and store it at DB
- Swagger: API explorer
make install
make start-docker-services
make seed-db
make start
# Alternative
cd cmd/api && go run main.go
cd cmd/worker && go run main.go
We are using a asset id system. For each coin we have a unique asset_id of type string.
Asset ID consists of 2 parts and it possible to add new parts later.
Example: c714_tTWT-8C2
Where:
- 714 is id of
coin
(c for coin). We use standarts of BIP-44 slips for coins - TWT-8C2 is token id - unique identifier of token for blockchain. It could be an address for ETH for example.
A. Get coin details about Ehtereum (coin 60 according to SLIPs)
curl -v "http://localhost:8421/v1/market/info?coin=60" | jq .
curl -v "http://localhost:8421/v2/market/info/c60" | jq .
B. Get current ticker price of Ethereum in USD:
curl -v -X POST 'http://localhost:8421/v1/market/ticker' -H 'Content-Type: application/json' -d '{"currency":"USD","assets":[{"type":"coin","coin":60}]}'
curl -v -X POST 'http://localhost:8421/v2/market/tickers' -H 'Content-Type: application/json' -d '{"currency":"USD","assets":["c60","c0","c714","c714_tTWT-8C2","c459","c61"]}'
curl -v "http://localhost:8421/v2/market/ticker/c60" | jq .
curl -v "http://localhost:8421/v2/market/tickers?assets=c60,c714,c714_TWT-8C2" | jq .
C. Get price interval of Ethereum to build chart starting from 1574483028 (UNIX time)
curl -v "http://localhost:8421/v1/market/charts?coin=60&time_start=1574483028" | jq .
curl -v "http://localhost:8421/v2/market/charts/c60?time_start=1574483028" | jq .
Use make stop
to stop the services
Run make
to see a list of all available build directives.
- Install Tilt
- Install Docker+Kubernetes
- Install Helm3
- Enable Kubernetes in Docker Desktop preferences
kubectl config use-context docker-desktop
curl -fsSL https://raw.githubusercontent.com/tilt-dev/tilt/master/scripts/install.sh | bash
curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash
- Run
tilt up
to start the project - Press
space
to open browser
- Press
Ctrl+C
to stop tilt local server - Run
tilt down
to stop and clear allocated resources in local kubernetes