Skip to content

npow/perpscan

Repository files navigation

perpscan

CI License: Apache-2.0

See every perp position you hold across Hyperliquid, dYdX, and GMX from a single API call.

The problem

You're running positions across Hyperliquid, dYdX v4, and GMX — but your unrealized PnL, margin usage, and liquidation risk live in three separate dashboards with no unified view. During high-volatility moves, tracking a cross-chain liquidation cascade means switching between five browser tabs. No existing tool gives you a single API for positions, liquidations, and funding rates that spans more than one protocol at a time.

Quick start

# Positions and unrealized PnL across protocols
curl "https://api.perpscan.io/v1/wallets/0xYOUR_ADDRESS?dydx_address=dydx1..."

# Cross-chain liquidation feed
curl "https://api.perpscan.io/v1/liquidations?protocols=hyperliquid,dydx&limit=50"

# Open interest and funding rate comparison
curl "https://api.perpscan.io/v1/markets?market=BTC-PERP"

Usage

Unified wallet PnL

curl "https://api.perpscan.io/v1/wallets/0xABC...?dydx_address=dydx1XYZ..."
{
  "address": "0xABC...",
  "summary": {
    "total_unrealized_pnl_usd": 4821.50,
    "total_margin_deployed_usd": 25000.00,
    "active_positions": 6,
    "protocols_active": ["hyperliquid", "dydx"]
  },
  "positions": [
    {
      "protocol": "hyperliquid",
      "market": "BTC-PERP",
      "side": "long",
      "size": 0.5,
      "entry_price": 91200.00,
      "mark_price": 93000.00,
      "unrealized_pnl_usd": 900.00,
      "leverage": 5.0,
      "liquidation_price": 74000.00
    }
  ]
}

Cross-chain liquidation feed

curl "https://api.perpscan.io/v1/liquidations?protocols=hyperliquid,dydx&market=BTC-PERP&min_size_usd=50000"

Funding rate comparison across protocols

curl "https://api.perpscan.io/v1/markets?market=ETH-PERP"

Returns open interest, mark price, and funding rates for ETH-PERP on every supported protocol, with a weighted-average aggregation.

How it works

PerpScan runs a protocol-specific indexer per DEX, normalizes all trade and position data into a unified schema, and serves it through a single REST + WebSocket API. dYdX address resolution uses a client-side sign-to-derive flow — the same mechanism dYdX's own frontend uses — so no private key is ever transmitted.

Full architecture and data model: PRD.md

Supported protocols

Protocol Chain Source Status
Hyperliquid Hyperliquid L1 S3 archive + HTTP API In progress
dYdX v4 dYdX Chain Official Indexer API In progress
GMX v2 Arbitrum The Graph subgraph Planned
Drift Solana Drift SDK Planned
Vertex Arbitrum Subgraph + HTTP API Planned

Development

git clone https://github.com/npow/perpscan
cd perpscan
pnpm install
cp .env.example .env
pnpm dev

Requires: Node.js 20+, pnpm 9+

License

Apache-2.0 — see LICENSE

About

Cross-chain perpetual DEX analytics — unified positions, liquidations, and funding rates

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages