Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/alextes/farmhand

Service to help track yield returns
https://github.com/alextes/farmhand

Last synced: 2 days ago
JSON representation

Service to help track yield returns

Awesome Lists containing this project

README

        

# Farmhand

Provides data needed to track yield farming returns in sheets.

```
______
_.-"` `"-._
.'__ .. ._ . . '.
/ |__ /\ |_)|\/| \
/ | /``\| \| | \
; _ ;
| |_| /\ |\ || \ |
| _. | |/``\| \||_/ |
; /__`A ,_ ;
\ |= |;._.}{__ /
_.-""-|.' # '. ` `.-"{}<._
/ 1938 \ \ x `"
----/ \_.-'|--X----
-=_ | | |- X. =_
- __ |_________|_.-'|_X-X##
jgs `'-._|_|;:;_.-'` '::. `"-
.:;. .:. ::. '::.
```

## Usage
Add `farmhand.gs` to a sheet using tools -> script editor. Use `FHPRICE`, `FHCHANGE`, `FHCOINS` to get coin data.

## Ideas

- Simple APY is an extrapolation of earnings since start. In other words, take the value at t=0, take the value at t=now, and draw a line through both points to t=1y. We probably get a more accurate prediction by including data of each days value, i.e. a trend line.

## CoinGecko API Use

- We use `/coins/list` to figure out CoinGecko coin IDs.
- We use `/simple/price` to get a token price.
- We use `/coins/{id}/market_chart` to get percent changes in price over arbitrary periods.

## Caching

We'd like to not hit the CoinGecko API for every requested price. We therefore implement the following caching strategies.

- The full list of tickers is cached for 4 hours.
- A simple price is cached for 60 minutes.
- A historic price is cached indefinitely, meaning for a given day in the past, the same price change is returned until a new day begins.