API
Challenge4Trading exposes public backend endpoints used for market data, derivatives metrics, protocol state, and frontend execution support.
API Profile
- Public JSON endpoints
- Production-facing read API
- Backed by the live C4T infrastructure on Arbitrum
- Designed for frontend usage, analytics, and third-party integrations
Integration Scope
For exchange and derivatives integrations, the most useful public surfaces are:
- market metadata
- realtime prices
- fee configuration
- open positions and open orders
- trader history
- health/status checks
Base URL
Use the deployed C4T backend base URL, then append the relative paths below.
Examples in this page are shown as:
GET /market/snapshot
GET /market/realtime-prices
GET /market/volume-24h
Market Data Endpoints
GET /health
Lightweight health check for service availability and chain identification.
Typical response:
{
"ok": true,
"service": "chain4t-backend",
"chainId": 42161
}
GET /assets
Returns the currently synced asset list from the market snapshot database.
Useful for:
- listed markets
- metadata
- pricing identifiers
- trading status
Typical response shape:
{
"ok": true,
"assets": [
{
"asset": "0x0000000000000000000000000000000000000001",
"name": "BTC-USD",
"pricingId": "0xe62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43",
"oracleHasPrice": true,
"lastOraclePriceX30": "68342123000000000000000000000000",
"lastOraclePublishTime": "1779781200",
"displayPrices": {
"source": "pricingEngine",
"midPriceX30": "68342123000000000000000000000000",
"longPriceX30": "68345540100000000000000000000000",
"shortPriceX30": "68338705900000000000000000000000",
"spreadTotalPpm": "500"
},
"priceStatus": "OPEN",
"tradingEnabled": true,
"priceFreshness": {
"color": "green",
"stale": false,
"maxPriceAgeSec": "600",
"lastPublishTimeSec": "1779781200",
"ageSec": "11"
}
}
]
}
GET /assets/:asset
Returns one asset snapshot by market address.
Useful for:
- single-market lookups
- admin/debug integrations
- oracle freshness verification
GET /market/snapshot
Returns the current aggregated market snapshot, including:
- chain metadata
- protocol fee configuration
- risk/limit values
- asset list with market status annotations
This is the best single endpoint for a broad market overview.
Typical response shape:
{
"ok": true,
"chainId": 42161,
"contracts": {
"perp": "0x54A62D550e1754f3bB34ad80501A63815297Fccc",
"usdc": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
"lens": "0x38E795490E9fcd0C938b0A820dAAf2d6FcA3810d",
"oracleRouter": "0x...",
"pricingEngine": "0x..."
},
"fees": {
"openFeeBps": "10",
"closeFeeBps": "10",
"liquidationFeeUsdc": "5000000",
"oracleFeeUsdc": "0",
"oneClickOpenFeeUsdc": "0"
},
"limits": {
"maxPnlMultiple": "10",
"maxPriceAge": "600",
"maxSlippageBpsGlobal": "100",
"maxRelayFeeUsdc": "0"
},
"assets": [
{
"asset": "0x0000000000000000000000000000000000000001",
"name": "BTC-USD",
"priceStatus": "OPEN",
"tradingEnabled": true,
"pricingId": "0xe62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43"
}
]
}
GET /market/realtime-prices
Returns the current realtime price surface per market.
Useful for:
- offchain price monitoring
- displayed long/short execution reference prices
- spread analytics
Typical response shape:
{
"ok": true,
"asOf": "2026-05-26T12:00:00.000Z",
"prices": [
{
"asset": "0x0000000000000000000000000000000000000001",
"pricingId": "0xe62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43",
"offchainSource": "hermes_parsed",
"offchainFeedLive": true,
"oracleHasPrice": true,
"oraclePriceX30": "68342123000000000000000000000000",
"offchainPriceX30": "68342123000000000000000000000000",
"longPriceX30": "68345540100000000000000000000000",
"shortPriceX30": "68338705900000000000000000000000",
"spreadTotalPpm": "500",
"spreadSource": "pricingEngine"
}
]
}
GET /market/volume-24h
Returns the last 24 hours of executed notional volume aggregated by market.
Methodology:
- position openings in the last 24 hours are counted by
size_usdc6 - position closures in the last 24 hours are counted by
size_usdc6 - the endpoint aggregates both sides by market to expose public executed notional volume
Typical response shape:
{
"ok": true,
"windowHours": 24,
"methodology": "24h notional volume is calculated from indexed position openings and indexed position closures over the last 24 hours, aggregated by asset using size_usdc6.",
"asOf": "2026-05-26T12:00:00.000Z",
"totals": {
"openedVolumeUsdc6": "250000000",
"closedVolumeUsdc6": "180000000",
"totalVolumeUsdc6": "430000000",
"openedTrades": 6,
"closedTrades": 4,
"totalTrades": 10
},
"markets": [
{
"asset": "0x0000000000000000000000000000000000000001",
"assetName": "BTC-USD",
"openedVolumeUsdc6": "150000000",
"closedVolumeUsdc6": "80000000",
"totalVolumeUsdc6": "230000000",
"openedTrades": 3,
"closedTrades": 2,
"totalTrades": 5
}
]
}
GET /market/volume-overview
Returns aggregate notional volume across all assets for listing, analytics, and market-overview use cases.
Useful for:
- 7-day daily volume views
- 30-day rolling totals
- 3-month rolling totals
- 12-month rolling totals
- current total open interest snapshots
Typical response shape:
{
"ok": true,
"methodology": "Volume is calculated as gross notional size_usdc6 from indexed position openings and indexed position closures. Daily rows aggregate all assets together.",
"asOf": "2026-05-26T12:00:00.000Z",
"currentOpenInterestUsdc6": "15176923200",
"daily": [
{
"day": "2026-05-26",
"openedVolumeUsdc6": "69746154400",
"closedVolumeUsdc6": "76669231200",
"totalVolumeUsdc6": "146415385600",
"openedTrades": 4,
"closedTrades": 4,
"totalTrades": 8
}
],
"rolling": {
"30d": {
"openedVolumeUsdc6": "485204201430",
"closedVolumeUsdc6": "470032195772",
"totalVolumeUsdc6": "955236397202",
"openedTrades": 82,
"closedTrades": 82,
"totalTrades": 164
}
}
}
Derivatives Metrics Endpoints
These are the most relevant public surfaces for derivatives-oriented integrations.
GET /positions/open
Returns open positions with live-enough derived fields for frontend and monitoring usage.
Useful for:
- open interest style monitoring
- live position inventories
- current market exposure views
Typical response shape:
{
"ok": true,
"positions": [
{
"positionId": "88",
"trader": "0xabc...",
"asset": "0x0000000000000000000000000000000000000001",
"assetName": "BTC-USD",
"isLong": true,
"sizeUsdc6": "477670000",
"collateralUsdc6": "4776700",
"entryPriceX8": "7823821090417",
"leverageX": "100",
"priceStatus": "OPEN"
}
]
}
GET /orders/open
Returns currently active orders.
Useful for:
- pending order monitoring
- delayed-entry market state
- frontend order tables
GET /positions/list
Supports filtered historical position queries.
Query params:
traderstatus=OPEN|CLOSED|ALLassetlimitoffset
GET /orders/list
Supports filtered historical order queries.
Query params:
traderstatus=ACTIVE|EXECUTED|CANCELLED|ALLassetlimitoffset
GET /positions/:id
Returns a detailed single-position view including derived live/risk fields when applicable.
GET /traders/:address/trades
Returns trader-specific trade history and useful account-level trade views.
Fee and Pool Endpoints
GET /fees
Returns the current public fee configuration.
Typical response:
{
"ok": true,
"openFeeBps": "10",
"closeFeeBps": "10",
"liquidationFeeUsdc": "5000000",
"oracleFeeUsdc": "0",
"oneClickOpenFeeUsdc": "0"
}
GET /pool/balance
Returns:
- protocol pool balance
- raw USDC balance on the perp contract
Typical response:
{
"ok": true,
"poolBalanceUsdc6": "209010000",
"usdcBalancePerpUsdc6": "209010000"
}
Realtime Endpoint
GET /stream/trading
Server-Sent Events stream for:
- worker status
- open positions
- open orders
- trader-specific snapshots
Query options:
channels=workers,positions,orders,tradertrader=0x...
This endpoint is primarily intended for frontend monitoring and dashboards rather than simple polling integrations.
Notes for Integrators
- numeric values may be returned as strings
- prices use fixed-point representations such as
X30andX8 - markets can become temporarily unavailable when oracle freshness conditions are not met
- use defensive parsing and do not hard-code assumptions about optional fields
Recommended CoinGecko-Relevant Endpoints
If the goal is to review C4T as a decentralized derivatives venue, the most relevant public surfaces are:
GET /healthGET /market/snapshotGET /market/realtime-pricesGET /market/volume-overviewGET /market/volume-24hGET /feesGET /positions/openGET /orders/openGET /pool/balance
These endpoints together provide:
- exchange status
- market list
- displayed execution prices
- rolling aggregate exchange volume
- 24h notional volume by market
- fee configuration
- live derivatives state
- pool information
Public Verification Post Draft
Suggested X post for CoinGecko verification:
Official verification for CoinGecko listing review:
Challenge4Trading Perp (C4T) is our official decentralized perpetual trading protocol on Arbitrum.
Official links:
- Website: https://www.challenge4trading.com
- App: https://app.challenge4trading.com
- Docs: https://docs.challenge4trading.com
This post confirms that these domains and public resources are officially operated by the Challenge4Trading team.
Official References
- Website: https://www.challenge4trading.com
- Trading app: https://app.challenge4trading.com
- Docs: https://docs.challenge4trading.com
- DefiLlama: Challenge4Trading Perp
- X: https://x.com/Challenge4Trade