Skip to Content
EnDocs
Markets API
RWA Market Data

RWA Market Data

OpenAPI endpoints for on-chain RWA (e.g. tokenized US equities) market data. See Authentication for request signing.

Basics

ItemValue
Path prefix/bgw-pro/market/v3/rwa
Content-Typeapplication/json
Response envelope{ "status": 0, "data": ..., "traceId": "..." }

Endpoints

APIMethodPathDescription
Stock detailPOST/bgw-pro/market/v3/rwa/stockInfoStock detail
Contract checkPOST/bgw-pro/market/v3/rwa/checkContractIsRwaWhether chain+contract is an RWA token
Full listPOST/bgw-pro/market/v3/rwa/stockListAll RWA tickers and tokens (incl. offline)
TransactionsPOST/bgw-pro/market/v3/rwa/transactionListMinimal transaction list (paginated)
K-linePOST/bgw-pro/market/v3/rwa/klineMinimal K-line (paginate by end time)

Response envelope

{ "status": 0, "data": {}, "traceId": "xxxx" }
statusMeaning
0Success
1Failure; data is an error message string

Error example:

{ "status": 1, "data": "chain and contract are required", "traceId": "xxxx" }

Common enums

Data source data_source

ValueDescription
ondoOndo
xstocksxStocks
realityReality

Ticker status status

ValueDescription
onlineActive
offlineDelisted

Contract status status (inside contracts)

ValueDescription
onlineActive
offlineDelisted

Market status market_status

ValueDescription
openMarket open
closeMarket closed

Market status code market_status_code (ondo / reality; empty for xStocks)

ValueDescription
regularRegular session
premarketPre-market
postmarketAfter-hours
overnightOvernight
pausedPaused
closedClosed

K-line period period

periodMeaning
1s / 5s / 15sSeconds (xStocks only)
1m / 5m / 15m / 30mMinutes
1h / 2h / 4h / 6h / 8h / 12hHours
1d / 3d / 1wDays / week

Default period is 5m when omitted. ondo / reality do not support second-level periods (1s/5s/15s) or 12h.


Stock detail

Request Path: /bgw-pro/market/v3/rwa/stockInfo

Request Method: POST

Returns stock detail. Use either ticker or chain+contract.

Supports data sources ondo / xstocks / reality. Reality contracts return data_source=reality with market open/close status.

Request Parameters:

{ "ticker": "TSLA", "chain": "", "contract": "", "has_offline": false }
FieldTypeRequiredDescription
tickerstringOne of twoStock symbol; normalized server-side
chainstringOne of twoChain name (e.g. eth/sol/morph); send with contract
contractstringOne of twoContract address
has_offlineboolNoInclude offline data; default false

Response Example:

{ "status": 0, "data": { "ticker": "TSLA", "name": "Tesla, Inc.", "icon": "https://.../tsla.png", "latest_price": "228.52", "price_24h_change": "1.23", "price_24h_change_ratio": "0.0054", "chain_assets": [ { "chain": "sol", "chain_icon": "https://.../sol.png", "chain_name": "Solana", "icon": "https://.../token.png", "symbol": "TSLAx", "name": "Tesla xStock", "contract": "XsDoVfqeBukxuZHWhdvWHBhgEHjGNst4MLodqsJHzoB", "decimals": 8, "latest_price": "228.52", "price_24h_change": "1.23", "price_24h_change_ratio": "0.0054", "tx_maximum_buy_usd": "0", "tx_minimum_buy_usd": "0", "tx_maximum_sell_usd": "0", "tx_minimum_sell_usd": "0", "data_source": "xstocks", "market_status": "open", "market_status_title": "Open", "market_status_code": "" } ] }, "traceId": "xxxx" }

Check contract

Request Path: /bgw-pro/market/v3/rwa/checkContractIsRwa

Request Method: POST

Checks whether chain+contract is an RWA token and returns ticker and data source (includes offline mappings). data_source may be ondo / xstocks / reality.

Request Parameters:

{ "chain": "sol", "contract": "XsDoVfqeBukxuZHWhdvWHBhgEHjGNst4MLodqsJHzoB" }
FieldTypeRequiredDescription
chainstringYesChain name (Reality example: morph)
contractstringYesContract address

Response Example:

{ "status": 0, "data": { "is_existed": true, "stock_ticker": "TSLA", "data_source": "xstocks" }, "traceId": "xxxx" }

For Reality matches, data_source is "reality". When not matched, is_existed is false and stock_ticker / data_source are empty strings.


Full list

Request Path: /bgw-pro/market/v3/rwa/stockList

Request Method: POST

Returns all RWA tickers and contract mappings (including offline items via status). No request body fields. A single ticker may include contracts from multiple data sources (ondo / xstocks / reality).

Request Parameters:

{}

Response Example:

{ "status": 0, "data": { "list": [ { "ticker": "TSLA", "name": "Tesla, Inc.", "icon": "https://.../tsla.png", "status": "online", "contracts": [ { "chain": "sol", "contract": "XsDoVfqeBukxuZHWhdvWHBhgEHjGNst4MLodqsJHzoB", "symbol": "TSLAx", "data_source": "xstocks", "status": "online" }, { "chain": "morph", "contract": "0xabc...", "symbol": "TSLAr", "data_source": "reality", "status": "online" } ] } ] }, "traceId": "xxxx" }

Transaction list

Request Path: /bgw-pro/market/v3/rwa/transactionList

Request Method: POST

Minimal on-chain transaction list with pagination. Query by chain+contract; for Reality use the real chain (e.g. morph). Off-chain data is not supported.

Request Parameters:

{ "chain": "sol", "contract": "XsDoVfqeBukxuZHWhdvWHBhgEHjGNst4MLodqsJHzoB", "side": "", "page": 1, "size": 20 }
FieldTypeRequiredDescription
chainstringYesChain name (use morph for Reality)
contractstringYesContract address
sidestringNobuy/sell; empty = all
pageintNoPage number; default 1
sizeintNoPage size; default 20; capped at 100

Response Example:

{ "status": 0, "data": { "list": [ { "side": "buy", "tx_from": "0x123...", "tx_hash": "0xabc...", "amount": 1.5, "price": 228.52, "value": 342.78, "ts": 1718600000 } ], "page": 1, "size": 20 }, "traceId": "xxxx" }

K-line

Request Path: /bgw-pro/market/v3/rwa/kline

Request Method: POST

Minimal K-line, paginated backward from end_time. Routes by data source:

ConditionData path
chain=rwaOff-chain (contract is ticker)
Data source ondo / realityRWA service K-line for that source
Other (incl. xStocks)On-chain K-line

Request Parameters:

{ "chain": "sol", "contract": "XsDoVfqeBukxuZHWhdvWHBhgEHjGNst4MLodqsJHzoB", "period": "5m", "size": 200, "end_time": 0 }
FieldTypeRequiredDescription
chainstringYesChain name (e.g. eth/sol/morph); use rwa for off-chain
contractstringYesContract address; ticker when chain=rwa
periodstringNoK-line period; default 5m
sizeintNoBar count; default derived from period
end_timeint64NoEnd timestamp (seconds); omit for latest

Response Example:

{ "status": 0, "data": { "list": [ { "ts": 1718600000, "open": 228.0, "high": 229.5, "low": 227.8, "close": 228.52, "volume": 12345.6, "amount": 54.0, "txn": 12 } ] }, "traceId": "xxxx" }

volume, amount, and txn may be present for on-chain and Reality K-lines; ondo usually omits them.

Reality example:

{ "chain": "morph", "contract": "0xabc...", "period": "5m", "size": 200 }
Last updated on