Zum Hauptinhalt springen
Zurück zu den Beispiel-Apps

Hyperliquid-Portfolio-Tracker

Entwickeln Sie einen Echtzeit-Portfolio-Tracker, der mithilfe des Hyperliquid-Info-Endpunkts von Quicknode die unbefristeten Positionen, den PnL, die Margin-Auslastung und die Bestände im Vault von Hyperliquid überwacht.

Frontend-Framework/Bibliothek:
Reagieren
Sprache:
TypeScript
Build-Tool/Entwicklungsserver:
Vite
Vorschau der Beispiel-App

Introduction

As a perpetual trader on Hyperliquid, having a comprehensive portfolio tracker is essential for monitoring your positions, PnL, and margin utilization in real-time. This guide shows you how to build a powerful portfolio tracker that monitors any Hyperliquid wallet using Quicknode's Hyperliquid info endpoint.

Diese Beispiel-App dient ausschließlich zu Bildungs- und Demonstrationszwecken.


Weitere Ressourcen

For an in-depth guide on implementing this portfolio tracker from scratch, check out our comprehensive guide on Quicknode


Funktionen


  • Live Position Tracking: Real-time updates on perpetual positions with PnL
  • Portfolio Analytics: Account value, margin usage, and risk metrics
  • Vault Management: Track vault value and lock-up schedules
  • Spot Holdings: Monitor token balances and USD values
  • Search For Any Wallet: Switch between different trading accounts

Tech Stack

Frontend


  • React + TypeScript + Tailwind CSS + shadcn/ui & Radix UI
  • Zeigt Handelsdaten in einer responsiven Benutzeroberfläche an
  • Die Datenbank wird alle 1000 ms auf Aktualisierungen überprüft
  • Erledigt den Wechsel der Wallet über Datenbankabfragen

Backend


  • Node.js indexer with 500ms polling interval
  • Ruft Daten von 5 verschiedenen Hyperliquid-Endpunkten ab
  • Speichert Daten in PostgreSQL unter Berücksichtigung der korrekten Genauigkeit
  • Verarbeitet Anfragen zum Wechseln der Wallet vom Frontend aus

Überlegungen zur Umfrage

In dieser Anleitung werden kurze Abfrageintervalle (500 ms für den Indexer, 1000 ms für das Frontend) verwendet, um Echtzeit-Aktualisierungen zu veranschaulichen. Sie können diese Intervalle bei Bedarf anpassen:

  • Frontend: src/Dashboard.tsx Zeilen 260–264 – Ändere die 1000 Wert in:
    const interval = setInterval(async () => {
    await fetchData(currentWallet);
    }, 1000);
  • Indexer: src/indexer/indexer.ts Zeilen 623–630 – Ändere die 500 Wert in:
    setInterval(async () => {
    await indexer.checkForWalletSwitch();
    await indexer.indexData();
    }, 500);

Überwachen Sie Ihre Quicknode- und Supabase-Nutzung, um die Kosten zu optimieren.

Datenbank


  • Supabase PostgreSQL
  • Speichert Handelsdaten in 6 Tabellen mit finanzieller Genauigkeit (DEZIMAL Typen)
  • Wickelt die Kommunikation zwischen Frontend und Indexer über wallet_switch_requests Tabelle
  • Verwendet Eindeutigkeitsprüfungen, um doppelte Einträge zu verhindern

Datenquelle


  • Hyperflüssigkeit Info Endpunkt über Quicknode
  • Stellt Kontodaten, Positionen, Tresorbestände, Spot-Guthaben und Bevollmächtigungen bereit
  • Gibt Daten im JSON-Format zurück, wobei Zahlen als Zeichenfolgen mit genauer Angabe der Genauigkeit dargestellt werden
  • Zugriff über HTTP-POST-Anfragen mit dem Parameter „Wallet-Adresse“

Architektur


                    ┌─────────────────┐
│ Perp Trader │
└─────────┬───────┘
│ 1. Wallet-Adresse eingeben

┌─────────────────┐
│ React-Dashboard │◄─────────────────┐
└─────────┬───────┘ │
│ 2. Anfrage speichern │ 6. Daten lesen und anzeigen
▼ │
┌─────────────────┐ │
│ Supabase │◄─────────────────┤
│ PostgreSQL │ │
└─────────┬───────┘ │
│ 3. Anfrage erkennen │ 5. Daten speichern
▼ │
┌─────────────────┐ │
│ Indexer │──────────────────┘
│ (500 ms Abfrage) │
└─────────┬───────┘
│ 4. HyperCore-Daten abrufen

┌─────────────────┐
│ Quicknode │
│ Hyperliquid │
│ Endpunkt │
└─────────────────┘

Der Portfolio-Tracker besteht aus drei Komponenten, die über eine PostgreSQL-Datenbank miteinander kommunizieren. Der Indexer ruft Daten aus Hyperliquid ab, speichert sie in der Datenbank, und das Frontend fragt die Datenbank zur Anzeige ab.


Voraussetzungen


  • Quicknode account with Hyperliquid endpoint
  • Supabase-Konto
  • Node.js v20+, npm und ein Code-Editor
  • Grundlegende Konzepte zu React/TypeScript und REST-APIs
  • Grundlegende SQL-Konzepte
  • Optional: Ununterbrochenes Handelserlebnis mit Hyperliquid
Why Quicknode Endpoint?

Quicknode stellt dedizierte Hyperliquid-API-Endpunkte bereit, sodass Sie keinen eigenen Knoten betreiben müssen:

  • Vorkonfigurierte Endgeräte, die keine Einrichtung erfordern
  • Übernimmt die Verbindungsverwaltung und das Failover
  • Direkter Zugriff auf HyperCore-Daten ohne zusätzliche Infrastruktur

Quick Start

1. Clone the Repository

git clone https://github.com/quiknode-labs/qn-guide-examples.git
cd qn-guide-examples/sample-dapps/hyperliquid-portfolio-tracker

2. Setup Environment File

cp .env.example .env

3. Supabase Database Setup


  1. Create a new Supabase account or login at supabase.com

  2. Create a new project, then click the Connect button

Connect Button


  1. In the App Frameworks section, select Reagieren and change unter Verwendung von zu Vite

Select React


  1. Copy the VITE_SUPABASE_URL und VITE_SUPABASE_ANON_KEY values to your .env file 1
  2. Navigieren Sie zu der SQL-Editor, paste the content of supabase/schema.sql, then click Run

SQL-Editor

This creates all necessary tables and functions for storing and fetching trading data.

4. Quicknode Setup


  1. Create a free trial Quicknode account
  2. Create a Hyperliquid RPC endpoint
  3. Copy the endpoint URL and paste it to your .env Datei
Important

Stellen Sie sicher, dass Sie die vorhandene /evm und füge hinzu /info am Ende Ihrer Quicknode-Endpunkt-URL, um Zugriff auf die Hyperliquid-Info-Endpunkte zu erhalten.

5. Start the Application

npm install && npm run dev:both

This runs both the frontend application and the indexer. Open your browser at http://localhost:5173 and use the demo wallet button to see the tracker in action.


Fehlerbehebung


If the indexer stops responding or no data appears after wallet search, simply re-run the indexer:

npm run dev:indexer

Then search again by inputting a valid wallet address.


Vorschau

Startseite

Startseite

Dashboard View

Dashboard View


Mehr erfahren



Future Improvements


  • Liquidation Warnings: Alert users when positions approach dangerous margin levels
  • Performance Charts: Track portfolio performance over time with Recharts
  • Price Alerts: Send notifications using your favorite notification service
  • Multi-Wallet Dashboard: Compare multiple trading accounts side-by-side

Beiträge & Feedback
Wir würden uns sehr über Ihr Feedback freuen und begrüßen jeden Beitrag zu dieser Beispiel-App!
Um Probleme zu melden oder Feedback zu geben, eröffne ein GitHub-Issue im qn-Anleitung-Beispiele Repository.
Um einen Beitrag zu leisten, gehen Sie bitte wie folgt vor:
  1. Das Repository forken
  2. Erstelle einen Feature-Branch:
    git checkout -b feature/amazing-feature
  3. Speichere deine Änderungen:
    git commit -m "Tolle Funktion hinzufügen"
  4. Deinen Branch pushen:
    git push origin feature/amazing-feature
  5. Erstelle einen Pull Request.