# Crypto Profits Tracker (feat. Notion API) using Python

Crypto Boom of early '21

A crackle involving cryptocurrencies took off late 2020, and early 2021 saw a portion of it go mainstream. Cryptocurrency adoption was at all time high, with mighty bursts of bulk investing and selling.
The prices went from all time highs to dwindling states all in the matter of minutes. This was a result of non stop bidirectional flow of coins all over the globe. This forced the investors to keep up to date with extremely mutable prices toggling the state of the market.

Some wanted quick profits, some wanted to be a part of history and others went for the overhaul. Regardless of the intentions, almost all of the players had the trade sites running non-stop on all screens to catch the next dip.

Hours and hours of precious time were lost while keeping up to date with the graphs based profits (or losses) and the inconsistent nature of the the market didn't make the situation any better.

For people like me who waste a lot of time overthinking and make decisions on impulse, I wanted to try sorting this out.

🤔

The idea was to keep me updated without all the glitter and jam. I hated keeping all of the trade firms open multiple tabs and wanted to get this sorted out.

So I planned to use APIs to pull data to my console to check the prices without any other hassle.

ICYAC: Link to the template at the end of article 👇🏻

...

😲 Advent of Notion API

Then Notion launched API Integrations Beta. This immediately lit a spark in my head. Now I didn't have to leave my notion app (workspace).

👓 My Expectations

  1. Open a Notion page,
  2. Check my profits (or losses),
  3. Close the page

👉🏻 "This should take only 1 minute of my time."

Design

I want my net profit but I don't want to leave my Notion Workspace.

I had to get my net profit,

where

n is number of coins I am currently 'hodling',

m is number of coins of type j that I currently have in my wallet

I just want check 'NetProfit' and peace out.

Dashboard Setup

"Notion is incredible with its DIY databases." - We can build wonders without worrying about the code that goes into maintaining it.

I quickly set up a dashboard with the crypto coin entries as a entities. The selected attributes were used to calculate the profit.

Considering that my API Integration is setup and my updation server is running, If I had to ever invest in a new currency, I would just add an entry to this database consisting of Name, Amount Invested and Number of Coins in wallet , I should automatically see my profits taking form in the Notion Database.

Notion Integration

In order to provide edit capabilities on my crypto dashboard, I would want to provide a access token with edit scope to my updation script (here python).

To get the access token (secret key), I would want to create an internal integration. The steps to create an integration for a database can be found here

Steps to setup an Integration: [Referenced from Official Notion Doc]

  • Go to https://www.notion.com/my-integrations.
  • Click the "+ New integration" button.
  • Give your integration a name, say "My-Crypto-Updates"
  • Select the workspace where you want to install this integration.
  • Click "Submit" to create the integration.
  • Copy the "Internal Integration Token" on the next page and keep it aside

Share a database with your integration

 A user must share specific pages with an integration in order for those pages to be accessed using the API. 

Go back to the 'Crypto Dashboard' & click on the Share button and use the selector to find your integration by its name, then click Invite. Your integration now has permission to read, write, and edit the new database.

Ensure that this created integration is not used by any other database

🔥 Leveraging notion-api

Once you have a database setup in your notion workspace, you would want to have a system where the dashboard is constantly updated with latest crypto currency prices.

😄 Let's walk you through to get it done, using the 💪🏻 power of Notion API,

I am using python as it is more readable and is familiar for most. The script essentially performs 3 actions:

  1. Getting list of CryptoCoins that the user has added to the Notion database (GET~ POST)

  2. Getting prices for the CryptoCoins in List (GET)

  3. Updating the Prices to the Notion Database (PATCH)

The above functionality is implemented using python class methods.

How to use Notion API 💻

  1. Clone the GitHub Repository
  2. (After unzipping) You will find 3 files inside
  3. cd into the directory where the 3 files are present using bash shell or terminal (command prompt for windows)
  4. Install the required software dependencies by running the following command,

    
    pip3 install -r requirements.txt
    
    # use `py -m pip install -r requirements.txt` (for 
      Windows System)
    
  5. Update and save the my_variables.yml file with your notion related information, (don't include the <> characters)

    MY_NOTION_SECRET_TOKEN: <insert-your-notion-integration- 
    secret-token> # (use the secret from prior step
    
  6. Run the following command to execute python script,

    python3 read.py   
    
    # Use `py read.py` if you are on Windows!
    
  7. 🙌🏻 Watch your crypto dashboard update automatically! 🎉

Conclusion

This was another experiment of mine but it really helped me save a lot of time scrolling and clicking around Crypto Trading Firms.

If you liked this, do follow me on Twitter and let me know 😁

The Notion Template can be found here :~

20