Skip to content
Public and read-only

Data API

Markets, prices, candles, fills and the vault as plain JSON over HTTPS. Free, no key, open to any origin. Trading happens in the terminal and, once deployed, in the contracts.

Basics

Base URL
https://falle.trade/api/v1
  • Every endpoint is a GET that returns JSON. CORS allows any origin, so a page can call it straight from the browser.
  • Prices and amounts are US dollars as plain numbers, times are unix seconds, addresses are lowercase hex.
  • A bad parameter answers 400 with { "error": "…" }.
  • Each network gets 240 requests a minute. The market board refreshes every 15 seconds, so polling faster gains nothing.
curl https://falle.trade/api/v1/prices

Markets & prices

Listed markets, their price inputs and pool candles.

GET/api/v1/markets

Every listed market with its price inputs, leverage, maintenance, fee, tier, pool depth in both directions, session, whether it takes new positions and practice open interest. kind is major, stock or coin.

GET
Sample response
[{ "id": "ETH", "kind": "major", "price": 2557.05, "spot": 2559.26, "average": 2557.05, "chainlink": 2554.61,
   "maxLeverage": 20, "maintenance": 0.02, "takerFee": 0.0006, "tier": null, "pumpDepthUsd": 4591447,
   "session": "24/7", "open": true, "pause": null, "practice": { "longOiUsd": 0, "shortOiUsd": 0, "fundingPerDay": 0 } }, "…"]
GET/api/v1/prices

Mark and spot per market id, with the unix second the board was read.

GET
Sample response
{ "ETH": { "price": 2557.05, "spot": 2559.26, "ts": 1791398700 }, "…": "…" }
GET/api/v1/candles

OHLC candles from the market's own pool, oldest first; t is the bucket start in unix seconds. source names where they came from.

ParameterMeaning
marketrequired, a market id such as ETH, NVDA or a coin id
tf1m, 5m, 15m, 1h (default), 4h or 1d
GET
Sample response
{ "market": "ETH", "tf": "1h", "source": "Uniswap v3 pool history", "candles": [{ "t": 1791396000, "o": 2556.9, "h": 2559.4, "l": 2553.1, "c": 2558.3 }] }

Activity & vault

Practice fills, the practice vault and the service health.

GET/api/v1/trades

Recent practice fills, newest first. Every row carries practice: true until the contracts are live.

ParameterMeaning
marketoptional market id
limit1 to 200, default 50
GET
Sample response
[{ "t": 1791398712, "address": "0x…", "market": "ETH", "side": "long", "action": "open", "notional": 500, "pnl": null, "price": 2559.3, "practice": true }]
GET/api/v1/vault

The practice vault: NAV, share price, reserved profit, utilization and its running result.

GET
Sample response
{ "practice": true, "navUsd": 250000, "sharePrice": 1, "reservedUsd": 0, "utilization": 0, "resultUsd": 0 }
GET/api/v1/health

Chain id, latest block, when the market board was read, how many markets are listed, and whether trading is on chain or practice.

GET
Sample response
{ "ok": true, "chainId": 4663, "block": 82694223, "markets": 26, "mode": "practice", "practiceStorage": true }

Trade button

Drop this link anywhere to send readers to a market with a side already picked. Change the market id and side in the URL; side is long or short.

Side
Page
Snippet
<a href="https://falle.trade/trade/ETH?side=long" target="_blank" rel="noopener"
   style="display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:8px;
          background:#2be38f;color:#03130b;font:600 14px system-ui,sans-serif;text-decoration:none">
  Long ETH on Falle
</a>

Contracts

For anything that moves money, read the chain directly rather than this API.

ETH price pools0x52e65B17fB6E5BA00Ed806f37Afcd2DaA50271Ca · Chainlink 0x78F3556b67E17Df817D51Ef5a990cDaF09E8d3A9
BTC price pools0xd30e44aae604b42a63f6f9a8109fd0408f35b9fb → 0x52e65B17fB6E5BA00Ed806f37Afcd2DaA50271Ca · Chainlink 0xa2c5184bF03d373Dc9dE4876eb4Bce595B460251
Chain id4663