OzorEver wanted to track your crypto portfolio from the terminal? Here's how to build one in under 50...
Ever wanted to track your crypto portfolio from the terminal? Here's how to build one in under 50 lines of Python — with live prices, portfolio valuation, and price alerts.
You need one thing: an API key. No signup form, no email, no credit card.
curl -X POST https://agent-gateway-kappa.vercel.app/api/keys/create
{"key": "gw_abc123...", "credits": 200}
200 free calls. That's it.
pip install requests
import requests
import time
import json
API = "https://agent-gateway-kappa.vercel.app"
KEY = "gw_your_key_here" # Replace with your key
HEADERS = {"Authorization": f"Bearer {KEY}"}
# Your portfolio: token -> amount held
PORTFOLIO = {
"bitcoin": 0.5,
"ethereum": 2.0,
"solana": 50,
}
# Price alerts: token -> threshold USD
ALERTS = {
"bitcoin": {"above": 100000, "below": 50000},
"ethereum": {"above": 5000, "below": 2000},
}
def get_prices(tokens):
"""Fetch live prices for a list of tokens."""
ids = ",".join(tokens)
r = requests.get(
f"{API}/v1/crypto-feeds/prices?ids={ids}&vs=usd",
headers=HEADERS
)
return r.json()
def check_alerts(prices):
"""Check if any price alerts are triggered."""
triggered = []
for token, thresholds in ALERTS.items():
price = prices.get(token, {}).get("usd", 0)
if price and price > thresholds.get("above", float("inf")):
triggered.append(f"🔺 {token.upper()} above ${thresholds['above']:,} (now ${price:,.2f})")
if price and price < thresholds.get("below", 0):
triggered.append(f"🔻 {token.upper()} below ${thresholds['below']:,} (now ${price:,.2f})")
return triggered
def display(prices):
"""Print portfolio summary."""
total = 0
print("\n" + "=" * 50)
print(f"{'Token':<12} {'Price':>12} {'Holdings':>10} {'Value':>12}")
print("-" * 50)
for token, amount in PORTFOLIO.items():
price = prices.get(token, {}).get("usd", 0)
value = price * amount
total += value
print(f"{token:<12} ${price:>11,.2f} {amount:>10.4f} ${value:>11,.2f}")
print("-" * 50)
print(f"{'TOTAL':<12} {'':>12} {'':>10} ${total:>11,.2f}")
print("=" * 50)
alerts = check_alerts(prices)
for alert in alerts:
print(alert)
# Run once
prices = get_prices(list(PORTFOLIO.keys()))
display(prices)
python tracker.py
==================================================
Token Price Holdings Value
--------------------------------------------------
bitcoin $ 97,432.00 0.5000 $ 48,716.00
ethereum $ 3,891.00 2.0000 $ 7,782.00
solana $ 187.50 50.0000 $ 9,375.00
--------------------------------------------------
TOTAL $ 65,873.00
==================================================
Want it to update every 30 seconds? Add a loop:
while True:
prices = get_prices(list(PORTFOLIO.keys()))
print("\033[H\033[J", end="") # Clear terminal
display(prices)
print(f"\nRefreshing in 30s... (Ctrl+C to stop)")
time.sleep(30)
Want to get notified on Discord/Slack when an alert fires?
WEBHOOK_URL = "https://discord.com/api/webhooks/YOUR_WEBHOOK"
def send_alert(message):
requests.post(WEBHOOK_URL, json={"content": message})
# In your loop:
alerts = check_alerts(prices)
for alert in alerts:
send_alert(alert)
The same API key gives you access to 39 services. For crypto specifically:
/v1/crypto-feeds/prices — live prices for 500+ tokens/v1/onchain-analytics/ — on-chain data and whale tracking/v1/frostbyte-wallet/ — multi-chain wallet operations (9 chains)/v1/defi-trading/ — DEX prices and trading dataFull API catalog: api-catalog-three.vercel.app
The complete tracker is about 45 lines. Extend it with historical data, charting, or Telegram alerts. The API handles the hard part — aggregating data from multiple exchanges and chains into one endpoint.