What users can buy
The markets endpoint returns the live catalog with prices, 24h change, APY and TVL for yield assets, and whether each market is open right now.
Before you start
- An API key. See the Quick Start.
- A Tokenized Assets Account for the user on the asset’s chain, holding USDC. See Create an Account and Fund an Account.
1. Find a market
symbol, current_price_usd, asset_class and status.is_open. Equities follow US market hours, and status.next_open says when a closed market reopens. Filter with provider, asset_class, chain, category or search.
2. Buy
Which call you make depends onasset_class. Equities use signed orders. Everything else is one transaction.
Equities: place an order
1
Build the order
Buy 100 USDC of
TSLAon:slippage_bps is in basis points: 50 is 0.5%.2
Approve the input token (first order per token only)
If the response includes
approval_safe_tx_eip712, the user signs it as EIP-712 typed data, and you relay it through POST /v2/gas_sponsorship/prepare with product: "tokenized_assets". Wait for that transaction to confirm before submitting the order. Later orders with the same input token skip this step.3
Sign and submit the order
The user signs Pass
order.safe_message_eip712 as EIP-712 typed data. This signature never goes on-chain: it authorizes market makers to fill the order.order_message, extension and quote_id back exactly as you received them.4
Poll for the fill
status is pending, then filled (with fill_tx_hash), expired if no market maker filled it in time, or cancelled. The tokens land in the user’s account when the order fills. To cancel a pending or expired order, call POST /v2/tokenized_assets/order/{order_hash}/cancel and relay the returned typed data like the approval.RWA tokens, vaults and deRWA: one transaction
Buy 1,000 USDC ofmTBILL on Ethereum:
token_out to the vault address or the token symbol from the markets list, and chain to bsc or base. slippage is in percent: 0.5 is 0.5%.
3. Track positions
balance, current_price_usd, balance_usd and a pnl block, and the account has a total_usd. The read is per chain: pass chain=base or chain=bsc for holdings there.
4. Sell
- Equities: build an order with the equity as
from_tokenandUSDCasto_token, then submit and poll as above. - Everything else: call
POST /v2/tokenized_assets/transact/sellwith the token astoken_inandUSDCastoken_out. Midas and Centrifuge sells settle in the same transaction. An IXS redemption isasync: the vault operator settles it later, so pollGET /v2/tokenized_assets/redemptionsuntil it’sfinalized.
transfer. See Withdraw Funds.
Good to know
- Two trade flows, enforced. An RWA symbol on
/orderreturns422 Wrong trade flow, and an equity on/transact/buyreturns422. Branch onasset_class. - Fees. Add a
feetotransact/sellto take a share of the USDC proceeds. For equities, callPOST /v2/tokenized_assets/order/{order_hash}/charge_feeafter a sell fills. See Embedded Fees. - Gas sponsorship.
transact/buy,transact/sellandtransferacceptgas_sponsorship: true. Equity approvals and cancels are always relayed throughprepare. See Gas Sponsorship. - deRWA tokens are Regulation S instruments. Their markets carry
restricted_jurisdictions(["US"]). The API reports it but doesn’t enforce it. Geo-gating is your responsibility. - APYs here are fractions (
0.0512is 5.12%), unlike Earn and Credit, which return percentages. - USDC on BNB Smart Chain has 18 decimals. Amounts are always in token units, so
"1000"still means 1,000 USDC.
Errors
Endpoints
Next
Perpetual Trading
Stocks, commodities and forex as perps, with leverage.
Embedded Fees
Earn a fee on every sale.
Gas Sponsorship
Pay gas for your users so they never need ETH.