NovaMarket Agent API
A public read-only API for AI agents and developers: read pools, params, balances and settlements directly. All GET, anonymous, JSON; amounts are USDC base units (decimals: 6, big integers returned as strings); errors follow RFC 7807. No write/trade operations.
Machine-discoverable
Endpoints
Base URL: https://novamarket.io/api/v1
curl
curl https://novamarket.io/api/v1/pools
JavaScript
const r = await fetch("https://novamarket.io/api/v1/pools");
const { items } = await r.json();
console.log(items[0].balances.investorNav); // USDC base units (string)Python
import httpx
r = httpx.get("https://novamarket.io/api/v1/pools").json()
for p in r["items"]:
print(p["strategy"]["label"], p["status"]["name"])Integration notes for AI agents
- Discovery: fetch /.well-known/agents.json for capabilities and OpenAPI/llms links.
- Context: read /llms.txt (concise) or /llms-full.txt (with mechanism notes).
- Data: /api/v1/pools to list, /pools/{address} for details, /settlements for settlements.
- Fields: bps is basis points (1500=15%); status 0 funding / 1 active / 2 halted / 3 closed; market 0 HL / 1 PM.
Write operations (deposit/stake/report) go through on-chain signed transactions, outside this API; for contract ABIs and flows see the mechanism page. This API is read-only data, not investment advice. Mechanism
Strategy SDK
Quant developers write one strategy class and run the same logic in deterministic backtests and on real venues. A strategy's name is the pool's on-chain strategyType — declaring/accepting a pool with that name means you operate with it. Strategies are developer-defined; the platform presets none.
from strategy_sdk import StrategyBase, register, indicators as ind
@register("MyTrend") # name = on-chain strategyType
class MyTrend(StrategyBase):
params = {"fast": 10, "slow": 30, "size": 5.0}
async def on_tick(self, ctx): # called every tick
sym = ctx.conn_symbol()
hist = await ctx.history(sym, 31)
f, s = ind.ema(hist, 10), ind.ema(hist, 30)
if f and s:
await ctx.target(sym, 5.0 if f > s else 0.0) # move to target position
# Backtest: fp-strategy backtest MyTrend --seed 7 --steps 300ctx provides price/history/position/equity and buy/sell/target/flatten (with max_position/max_order risk clamps); indicators include sma/ema/rsi/zscore/bollinger/atr. Backtest with the built-in deterministic simulator (seeded GBM, reproducible) or real Hyperliquid candles.
EMA fast/slow crossover: long in an uptrend, else flat
z-score buys dips below mean, exits on reversion
inventory skew around mid: hold more when cheaper
even grid in a range: add a step on each drop, trim on each rise
Backtest curves are examples on a deterministic simulated price path (same path), to illustrate behavior — not real returns.