REST Endpoints
Base URL: https://quasdaq.com
All endpoints are served from the Next.js app deployed on Cloudflare Workers.
Public Endpoints
Section titled “Public Endpoints”GET /api/feeds
Section titled “GET /api/feeds”Returns the full asset catalog with feed IDs and keccak256 hashes. See Feed Catalog API for full documentation.
GET /api/price?feedId=BTCUSD
Section titled “GET /api/price?feedId=BTCUSD”Fetches the current price for a given feed from the Stork Oracle.
| Parameter | Type | Description |
|---|---|---|
feedId | string | Asset pair string (e.g. "BTCUSD") |
GET /api/stork?feedId=BTCUSD
Section titled “GET /api/stork?feedId=BTCUSD”Fetches full Stork Oracle signed price data — used for market resolution. Returns the TemporalNumericValueInput struct needed for resolve().
| Parameter | Type | Description |
|---|---|---|
feedId | string | Asset pair string (e.g. "BTCUSD") |
GET /api/stats
Section titled “GET /api/stats”Returns protocol-wide statistics (total markets, volume, leaderboard, etc.).
POST /api/users/x-profiles
Section titled “POST /api/users/x-profiles”Batch lookup of X (Twitter) profiles linked to wallet addresses.
POST /api/users/x-profilesContent-Type: application/json
{ "wallets": ["0x00...abc", "0x00...def"] }GET /api/users/resolve-handle?handle=quasdaq
Section titled “GET /api/users/resolve-handle?handle=quasdaq”Resolve an X handle to a linked wallet address.
| Parameter | Type | Description |
|---|---|---|
handle | string | X username (without @) |
Comments
Section titled “Comments”Comments are polymorphic: any on-chain entity (a market today, a swap pool or launch token tomorrow) shares the same routes and UI. Identify the entity with entityType (e.g. "market") plus its address as entityId.
GET /api/comments/{entityType}/{entityId}?viewer={wallet}
Section titled “GET /api/comments/{entityType}/{entityId}?viewer={wallet}”Returns comments for the given entity. The optional viewer parameter marks per-comment likedByUser for the supplied wallet.
| Parameter | In | Type | Description |
|---|---|---|---|
entityType | path | string | Entity kind. "market" today. |
entityId | path | string | Entity identifier (e.g. market address) |
viewer | query | string | Wallet address (optional) |
Response:
{ "comments": [ { "id": "uuid", "walletAddress": "0x00…", "content": "...", "createdAt": "ISO-8601", "parentId": null, "likeCount": 0, "likedByUser": false, "replies": [] } ]}POST /api/comments/{entityType}/{entityId}
Section titled “POST /api/comments/{entityType}/{entityId}”Post a top-level comment or reply. Requires a wallet signature.
{ "walletAddress": "0x00…", "content": "Your comment", "parentId": "uuid-or-omit", "signature": "0x…", "timestamp": 1715000000000}The signed message is quasdaq:comment:post:{entityId}:{timestamp}. Timestamps expire after 5 minutes. Rate limit: 1 comment per 30 seconds per wallet.
DELETE /api/comments/{entityType}/{entityId}/{commentId}
Section titled “DELETE /api/comments/{entityType}/{entityId}/{commentId}”Delete your own comment. Signed message: quasdaq:comment:delete:{entityId}:{timestamp}.
PUT /api/comments/{entityType}/{entityId}/{commentId}/like
Section titled “PUT /api/comments/{entityType}/{entityId}/{commentId}/like”Toggle like on a comment. Signed message: quasdaq:comment:like:{entityId}:{timestamp}. Response: { "liked": boolean, "likeCount": number }.
All public endpoints return Access-Control-Allow-Origin: * headers.