Rangeview

Rangeview

October 26, 2026 (1d ago)

Solana
Raydium
DeFi
Next.js
TypeScript

Einleitung

Rangeview ist ein read-only Dashboard, das Raydium-Positionen mit konzentrierter Liquidität (CLMM) auf Solana Mainnet übersichtlich darstellt. Es verbindet Positions- und Pooldaten mit Transaktionshistorie, historischen USD-Kursen und konfigurierbaren Preisalarmen. So lassen sich aktuelle Positionen, Gebühren, Renditekennzahlen und der Abstand zum gewählten Preisbereich in einer Oberfläche nachvollziehen.

Ich habe Rangeview entwickelt, um die Informationen einer CLMM-Position an einem Ort zusammenzuführen: Wo steht der aktuelle Preis im Verhältnis zum Bereich? Welche Liquidität und Gebühren sind vorhanden? Was lässt sich aus der Historie über Einzahlungen, Auszahlungen und das Ergebnis ableiten? Die Anwendung beantwortet diese Fragen, ohne selbst in die Position einzugreifen.

Warum ich Rangeview gebaut habe

Eine einzelne Positionsansicht zeigt meist nur einen Teil des Bildes. Für die laufende Beobachtung braucht man den aktuellen Poolpreis und die Grenzen der eigenen Position. Für eine aussagekräftige Gewinn- und Verlustrechnung kommen historische Einzahlungen, zurückgezahltes Kapital, bereits eingesammelte Gebühren und USD-Kurse zum jeweiligen Transaktionszeitpunkt hinzu. Diese Daten stammen aus unterschiedlichen Quellen und müssen positionsbezogen zusammengeführt werden.

Rangeview bündelt diese Arbeit in einem Dashboard. Ein besonderer Schwerpunkt liegt auf nachvollziehbaren Zahlen: Gebühren und zurückgezahltes Kapital werden getrennt behandelt, fehlende Historie wird nicht als null ausgegeben, und Schätzungen werden als solche kenntlich gemacht. Die Anwendung ist ein unabhängiges Projekt und kein offizielles Raydium-Produkt.

Für wen die Anwendung gedacht ist

Rangeview richtet sich an Menschen, die Raydium-CLMM-Positionen auf Solana Mainnet beobachten und deren aktuelle Werte und historische Entwicklung besser verstehen möchten. Unterstützt werden diese Positionen; das Dashboard bildet weder sämtliche Solana-Assets noch andere Pooltypen oder Protokolle ab.

Die Wallet lässt sich über kompatible Solana-Wallet-Standard-Anbieter wie Phantom, Solflare oder Backpack verbinden. Alternativ kann eine öffentliche Wallet-Adresse manuell eingegeben werden. Die Verbindung dient ausschließlich dazu, die öffentliche Adresse für die Positionsabfrage zu erhalten. Rangeview fordert keine Signaturen an, erstellt keine Transaktionen und verarbeitet weder Private Keys noch Seed Phrases. Einzahlungen, Abhebungen, Range-Anpassungen und das Einsammeln von Gebühren erfolgen weiterhin außerhalb der Anwendung.

Was das Dashboard zeigt

Positionen, Preise und Ranges

Das Dashboard listet die erkannten Positionen einzeln auf. Mehrere Positionen im selben Pool bleiben eigenständige Positionen. Pro Position werden unter anderem Tokenpaar, Pool, aktueller Preis, untere und obere Preisgrenze sowie der Status In range, Out of range, Closed oder – wenn Daten fehlen – Unknown dargestellt. Eine Range-Anzeige ordnet den Preis relativ zu den Grenzen ein.

Die Übersicht ist für große und kleine Bildschirme aufbereitet: Auf dem Desktop stehen Tabellenansicht und deren Sortier-, Filter- und Spaltenoptionen zur Verfügung; auf mobilen Geräten erscheinen kompakte Positionskarten. Kennzahlen und Detailansichten erklären ihre Berechnung. Positionsaktionen erlauben unter anderem das gezielte Aktualisieren und den Export einer Position als JSON-Datei.

Portfolio- und Positionskennzahlen

Für verfügbare Daten zeigt Rangeview aktuelle Liquidität und nicht eingesammelte Gebühren. Historische Kennzahlen ergänzen Einzahlungen, Kapitalabhebungen und bereits eingesammelte Gebühren. Daraus wird der Gewinn oder Verlust berechnet:

aktuelle Liquidität
+ nicht eingesammelte Gebühren
+ eingesammelte Gebühren
+ zurückgezahltes Kapital
− sämtliche Einzahlungen
= Gewinn / Verlust

Historische Zahlungsflüsse werden zum USD-Kurs des jeweiligen Transaktionszeitpunkts bewertet. Transaktions- und Netzwerkkosten sind in dieser Rechnung nicht enthalten. Die Portfolio-Zusammenfassung aggregiert die aktuell geladenen Positionen. Sie rekonstruiert keine Positionen, die nicht mehr geladen werden, und ist daher kein vollständiger Lebenszeit-Gewinn der gesamten Wallet.

Gebühren und P/L sind getrennt nachvollziehbar. Zurückgezahltes Kapital wird nicht als Gebühr gezählt. Der Vergleich der aktuellen Liquidität mit den Net Deposits (Einzahlungen abzüglich Kapitalabhebungen) ist eine eigene Kennzahl und enthält keine Gebühren. Das Portfolio-P/L bezieht dagegen eingesammelte Gebühren ein. So können Gebühren einen Rückgang des Liquiditätswerts ausgleichen, ohne in der Darstellung doppelt zu zählen.

Lifetime Fee APR und geschätzte Einnahmen

Wenn Historie und Gebührensnapshot vollständig sind, berechnet Rangeview einen positionsbezogenen Lifetime Fee APR. Die Rechnung berücksichtigt die zeitgewichtete Kapitalbindung: Einzahlungen, Teilabhebungen und Zeiträume ohne Liquidität beeinflussen die Kapital-Zeit-Basis. Der Wert beschreibt historische Gebühren relativ zur gebundenen Zeit und ist keine Renditeprognose.

Eine zusätzliche Estimated Earnings-Darstellung projiziert den verfügbaren APR auf die aktuelle Liquidität und zeigt einfache Tages-, Monats- und Jahreswerte ohne Zinseszins. Bei Positionen außerhalb ihrer Range ist dies ausdrücklich ein Szenario für den Fall einer Rückkehr in die Range; außerhalb des Bereichs fallen aktuell keine CLMM-Handelsgebühren an. APR und Einnahmenschätzungen sind keine garantierten Erträge.

Aktualisierung und Datenfrische

Positionsdetails werden beim ersten Laden und bei einer Detailaktualisierung abgerufen. Aktive Positionen werden bei manueller oder automatischer Aktualisierung neu geladen; neu erkannte Schließungen werden ebenfalls berücksichtigt. Bereits geschlossene Positionen behalten ihre gespeicherten Details und können einzeln aktualisiert werden. Eine separate, global einstellbare Prüfung aktualisiert Preis und Range standardmäßig alle fünf Minuten; auswählbar sind Intervalle von zehn Sekunden bis zu einem Tag.

Rangeview streamt keine Live-Daten. Datenquellen können verzögert sein, und fehlgeschlagene Abfragen können dazu führen, dass zuvor geladene Werte erhalten bleiben. Die Oberfläche unterscheidet deshalb zwischen dem erfolgreichen Abruf der Positionsdetails und der jüngsten Preis- und Range-Prüfung.

Alarme und Benachrichtigungen

Die lokalen Range-Alarme können melden, wenn eine Position ihre Range verlässt, wieder in den Bereich zurückkehrt oder bei einer späteren Prüfung weiterhin außerhalb liegt. Nutzer können Ereignisse und ein globales Prüfintervall konfigurieren. Für Alarme gibt es verschiedene Sounds und Stummschaltung; je nach Ereignis lässt sich die Wiedergabe einmalig oder bis zur Bestätigung wiederholen. Ein gemeinsamer Alarmdialog zeigt die betroffene Position und den Preisstatus. Das Bestätigen beendet den aktuellen Alarm, während die Überwachung weiterläuft.

Lokale Prüfungen und Sounds benötigen einen geöffneten Rangeview-Tab. Browser können Timer im Hintergrund verzögern oder Audiowiedergabe einschränken. System-Benachrichtigungen setzen Browser-Unterstützung und eine erteilte Berechtigung voraus. Der Ablauf lässt sich mit einer ausdrücklich als Test markierten Benachrichtigung prüfen.

Optional kann ein separat konfigurierter Web-Push-Dienst Benachrichtigungen auch bei geschlossenem Tab versenden. Dafür sind unter anderem VAPID-Konfiguration, ein Push-Speicher (beispielsweise Upstash Redis) sowie die Unterstützung und Berechtigung des Browsers erforderlich. Ohne diese Serverkonfiguration bleibt die Überwachung lokal im geöffneten Tab.

Datenquellen und technische Umsetzung

Rangeview ist mit Next.js und TypeScript umgesetzt. Im Browser liegen Wallet-Auswahl, Darstellung, Tabelleninteraktion, lokale Einstellungen und Alarmsteuerung. Der Server fragt Positions- und Statusdaten über die Raydium-SDK-Integration und einen Solana-RPC-Endpunkt ab. Raydium liefert Poolinformationen und aktuelle Tokenpreise.

Für die historische Auswertung ruft Rangeview Transaktionen je persönlicher Positionsadresse über Solana JSON-RPC ab und wertet Raydium-CLMM-Ereignisse aus. So können Einzahlungen, Kapitalabhebungen und Gebühreneinsammeln einer konkreten Position zugeordnet werden. Birdeye liefert historische Tokenpreise zur USD-Bewertung dieser Zahlungsflüsse. Historische Daten und Preise werden zwischengespeichert und anhand neuer Transaktionen aktualisiert.

Der Datenfluss ist auf die Wallet-Adresse begrenzt: Das Frontend sendet die öffentliche Adresse an die Positions-API; die Serverseite validiert sie und lädt die zugehörigen Positionen. API-Schlüssel für RPC und historische Preise können serverseitig eingerichtet oder in den Einstellungen als benutzerspezifische Schlüssel hinterlegt werden. Die Anwendung nutzt React Query für Lade- und Cachezustände. Position-Snapshots und Einstellungen können im Browser gespeichert werden, damit sie nach einem erneuten Laden wieder verfügbar sind.

Datenschutz und bewusste Grenzen

Wallet- und Positionsdaten sind öffentliche Blockchain-Daten. Die manuell eingegebene Adresse, Darstellungsoptionen und lokale Alarmkonfigurationen können im Browser gespeichert werden. Die optionale Push-Funktion verarbeitet zusätzlich die Browser-Push-Subscription gemäß ihrer Serverkonfiguration. Die Privacy-Seite des Projekts beschreibt diese Datenflüsse.

Eine historische P/L-Berechnung setzt Archivzugriff auf Solana-Transaktionen, vollständige Raydium-Ereignisse, Tokenmetadaten und historische USD-Preise voraus. Fehlen diese Grundlagen, zeigt Rangeview Unavailable, statt einen scheinbar exakten Wert mit fehlenden Daten zu berechnen. Aktuelle Liquidität, Range-Status und verfügbare nicht eingesammelte Gebühren können davon unabhängig angezeigt werden.

Auch Kennzahlen haben einen klaren Umfang: Netzwerk- und Transaktionskosten, Farming-Rewards und nicht mehr geladene Positionen sind nicht Teil der beschriebenen P/L-Berechnung. Wertangaben können unvollständig oder veraltet sein und dienen der Information, nicht als Anlageberatung.

Öffentliche Seiten und installierbare Web-App

Neben dem Dashboard enthält Rangeview eine öffentliche Einstiegsseite mit einer als Beispiel gekennzeichneten Vorschau, häufigen Fragen und Links zu erklärenden Guides. Die Guides erläutern Range-Überwachung sowie die Gewinn- und Verlustrechnung. Info-, Datenschutz- und Impressumsseiten machen Datenquellen, Produktumfang und Verantwortlichkeit zugänglich.

Für Auffindbarkeit und Weitergabe setzt das Projekt Metadaten, kanonische URLs, strukturierte Daten, Sitemap und robots-Regeln ein. Öffentliche Inhalte können Suchmaschinen und unterstützten KI-Crawlern bereitgestellt werden; API-Routen werden für Crawler gesperrt. Dashboard-Seiten sind keine öffentlichen Marketinginhalte. Eine Web-App-Manifest-Datei, Icons und ein Service Worker bilden die Grundlage für eine installierbare Progressive Web App und Web Push.

Was ich dabei entwickelt habe

Rangeview verbindet eine DeFi-spezifische Datenintegration mit einer erklärenden Oberfläche. Zu den technischen Schwerpunkten gehören die positionsgenaue Auswertung historischer Ereignisse, die Bewertung von Zahlungsflüssen zu historischen Preisen, die Trennung von Gebühren und Kapitalbewegungen, die Behandlung unvollständiger Daten sowie zwei getrennte Aktualisierungspfade für Positionsdetails und Statusprüfungen. Hinzu kommen Tabellen- und Mobilansichten, lokale Alarmsteuerung, optionale Push-Infrastruktur, anpassbare RPC- und Birdeye-Zugänge sowie öffentliche Dokumentations- und SEO-Seiten.

Das Ergebnis ist ein spezialisiertes Werkzeug, das Raydium-CLMM-Positionen lesbar macht und seine Kennzahlen samt Voraussetzungen erklärt – bei einer bewusst read-only gehaltenen Interaktion mit der Wallet.

Projektinformationen

  • Projekt: Rangeview
  • Typ: Read-only Dashboard und installierbare Web-App
  • Bereich: Raydium CLMM auf Solana Mainnet
  • Technologien: Next.js, React, TypeScript, Raydium SDK, Solana Web3.js, TanStack Query und TanStack Table
  • Datenquellen: Solana JSON-RPC, Raydium und Birdeye (historische Preise)
  • Hinweis: Unabhängiges Projekt, kein offizielles Raydium-Produkt