Como criar um dashboard de análise para Hyperliquid: do zero ao uso prático

6 de mai. de 2026

Para traders ativos na Hyperliquid ou pesquisadores quantitativos, um dashboard pessoal com atualização em tempo real pode melhorar bastante a eficiência na tomada de decisão. Neste guia, você vai montar uma estrutura de monitoramento para Hyperliquid cobrindo posições, funding rate e análise de PnL, passando por coleta de dados, processamento e visualização no front-end. A proposta usa ferramentas open source e não exige assinatura paga.

Quais módulos um dashboard deve ter

Um dashboard útil para Hyperliquid normalmente inclui estes módulos principais:

  • Visão geral da conta: valor da conta, margem disponível, alavancagem efetiva e exposição total.
  • Monitoramento de posições: ativo, direção long/short, tamanho da posição, preço de entrada, PnL não realizado e liquidação estimada quando aplicável.
  • Funding rate: histórico de taxas de financiamento por ativo, ranking de maiores taxas e alertas por limite.
  • Mercado em tempo real: últimos trades, order book, preço de marcação e variação recente.
  • Análise de PnL: lucro/prejuízo por posição, por ativo e por período.
  • Alertas operacionais: mudanças bruscas de funding, aumento de exposição, queda de margem ou eventos de mercado relevantes.

A documentação oficial da Hyperliquid lista todos os tipos disponíveis de Info Endpoint.

Escolha da stack técnica

Uma stack open source recomendada:

  • Coleta de dados no back-end: Python + requests, ou aiohttp para coleta assíncrona.
  • Armazenamento de dados: SQLite para uso local leve, ou PostgreSQL + TimescaleDB para séries temporais.
  • Framework de dashboard: Grafana, que é robusto e funciona bem com fontes SQLite/Postgres, ou Streamlit, que é nativo em Python e ótimo para protótipos rápidos.
  • Atualização em tempo real: WebSocket API da Hyperliquid.

Para validar uma ideia rapidamente, o Streamlit costuma ser a melhor opção. Para monitoramento mais próximo de produção, com histórico, alertas e colaboração entre pessoas, Grafana + TimescaleDB tende a ser mais estável.

Implementando a camada de coleta de dados

Coleta do estado da conta

import requests
import time

ENDPOINT = "https://api.hyperliquid.xyz/info"

def fetch_account_state(address: str) -> dict:
    payload = {"type": "clearinghouseState", "user": address}
    r = requests.post(ENDPOINT, json=payload, timeout=10)
    r.raise_for_status()
    return r.json()

def fetch_market_data() -> dict:
    payload = {"type": "metaAndAssetCtxs"}
    r = requests.post(ENDPOINT, json=payload, timeout=10)
    r.raise_for_status()
    return r.json()

Coleta em lote de funding rates

def fetch_all_funding_rates(coins: list, days: int = 1) -> dict:
    end_ms = int(time.time() * 1000)
    start_ms = end_ms - days * 24 * 3600 * 1000
    results = {}

    for coin in coins:
        payload = {
            "type": "fundingHistory",
            "coin": coin,
            "startTime": start_ms,
        }
        r = requests.post(ENDPOINT, json=payload, timeout=10)
        if r.ok:
            results[coin] = r.json()

    return results

Assinatura em tempo real via WebSocket

Para exibir order book ou últimos negócios em tempo real, use a interface WebSocket da Hyperliquid:

import asyncio
import websockets
import json

WS_URL = "wss://api.hyperliquid.xyz/ws"

async def subscribe_trades(coin: str):
    async with websockets.connect(WS_URL) as ws:
        sub_msg = {
            "method": "subscribe",
            "subscription": {"type": "trades", "coin": coin}
        }
        await ws.send(json.dumps(sub_msg))

        while True:
            msg = await ws.recv()
            data = json.loads(msg)
            print(data)

asyncio.run(subscribe_trades("BTC"))

Os tipos de assinatura WebSocket estão descritos na seção WebSocket da documentação oficial da Hyperliquid.

Criando a interface do dashboard com Streamlit

import streamlit as st
import pandas as pd
import plotly.express as px

st.set_page_config(page_title="Hyperliquid Dashboard", layout="wide")

ADDRESS = st.sidebar.text_input("Digite o endereço da carteira", value="0x...")

if ADDRESS.startswith("0x"):
    state = fetch_account_state(ADDRESS)
    margin = state.get("marginSummary", {})

    col1, col2, col3 = st.columns(3)

    col1.metric("Valor da conta (USDC)", f"${float(margin.get('accountValue', 0)):,.2f}")
    col2.metric("Margem disponível", f"${float(margin.get('withdrawable', 0)):,.2f}")
    col3.metric(
        "Alavancagem",
        f"{float(margin.get('totalRawUsd', 0)) / max(float(margin.get('accountValue', 1)), 1):.1f}x"
    )

    positions = state.get("assetPositions", [])

    if positions:
        pos_data = []

        for p in positions:
            pos = p.get("position", {})
            pos_data.append({
                "Ativo": pos.get("coin"),
                "Direção": "Long" if float(pos.get("szi", 0)) > 0 else "Short",
                "Tamanho da posição": abs(float(pos.get("szi", 0))),
                "PnL não realizado": float(pos.get("unrealizedPnl", 0)),
                "Preço de entrada": float(pos.get("entryPx", 0)),
            })

        df = pd.DataFrame(pos_data)
        st.dataframe(df)

        fig = px.bar(
            df,
            x="Ativo",
            y="PnL não realizado",
            color="Direção",
            title="PnL não realizado por posição"
        )
        st.plotly_chart(fig, use_container_width=True)

Esse exemplo é suficiente para criar uma primeira tela com métricas essenciais da conta e uma tabela de posições. A partir daí, você pode adicionar painéis para funding rate, histórico de PnL, exposição por ativo e alertas.

Criando um dashboard de produção com Grafana

Se você precisa de colaboração entre várias pessoas, dados históricos e alertas persistentes, a abordagem com Grafana é mais indicada:

  1. Inicie o Grafana localmente:

    docker run -d -p 3000:3000 grafana/grafana
    
  2. Configure uma fonte de dados com PostgreSQL + TimescaleDB.

  3. Escreva um script Python agendado para gravar os dados no banco a cada minuto.

  4. Crie painéis no Grafana usando consultas SQL.

  5. Configure regras de alerta, por exemplo, para enviar uma notificação quando o funding rate passar de determinado limite.

A documentação oficial do Grafana oferece guias completos para criação e configuração de painéis.

OneKey Wallet: a base de segurança por trás do dashboard

O endereço informado no dashboard é usado apenas para consulta, então a leitura dos dados não exige assinatura de transações. Mas, quando você decide agir com base nos sinais do monitoramento, a segurança da chave privada se torna crítica.

A OneKey Wallet armazena suas chaves privadas em um chip físico de segurança. Mesmo que o computador esteja comprometido por malware, a chave privada não deve ser extraída do dispositivo.

Com OneKey Perps, você pode identificar um sinal no seu dashboard e, em seguida, executar operações de perpétuos na Hyperliquid com assinatura por hardware. Esse fluxo combina análise de dados e execução com uma camada adicional de segurança operacional.

Baixe ou experimente a OneKey e use o OneKey Perps como um caminho prático para negociar perpétuos com mais controle sobre custódia e assinatura. Use sempre com gestão de risco e sem tratar qualquer métrica do dashboard como garantia de resultado.

Perguntas frequentes

Q1: A Hyperliquid oferece um plugin oficial de fonte de dados para Grafana?

Atualmente, não há um plugin oficial de Grafana para Hyperliquid. Ainda assim, você pode consultar a API da Hyperliquid usando uma fonte JSON API ou o plugin Infinity do Grafana, ou então gravar os dados em um banco intermediário e conectar o Grafana a esse banco.

Q2: A conexão WebSocket pode cair sozinha?

Sim. Conexões WebSocket podem expirar após longos períodos de inatividade ou por instabilidade de rede. O ideal é implementar heartbeat com ping/pong e lógica de reconexão automática para manter a coleta de dados contínua.

Q3: O dashboard consegue mostrar dados de outras contas?

Sim. Os dados de contas na Hyperliquid são públicos on-chain. Basta informar um endereço Ethereum válido para consultar. Isso também significa que os seus próprios dados ficam visíveis publicamente.

Q4: Como configurar alertas para funding rate anormal?

Você pode adicionar uma condição no script de coleta. Por exemplo, quando o funding rate ultrapassar um limite definido, como 0,1% por hora, o script pode enviar um alerta por Telegram Bot API ou e-mail. O Grafana também possui recursos nativos de alerta.

Q5: Streamlit ou Grafana: qual é melhor para iniciantes?

Streamlit é mais simples para quem já usa Python e quer criar um protótipo rapidamente, muitas vezes com poucas dezenas de linhas de código. Grafana é melhor para operação contínua, colaboração e alertas, mas tem uma curva de aprendizado um pouco maior.

Aviso de risco

Este artigo é um tutorial técnico e não constitui recomendação de investimento, consultoria financeira, jurídica ou fiscal. O mercado de criptoativos é altamente volátil, e os dados exibidos por um dashboard servem apenas como referência operacional. Eles não preveem retornos futuros nem eliminam riscos. Tome decisões de trading somente depois de entender os riscos envolvidos e definir uma gestão de risco adequada.

Proteja sua jornada criptográfica com o OneKey

View details for Comprar OneKeyComprar OneKey

Comprar OneKey

A carteira de hardware mais avançada do mundo.

View details for Baixar aplicativoBaixar aplicativo

Baixar aplicativo

Alertas de golpe. Todas as moedas suportadas.

View details for OneKey SifuOneKey Sifu

OneKey Sifu

Clareza Cripto—A uma chamada de distância.