Skip to Content
EnDocs
Trading API
RWA Trading

RWA Trading

Bitget Wallet Trading API now supports on-chain RWA (Real World Assets) liquidity, enabling bidirectional swaps between any on-chain token (AnyToken) and tokenized US equities and other RWA assets (RWA Tokens).


Integrated RWA Liquidity

Reality , Ondo Finance , and XStocks  are integrated today; more will be added over time. When quoting or placing an order, set fromContract and toContract to the RWA Token contract on the target chain. The aggregator selects the route by asset. You do not need extra parameters per liquidity provider, and you do not need to pick RFQ vs AMM manually.

Reality

Reality  offers tokenized US equities, ETFs, and more (rTokens), fully backed 1:1 and custodied by Alpaca.

  • Common chains: Arbitrum, Morph (per quote).
  • Routing: Mostly official RFQ, executed through the aggregator for AnyToken ↔ rToken swaps.
  • Notes: Quotes have a short validity—refresh them before the user signs. Quotes may be unavailable during US market closures.

Ondo Finance

Ondo Finance  offers tokenized USD, US equities, precious metals, treasuries, and more.

  • Common chains: ETH, Base, Solana, BNB, etc. (per quote).
  • Routing: Mostly official RFQ, executed through the aggregator for AnyToken ↔ RWA swaps.
  • Notes: Quotes have a short validity—refresh them before the user signs. Quotes may be unavailable during US market closures.

XStocks

XStocks  offers tokenized US equities, precious metals, and more.

  • Common chains: Solana, ETH, TON, Ink, BSC, Mantle, etc. (per quote).
  • Routing: May use official AMM pools or combine with other on-chain liquidity—follow the quoted route.
  • Notes: Some tokens use Rebase; dividends change balance quantity. Watch pool depth and slippage. Use asset list or market APIs for contract addresses and chain IDs.

Platform Capabilities

AnyToken ↔ RWA Asset Swaps

Native RWA liquidity typically covers only a few fixed pairs and cannot swap an arbitrary token straight into RWA. The Bitget Wallet aggregator combines quotes from multiple market makers into a multi-hop route at quote time. Integrators pass only the AnyToken and RWA Token contracts, and the aggregator handles the intermediate hops so users can swap in either direction.

Full Settlement in One Shot

Multi-hop routes can partially fill or fail on-chain when different liquidity types are stitched together carelessly. On RWA-related paths Bitget Wallet uses a consistent quote-based matching style, so each hop’s input and output amounts are fixed when the transaction is built. The full trade settles in one shot at the quoted sizes, reducing partial fills and amount mismatches across hops.


Integration Tips

  • Quotes expire: refresh about every 5 seconds before signing; Ondo may have no quote during market closures.
  • Follow the quote: Supported chains and whether the path is RFQ multi-hop or AMM come from /quote or getSwapPrice—do not hard-code route types in your app.
  • XStocks Rebase: Balances may change with dividends; adjust UI and reconciliation accordingly.
  • Slippage and depth: When pools or routes are thin, watch priceImpact, slippage, and minimum order size.

Integration Modes

RWA swaps reuse the same APIs and flow as generic Swap. Both Instruction Mode and Order Mode support RWA. See Trading API Overview when choosing between them.


RWA Dividend Claim

Generates Reality RWA dividend claim transaction data (contract + calldata) for the integrator to sign and broadcast. This endpoint does not submit the transaction on-chain.

Request Path: /bgw-pro/swapx/pro/rwa/claim

Request Method: POST

Request Parameters:

Field NameField TypeRequiredDescription
addressstringYesUser EVM wallet address
chainstringYesChain identifier, e.g. arbitrum; must be a claim-enabled chain

Request Example:

{ "address": "0xd8FeBD1C242a282f1b8226d34282942F6F63248b", "chain": "arbitrum" }

Response Description:

Parameter NameParameter TypeRequiredDescription
statusnumberYesResponse code, 0 indicates success
dataobjectYes-
claimsarrayYesList of claimable dividend transactions; empty array [] when nothing is claimable
claims[].sourceAssetstringNoSource asset identifier for the dividend
claims[].payoutAssetstringNoPayout asset identifier
claims[].unclaimedstringNoClaimable amount
claims[].contractstringNoDividend distributor contract address (transaction to)
claims[].calldatastringNoClaim transaction calldata
claims[].valuestringNoNative coin value attached to the call; currently "0"

Response Example:

{ "status": 0, "error_code": 0, "data": { "claims": [ { "sourceAsset": "0xSourceAsset...", "payoutAsset": "0xPayoutAsset...", "unclaimed": "12.345678901234567", "contract": "0xDistributor...", "calldata": "0x...", "value": "0" } ] }, "msg": "success" }

Notes:

  • Only claim-enabled chains are supported; unsupported chains return 80013.
  • The endpoint only returns unsigned transaction data; signing and broadcasting are done by the integrator.
  • Generation failures return 80025; see Error Codes for other codes.

Further Reading

Last updated on