About carrydesk
carrydesk publishes hourly funding-carry rankings for liquid Hyperliquid perpetuals, with free delayed snapshots and paid live data. It serves traders and agents inspecting funding differentials, and reports mean, trimmed, and median spreads to show the effect of outliers.
Key features
- 01Hourly 14-day funding rankings
- 02Free delayed top-five snapshot
- 03Live rankings with adjustable k
- 04Historical rankings and funding
- 05Universe data by volume and OI
- 06Mean, trimmed, and median spreads
Use cases
- 01Reviewing carry candidates across Hyperliquid perps
- 02Checking historical funding and rank changes
- 03Assessing outlier impact on reported carry
- 04Retrieving perp universe metrics
MCP support
An MCP interface provides six tools for snapshots, methodology, health, rankings, history, and universe data. Paid tools use x402; an agent can pay automatically when configured with a private key.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
uvx carrydeskCARRYDESK_PRIVATE_KEYSecretOptional. Private key of a small hot wallet holding USDC on Base, used to pay for the metered tools automatically. Without it the three free tools work normally and the paid tools return their price instead of failing.CARRYDESK_API_BASEOptional. Override the API base URL. Defaults to https://carry.pelazas.com.Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
Tools
6Saved tool list · updated 3w ago
This tool takes no parameters.
Details
From the project READMEcarrydesk
Cross-sectional funding-carry rankings for Hyperliquid perpetuals, sold per call in USDC.
Every hour, rank the liquid Hyperliquid perp universe by trailing 14-day mean funding. The most negative names pay you to hold them long; the most positive pay you to short them. The spread between those two legs is the carry — a structural risk premium, not a prediction.
This is the same signal a live market-neutral book trades, published as an API.
Endpoints
| Endpoint | Price | |
|---|---|---|
| free | GET /v1/free/carry — top 5 each leg, delayed 24h | — |
| free | GET /v1/method — how it is computed, and the caveats | — |
| free | GET /health | — |
| paid | GET /v1/carry/rankings — full live ranking, tunable k | $0.05 |
| paid | GET /v1/carry/history/{coin} — archived rank + funding | $0.02 |
| paid | GET /v1/universe — liquid perps by volume, OI, funding | $0.01 |
Paid endpoints are metered with x402: the server answers
402 with payment requirements, your client pays USDC on Base, retries, and gets
the data. No account, no API key, no invoice.
Quick start
curl -s https://carry.pelazas.com/v1/free/carry | jq
{
"carry_spread_annualized": 0.3901,
"carry_spread_annualized_trimmed": 0.2231,
"carry_spread_annualized_median": 0.0955,
"headline_vs_typical": 4.09,
"outlier_dominated": true,
"longs": [{"coin": "PENGU", "mean_funding_annualized": -0.0636}, ...],
"shorts": [{"coin": "SAGA", "mean_funding_annualized": 1.9886}, ...]
}
Three spread numbers, always, plus two that say how far apart they are. The
headline mean is what an equal-weighted book earns; the median is what a typical
coin pays. headline_vs_typical is the multiple between them — about 4 in the
sample above, and around 4 in practice — and outlier_dominated fires when the
median drops below half the mean. On the reading above, SAGA alone accounts for most of the gap — that
is exactly the kind of thing a single number would hide.
MCP
claude mcp add carrydesk -- uvx --from carrydesk carrydesk-mcp
No clone, no virtualenv — uvx fetches and runs it.
Six tools: carry_snapshot, carry_method, carry_health (free) and
carry_rankings, carry_history, carry_universe (paid). It talks to
https://carry.pelazas.com by default — override with CARRYDESK_API_BASE.
Set CARRYDESK_PRIVATE_KEY to let the agent pay automatically. Without it the
free tools work and paid tools return the price instead of failing, so a
wallet-less install is still useful.
Local development
uv venv --python 3.12 && uv pip install -e ".[dev]"
.venv/bin/python -m uvicorn carrydesk.api:app --reload # open, no paywall
.venv/bin/python -m pytest -q # full suite, no network
With X402_PAY_TO unset the service runs fully open — that is the dev default.
Set it to turn the paywall on. See .env.example.
For agents and crawlers
/llms.txt describes the whole service in plain text. /openapi.json is the
full spec, /archive is every snapshot ever published, and the public page
carries schema.org Dataset markup. Crawlers are explicitly welcome — the free
tier exists to be read, indexed and quoted.
Honest limitations
- The carry spread can and does go negative. This is compensation for absorbing crowded leverage, not a forecast.
- All figures are gross of fees, slippage and borrow. Taker fees alone can erase the edge; the reference book is maker-only for that reason.
- Funding is Hyperliquid's own, with no cross-venue reconciliation yet.
- Illiquid names dominate the headline spread more often than not. Read the trimmed and median variants before sizing anything.
- Informational only. Not investment advice.
Repo docs
| File | What |
|---|---|
BACKLOG.md | Deliberately deferred work, with the reason for each |
AGENTS.md | Onboarding for an AI agent picking this up cold — gotchas, rules, what is unverified |
STATUS.md | Current state, what is blocked, what is next |
DECISIONS.md | Why each significant choice was made |
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.