Arcus Vaults · Public API

Read-only JSON API for pToken vaults: metadata, live NAV, performance, and history.

Conventions

ConventionDetail
Base pathAll data endpoints live under /v1. Responses are JSON.
Money & pricesNumbers in USD (...Usd suffix). Percentages carry a ...Pct suffix; fees use basis points (...Bps, 100 bps = 1%).
TimeTimestamps are epoch milliseconds (t, from, to, now); static metadata uses ISO 8601 (createdAt).
NullAny field can be null when its upstream source (chain RPC, exchange gateway, snapshot history) is unavailable or not yet populated. Nulls mean "unknown right now", never zero.
CachingResponses are cached server-side for a few seconds and carry a matching Cache-Control: public, max-age. Do not poll faster than 1/s per endpoint.
CORSAccess-Control-Allow-Origin: * on every response; safe to call directly from a browser.
AuthNone. Everything served here is public information.

Endpoints

List vaults

GET/v1/vaults

Every vault this deployment manages, with the fields the vaults list page needs. Response: { "now": epochMs, "vaults": [VaultSummary] }.

FieldMeaning
addresspToken (vault share token) contract address, lowercase.
name, symbolOn-chain ERC-20 metadata (e.g. "3x HOOD", "pHOOD3x").
market, direction, leverageThe perp market the vault trades, the exposure direction, and the target leverage multiple.
description, createdAt, ageDaysDisplay copy and creation time (ISO 8601; ageDays derived from it).
managerVault manager address (on-chain).
depositFeeBps, profitShareBpsDeposit fee (on-chain) and manager profit share (static config).
depositsPausedWhether the vault currently accepts deposits.
tvlUsdVault NAV in USD (the on-chain oracle-attested value).
navPriceUsdNAV per minted share - the price one share is worth.
netDepositedUsd, allTimePnlUsdNet deposits since inception, and NAV minus net deposits (all-time trading PnL).
aprPctAnnualized return from share-price growth since inception.
performance24hPctShare-price change over the trailing 24 hours.
sparkline24hTrailing-24h share-price points (15-minute buckets): [{ t, navPriceUsd }].

Vault detail

GET/v1/vaults/{address|symbol}

The vault is addressed by its pToken contract address or its on-chain symbol (case-insensitive), e.g. /v1/vaults/pHOOD3x. Everything in the list entry, plus:

FieldMeaning
markPriceUsdLive perp mark price of the vault's market.
allTimeReturnPctShare-price return since inception.
maxDrawdownPctLargest share-price peak-to-trough since inception (≤ 0).
equityUsd, freeCollateralUsdLive exchange account state backing the vault.
capacity{ maxNetDepositUsd, utilizationPct } - the deposit cap and how much of it is used.
positionsLive open positions: market, side, size, entry/mark price, notional, unrealized PnL, leverage, margin.

Returns 404 for vaults this deployment does not manage, 400 for malformed addresses or symbols.

Vault history

GET/v1/vaults/{address|symbol}/history

Time series behind the NAV / TVL / PnL / Return charts. One point per bucket; each point is the freshest sample in its bucket.

Query paramMeaning
from, toEpoch-ms bounds. Defaults: first recorded sample → now.
resolutionBucket size: 1m, 5m, 15m, 1h, 4h, 1d. Omit to auto-select from the span (at most 2000 points per response).
Point fieldMeaning
tSample time, epoch ms.
navPriceUsdShare price at the sample.
tvlUsdVault NAV at the sample.
equityUsd, markPriceUsdLive exchange equity and the market's mark price at the sample (may be null).
pnlUsdNAV minus net deposits at the sample (cumulative trading PnL).
returnPctShare-price return vs the first point of the returned series.

Health

GET/health

Process readiness: { ok, process, version, uptime_s, checks }, status 200/503.

Example

$ curl -s https://<this-host>/v1/vaults | jq '.vaults[0]'
{
  "address": "0xe24cabdf76dd1c2576049167eb1755c84b985c36",
  "name": "3x HOOD",
  "symbol": "pHOOD3x",
  "market": "HOOD-USD",
  "direction": "long",
  "leverage": 3,
  "tvlUsd": 101000.0,
  "navPriceUsd": 101.29,
  "aprPct": 8.0,
  "performance24hPct": 1.23,
  ...
}

$ curl -s https://<this-host>/v1/vaults/pHOOD3x | jq '.navPriceUsd'

$ curl -s "https://<this-host>/v1/vaults/0xe24c.../history?resolution=1h" | jq '.points | length'
History starts when NAV snapshotting was enabled for a vault, not at the vault's on-chain creation. APR, drawdown, and return figures are computed over the recorded window.