On this page
Getting started · What is Vela

What is Vela#

Vela is a Model Context Protocol (MCP) server that gives your AI client direct access to token intelligence on Elysium and Hyperliquid.

// Add this endpoint to Claude, Cursor, or any MCP client
{
  "mcpServers": {
    "vela": {
      "url": "https://api.velalab.xyz/mcp"
    }
  }
}

Once the endpoint is added, your client can list Vela’s tools and call them while answering you. Vela only reads data; it never asks for a wallet or a key.

Getting on Elysium#

Elysium is a rollup on HyperEVM (chain id 99901) with HYPE as its gas token. Vela reads Elysium’s launchpads, so you do not need a wallet connected to use it. To trade what Vela finds, add Elysium to your wallet and bridge HYPE from HyperEVM.

Adding the endpoint#

Open your client’s MCP settings and add the block from the first section. In Cursor this is .cursor/mcp.json; other clients keep the same mcpServers shape in their own settings file. Restart the client, then check that the Vela tools appear in its tool list.

Your first query#

Ask in plain language. The client chooses the tool.

Is this token safe to buy? 0xc1f4...d83b

That call goes to vela_token_score, which returns a score and the factors behind it. Use any token address from the Elysium index.

// The shape of a vela_token_score answer (values abridged)
{
  "token": { "symbol": "BLOB", "launchpad": "other", "holders": 825, "top10Pct": 11.64 },
  "score": 98,
  "band": "stronger",
  "confidence": 0.9,
  "factors": [ { "factor": "holders", "value": 825, "points": 24.3, "max": 25 }, /* ... */ ],
  "unavailable": [ { "factor": "creatorShare", "reason": "the creator's share is not reported for this token" } ],
  "flags": []
}

How scoring works#

vela_token_score returns a score from 0 to 100 and shows how it was reached. It uses five factors with fixed weights that add up to 100:

FactorWeightFull marks atZero at
Holders251,000 or more holders1 holder
Top-10 concentration30top 10 hold 20% or lesstop 10 hold 70% or more
Creator share101% or less15% or more
24h activity20100 or more tradesno trades
Age15a week or moreunder an hour

If the source does not report a factor, it is left out and the score is re-scaled over the factors that remain. The response carries a confidence value (the share of the 100 points that was available) and lists what was missing under unavailable. When nothing at all is reported the score is null, never 0.

The score is banded as stronger (70 and up), mixed (45 to 69) or weaker (below 45). Liquidity depth, liquidity locks, contract checks and social presence are not part of the score yet.

A score summarises public data. It is not advice, and a high score does not mean a token is safe.

Risk factors#

Alongside the score, flags names conditions worth a look:

  • the top 10 holders own half or more of the supply;
  • the creator holds 10% or more of the supply;
  • the token launched less than an hour ago;
  • there were no trades in the last 24 hours.

A new token often has no holder count yet. The index then reports 0, which Vela treats as not counted yet and returns as null, so concentration is never shown as a false zero.

Sentiment data#

Planned. The token index carries no social data, so there is no sentiment tool yet.

Cross-platform scan#

vela_cross_scan reads every launchpad in the index at once and returns the newest tokens grouped by launchpad for the last N hours, with a count per launchpad. It does not filter on websites or X accounts, because the index does not include them.

Whale detection#

Planned. Listing the largest holders needs holder-level data. The index provides a holder count and the top-10 share only, so vela_whale_watch is not live.

Smart money tracking#

Planned. Smart-money and insider tools need per-wallet trade history, which Vela does not index yet.

Platforms covered#

Token data comes from the public Elysium token index run by Boxa, which covers many launchpads (Montra, Ascend, Boxa, Volta, Kleos and others). vela_launchpads lists them with their token counts. That index is unofficial and undocumented, so it can change or go away. Perpetuals data and the HYPE price come from Hyperliquid.

Data freshness#

Answers are cached briefly: the token index for 15 seconds, the HYPE price for 30, perpetual markets for 20 and account positions for 10. If a source fails, the last good answer (up to a few minutes old) is returned with "stale": true instead of an error. Vela also caps itself at 40 requests a minute to its sources; past that, tools answer 503 until the next minute.

Funding rates#

vela_hl_funding returns, per Hyperliquid perpetual market: the hourly funding rate, an annualised percentage (hourly rate × 24 × 365), open interest in USD and the mark price. Sort by abs, positive (longs pay most) or negative (shorts pay most).

Positions#

vela_hl_positions returns an account’s open perpetual positions (coin, side, size, entry, value, unrealised PnL, leverage, liquidation price) and its margin summary. Hyperliquid accounts are public, so any address can be read. Liquidation feeds are not available yet.

Public API#

Vela exposes the same tools in two ways, from one server: an MCP endpoint for AI clients and a small REST API for everything else. Both are read-only.

EndpointWhat it does
POST /mcpMCP over HTTP (JSON-RPC 2.0): initialize, tools/list, tools/call, ping. Batches of up to 10 are accepted. There is no streaming and no session.
GET /v1/toolsLists the tools with their input schemas.
GET|POST /v1/tools/{name}Runs a tool. Pass arguments as the query string (GET) or a JSON body (POST).
GET /v1/healthStatus, version, uptime and the source request budget.
# REST: the newest Montra tokens from the last hour
curl "https://api.velalab.xyz/v1/tools/vela_new_tokens?hours=1&launchpad=montra&limit=5"

# MCP: call a tool directly
curl -X POST https://api.velalab.xyz/mcp \
  -H "content-type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"vela_token_score","arguments":{"address":"0x69e5...b10b"}}}'

A REST call returns { "tool": "...", "result": { ... } }. Errors are { "error": "...", "message": "..." } with the status codes below. Over MCP, a tool failure comes back as a normal result with isError: true and a readable message.

StatusMeaning
400A missing or invalid argument, or an address that is not in the index.
404Unknown tool or path.
413Request body over 64 KB.
429Rate limit reached. See Retry-After.
502 / 503A data source failed or Vela is pausing to stay under its source budget. Retry in a few seconds.

Tools live today

ToolArgumentsReturns
vela_token_scoreaddressScore, factors, flags
vela_comparea, bTwo tokens side by side with scores
vela_new_tokenshours, launchpad, min_market_cap_usd, limitTokens launched in the window
vela_trendingwindow (1h, 24h), launchpad, limitTokens ranked by volume
vela_volume_spikelaunchpad, limitTokens with unusual last-hour volume
vela_momentumwindow (1h, 6h, 24h), min_volume_usd, launchpad, limitTokens ranked by price change
vela_cross_scanhours, per_launchpadNewest tokens grouped by launchpad
vela_launchpadsnoneLaunchpads and token counts
vela_hl_fundingsort, limitPerpetual funding rates
vela_hl_positionsaddressOpen perpetual positions

Every token row carries the address, symbol, launchpad, age, price, market cap, 1h and 24h volume and price change, holders, top-10 share, creator share and 24h buys and sells. A figure the source did not report is null.

The hosted endpoint at api.velalab.xyz is being set up. Until it is live, the API runs on a private server.

Contracts#

Vela deploys no contracts and sends no transactions. These are the contracts it reads from or that matter to the tokens it lists. Each address below was checked to hold contract code on its chain.

Montra on Elysium (chain id 99901)

ContractAddressRole
Registry0xF1E2FA75422F889e565F3142bdbf60B28dce2aa7Address book: names the other contracts and the launch hooks.
Factory0x38D3ef3A06D18fA3286Fb5dEAfe611be725fcD15Launches tokens and seeds their pools.
Launch hook0x6b1216A40B65c83e9c9e18a562C446697B8cf8ECAttached to every pool: takes the fee and holds the seed.
Router0xc6E9a8E1a99023B67067B8A3605403b8d7B3A157Exact-input swaps with a minimum and a deadline.
Lens0xb4c202910C40C3A83F6C55683460790AaEc487d4Read-only views of pools and fees.

Source: Montra’s own documentation, which says its registry is the one address to trust and the others are read from it.

Elysium rollup on HyperEVM (chain id 999)

ContractAddressRole
Inbox0xce59f8b65ad41c9dae4c07a0571a39824bd92cffDeposits HYPE into Elysium (depositEth).
Bridge0x503d572157113faaad4dbed2647bb10b949216b6The rollup bridge; the Inbox is an allowed delayed inbox on it.
Rollup0x508c173dfe5f737b3493195bf785d71fa76fd217Rollup core; reports chain id 99901.
Outbox0xec6b106dfa14428fe5eec2a4065a7be599f02728Executes withdrawals back to HyperEVM.

Boxa’s contracts are not listed because Vela reads Boxa through its public index, not on-chain. Check any address yourself on an explorer before you rely on it.

Rate limits#

These limits are enforced by the server, per client IP address, over a fixed one-minute window. There are no API keys yet.

LimitValueApplies to
Tool calls60 per minutetools/call over MCP and every /v1/tools/{name} call
All requests300 per minuteEverything, including tools/list and health checks
Batch size10 messagesOne MCP request
Request body64 KBPOST bodies
Source budget40 requests per minuteVela’s own calls to its data sources, shared by all clients

REST responses include X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset (seconds). A blocked call returns 429 with Retry-After. Over MCP the tool result says Rate limit reached and how many seconds to wait. Because answers are cached for seconds, repeating the same call faster than that gains nothing.