Identifying a stock
No endpoint lists the stocks you can offer: your Securitize contact gives you the list, with these values for each one.
A stock has two contract addresses, one to buy and one to sell; sending the wrong one answers
SYMBOL_NOT_FOUND. ISTs and CETs are identified and traded the same way.
Chains
Each stock trades on one chain, named in the list from your Securitize contact. The investor links one wallet per chain, andblockchainType on the wallet calls names it. Today every stock is on Solana:
The calls, the order flow and the amounts are the same whatever the chain.
Amounts are base units
Every amount is a raw integer in the token’s base units, as a string of digits: no decimal point, no sign.
To convert, multiply by
10^decimals and drop what is left after the decimal point: rounding down never asks for more than the investor has, or promises more than they accepted. Use integer or decimal arithmetic, never floating point.
slippageBps is a string of digits too: "50" is 0.5%.
Prices are decimal strings
Prices (bestBid, bestAsk, mid, lastPrice) are decimal strings with 18 decimal places: "231.250000000000000000". Compare and compute with them as decimals. Market statistics are plain numbers, for display only.
additionalData.anchorPrice on a prepared order is the reference price embedded in the transaction, scaled by 10^18: "231250000000000000000" is 231.25. It is the best offer on a buy and the best bid on a sell.