Stop Building Crypto Data Pipelines.
Start Trading.
AlgoTick is the outsourced quantitative engineering team for AI Agents and Delta-Neutral Quants. We normalize the firehoses, calculate the Greeks, and maintain the state — so you can just call the API.
You could build this yourself. But why would you?
Connecting to a free WebSocket is easy. Building a trading business on top of one is a nightmare.
/v3/signals/gamma-exposure and get a single number.We handle the infrastructure. You get the Alpha.
AlgoTick's Go-based data citadel sits in Frankfurt, ingesting, deduplicating, and mathematically transforming the heaviest data streams in crypto.
/v3/signals/gamma-exposure and get the
live GEX integer. Hit /v4/signals/liquidity-voids for orderbook thin-zone detection.
Hit /v4/signals/mempool-congestion for Ethereum gas + MEV pressure.wss://ws.algotick.dev connection.
Every message follows our Universal Payload schema. No dropped frames.SELECT * FROM 's3://algotick/.../chain=solana/*/*.parquet'From zero to live trading signals in 60 seconds
pip install algotick # or copy algotick.py into your project import asyncio from algotick import AlgoTickClient async def main(): client = AlgoTickClient(api_key="sk_live_...") # 1. Check macro safety — is the market stable? gex = await client.get_gamma_exposure() if gex["aggregate_gex"] < -50: print("Market unstable. Halting.") return # 2. Stream normalized cross-chain events async def on_event(data): print(f"{data['stream_type']} on {data['chain']}: {data['data']}") await client.stream( channels=["solana.swaps", "ethereum.flashbots_bids"], callback=on_event ) asyncio.run(main())
That's it. No WebSocket reconnection logic. No JSON schema parsing. No deduplication code. Install the SDK, pass your API key, and get back to writing alpha.
How AlgoTick Compares
| Provider | What They Sell | Your Cost | AlgoTick Difference |
|---|---|---|---|
| Tardis.dev / Databento | Raw recorded exchange WebSocket CSVs | $100–1,000/mo | We add derived signals (GEX, Imbalance, Regime) on top of the raw ticks |
| Glassnode / CoinMetrics | On-chain data (free if you run a node) | $1,000+/mo | We cover DeFi firehoses (DEX swaps, LP events, MEV bids) — not just chain metrics |
| Artemis.xyz | Smart contract activity aggregation | $500+/mo | We provide real-time WebSocket streams, not just daily REST snapshots |
| Custom Build | Your own Go/Python pipeline | 3–6 months eng time | We maintain 12 streamers across 5 chains so you don't have to |
The Nightmare You're Avoiding
{"stream_type": "dex_swap", "chain": "solana", "timestamp_ms": 1710362694000, "data": {...}}You get one clean JSON stream. We handle the 10 connections, the deduplication, the math, and the archival.
REST API Endpoints
| Method | Endpoint | Description |
|---|---|---|
GET | /v1/snapshot | Real-time market snapshot with 39 metrics |
GET | /v1/signals/volatility | Realized volatility and regime per coin |
GET | /v1/signals/spreads | Cross-venue spreads and funding rates |
GET | /v1/signals/composite | Multi-factor composite trading signal |
GET | /v1/signals/correlation | Cross-asset correlation matrix |
GET | /v1/signals/whale-flow | Whale order flow and imbalance |
GET | /v1/signals/depth | Order book depth bands |
GET | /v1/signals/imbalance | Order book bid/ask imbalance |
GET | /v1/signals/liquidations | Liquidation alerts and thresholds |
GET | /v1/signals/priority-gas | Ethereum gas prices and congestion |
GET | /v3/signals/regime | HMM market regime classification |
GET | /v3/signals/squeeze | Short squeeze probability and direction |
GET | /v3/signals/arbitrage | Arbitrage opportunities and yields |
GET | /v3/signals/smart-money | Smart money wallet tracking |
GET | /v3/signals/safety | Cross-signal coherence and safety |
GET | /v3/signals/gamma-exposure | Live Dealer Gamma Exposure (GEX) |
GET | /v3/analytics/query | Historical data query (ClickHouse) |
GET | /v4/signals/liquidity-voids | Orderbook liquidity void detection |
GET | /v4/signals/mempool-congestion | Ethereum mempool congestion score |
GET | /v4/reference/symbology | Token symbol ↔ contract address mapping |
WebSocket Channels
Connect to wss://ws.algotick.dev/v1/stream?api_key=YOUR_KEY and
subscribe to any combination of channels.
| Type | Channel | Description |
|---|---|---|
Stream | solana.swaps | Real-time Solana DEX swaps (Raydium, Orca, Jupiter) |
Stream | ethereum.swaps | Ethereum DEX swaps (Uniswap V3) |
Stream | base.swaps | Base L2 DEX swaps (Aerodrome, Uniswap) |
Stream | arbitrum.swaps | Arbitrum DEX swaps (Uniswap V3) |
Stream | ethereum.lp_events | LP Mint/Burn events across EVM DEXs |
Stream | ethereum.flashbots_bids | Flashbots MEV builder bid stream |
Stream | hyperliquid.trades | Hyperliquid perpetual trades |
Stream | hyperliquid.liquidations | Hyperliquid liquidation events |
Stream | signals.* | All derived alpha signals (GEX, imbalance, regime) |
Quick Start
# Get your API key and start querying in seconds # 1. Market snapshot — 39 real-time metrics curl https://algotick.dev/v1/snapshot?api_key=YOUR_KEY # 2. Dealer Gamma Exposure (pre-calculated Black-Scholes) curl https://algotick.dev/v3/signals/gamma-exposure?api_key=YOUR_KEY # 3. Orderbook liquidity void detection curl https://algotick.dev/v4/signals/liquidity-voids?coin=BTC&api_key=YOUR_KEY # 4. Flashbots MEV congestion score curl https://algotick.dev/v4/signals/mempool-congestion?api_key=YOUR_KEY
R2 Data Lake — Backtest the Past
min/max chunk filtering./events/ = trades, liquidations, DEX swaps, LP events, MEV bids.
/states/ = L2 book snapshots, GEX metrics, oracle prices.
Load each into its own DataFrame, then asof_merge to backtest execution slippage perfectly.# Query 3 months of Solana DEX swaps directly from R2 (no download) import duckdb conn = duckdb.connect() df = conn.sql(""" SELECT * FROM read_parquet( 's3://algotick-data-lake/events/swaps/chain=solana/year=2026/month=*/day=*/data.parquet' ) WHERE amount_usd > 10000 ORDER BY timestamp_ms """).df() print(f"{len(df):,} whale swaps found")
Pricing
• WebSocket stream (100 msg/s)
• R2 Data Lake (90-day history)
• Python SDK
• Email support
• Unlimited WebSocket rate
• R2 Data Lake (full history)
• Priority Slack channel
• Custom signal derivations
• Co-located data delivery
• Custom chain integrations
• SLA guarantee
• Direct engineering access
Python SDK
pip install algotick or grab
algotick-python from GitHub.
import asyncio from algotick import AlgoTickClient async def on_market_event(data): # Fires the millisecond a Solana swap or Hyperliquid trade happens print(f"{data['stream_type']} | {data['chain']} | {data['data']}") async def main(): client = AlgoTickClient(api_key="sk_live_12345") # 1. Check macro safety via REST gex = await client.get_gamma_exposure() if gex["aggregate_gex"] < -50: print("Market unstable. Halting execution.") return # 2. Stream normalized cross-chain events via Go WebSocket await client.stream( channels=["solana.swaps", "hyperliquid.liquidations"], callback=on_market_event ) asyncio.run(main())