The desk is a glass box. This repo is the contract: the JSON shape, the OpenAPI, and a client that hits the live book with no API key.
Live desk: desk.arkyn.fi · site: arkyn.fi
This is not a broker, a wallet, or the production UI. Stock tokens are tokenized debt securities. Prices mix onchain oracles and offchain cash quotes.
| Route | What it is |
|---|---|
GET /api/v1/desk |
Featured names: oracle, cash mid, vs-cash, signal, NYSE clock |
GET /api/v1/session |
NYSE hours in America/New_York. gapRisk when cash is shut |
GET /api/v1/portfolio?address=0x… |
USDG + featured stock tokens for any Robinhood Chain address |
GET /api/v1/stats |
Tape summary: signal mix, vs-cash extremes, feed age |
GET /api/v1/openapi |
Live OpenAPI 3.1 |
Chain is always 4663 (Robinhood Chain). CORS is open for GET. Do not send a key.
curl -s https://desk.arkyn.fi/api/v1/session
node examples/read.mjs
bash examples/curl.shimport { getDesk, getSession } from "@arkynfinance/book";
const session = await getSession();
const book = await getDesk();
for (const row of book.rows) {
console.log(row.symbol, row.signal, row.premiumBps);
}Types live in src/types.ts. The wire document is openapi.json. Field names are the contract — if the UI and the JSON ever disagree, treat the JSON as the book.
The production desk, oracle plumbing, agent, wallet connect, and settlement rails stay out of this tree on purpose. Agents and curl do not need them. Point at the OpenAPI first.
$ARKYN is not live. Contract publishes at TGE.
MIT