whittlem / coinbaseprotracker

Coinbase Pro Portfolio Tracker
Apache License 2.0
40 stars 22 forks source link

Coinbase Pro Portfolio Tracker

Introduction

Follow me on Medium for updates! https://whittle.medium.com

Prerequisites

Installation

git clone https://github.com/whittlem/coinbaseprotracker
cd coinbaseprotracker
python3 -m pip install -r requirements.txt

Configuration

Create a config.json:

* Add 1 or more portfolios with a single market

{
    "<portfolio_name>" : {
        "api_key" : "<coinbase_pro_api_key>",
        "api_secret" : "<coinbase_pro_api_secret>",
        "api_passphrase" : "<coinbase_pro_api_passphrase>",
        "config" : {
            "base_currency" : "<base_symbol>",
            "quote_currency" : "<quote_symbol>"
        "}
    },
    "<portfolio_name>" : {
        "api_key" : "<coinbase_pro_api_key>",
        "api_secret" : "<coinbase_pro_api_secret>",
        "api_passphrase" : "<coinbase_pro_api_passphrase>",
        "config" : {
            "base_currency" : "<base_symbol>",
            "quote_currency" : "<quote_symbol>"
        "}
    }
}

* Add 1 or more portfolios with multiple markets

{
    "<portfolio_name>" : {
        "api_key" : "<coinbase_pro_api_key>",
        "api_secret" : "<coinbase_pro_api_secret>",
        "api_passphrase" : "<coinbase_pro_api_passphrase>",
        "config" : [{
            "base_currency" : "<base_symbol>",
            "quote_currency" : "<quote_symbol>"
        "}],[{
            "base_currency" : "<base_symbol>",
            "quote_currency" : "<quote_symbol>"
        "}]
    }
}

* Notice that to add multiple markets you convert the 'config' from a dictionary to a list.

<portfolio_name> - Coinbase Pro portfolio name E.g. "Default Portfolio"
<coinbase_pro_api_key> - Coinbase Pro API key for the portfolio
<coinbase_pro_api_secret> - Coinbase Pro API secret for the portfolio
<coinbase_pro_api_passphrase> - Coinbase Pro API passphrase for the portfolio
<base_symbol> - Base currency E.g. BTC
<quote_symbol> - Base currency E.g. GBP

whittlem@Michaels-iMac-2 coinbaseprotracker % /usr/local/opt/python@3.9/bin/python3 /Users/whittlem/Documents/Repos/Python/coinbaseprotracker/coinbaseprotracker.py
Create a config.json:

* Add 1 or more portfolios with a single market

{
    "<portfolio_name>" : {
        "api_key" : "<coinbase_pro_api_key>",
        "api_secret" : "<coinbase_pro_api_secret>",
        "api_passphrase" : "<coinbase_pro_api_passphrase>",
        "config" : {
            "base_currency" : "<base_symbol>",
            "quote_currency" : "<quote_symbol>"
        "}
    },
    "<portfolio_name>" : {
        "api_key" : "<coinbase_pro_api_key>",
        "api_secret" : "<coinbase_pro_api_secret>",
        "api_passphrase" : "<coinbase_pro_api_passphrase>",
        "config" : {
            "base_currency" : "<base_symbol>",
            "quote_currency" : "<quote_symbol>"
        "}
    }
}

* Add 1 or more portfolios with multiple markets

{
    "<portfolio_name>" : {
        "api_key" : "<coinbase_pro_api_key>",
        "api_secret" : "<coinbase_pro_api_secret>",
        "api_passphrase" : "<coinbase_pro_api_passphrase>",
        "config" : [{
            "base_currency" : "<base_symbol>",
            "quote_currency" : "<quote_symbol>"
        "}],[{
            "base_currency" : "<base_symbol>",
            "quote_currency" : "<quote_symbol>"
        "}]
    }
}

* Notice that to add multiple markets you convert the 'config' from a dictionary to a list.

<portfolio_name> - Coinbase Pro portfolio name E.g. "Default Portfolio"
<coinbase_pro_api_key> - Coinbase Pro API key for the portfolio
<coinbase_pro_api_secret> - Coinbase Pro API secret for the portfolio
<coinbase_pro_api_passphrase> - Coinbase Pro API passphrase for the portfolio

<base_symbol> - Base currency E.g. BTC
<quote_symbol> - Base currency E.g. GBP

Run it

% python3 coinbaseprotracker.py

Docker

Build

docker build -t coinbase-pro-tracker .

Run

docker run --name tracker --rm coinbase-pro-tracker