submit_crypto_fundingon Solana. A USDC deposit sent on Solana is credited like one on an EVM chain: send its base58 signature astxHash, as it is (signatures are case-sensitive), withchainId101(or901in sandbox).get_crypto_fundinglists Solana indepositTowhere it is offered, with the USDC mint astokenAddress, and your Solana wallets infromWalletswithnamespace: "solana". Nothing changes for EVM deposits. See Fund your cash with crypto.
get_symbolsnames each chain’sisinandcusip(2026-11-04): the identifiers of the security behind that chain’s CET, beside itstokenAddress. They are per chain, since each chain is its own CET. A chain without one leaves the field out rather than sendingnull. Nothing else inget_symbolschanges.
- Correction: a reference the broker refused cannot be used again the same day (2026-11-04). These pages said the reference of an order the broker rejected could be reused. The broker keeps it for the rest of the day, so resending answers
INVALID_ORDERas a duplicate: send the order under a newexternalRef. A reference refused by Securitize before the order reached the broker (your own cash, the symbol, the order’s shape) is still usable. An order the broker refused as it was placed was never created, soget_orderanswersORDER_NOT_FOUNDfor it.
- Only
DAYis supported astimeInForce(2026-11-04). The contract listedGTC,IOCandFOK, but the broker does not offer them through its API:IOCandFOKanswerINVALID_ORDER, and aGTCorder is refused by the broker after itsack. Nothing changes for an order that sendsDAYor leavestimeInForceout. - Tick size for
limitPrice. A price of 1.00 or more must be in whole cents, at most 2 decimal places; the broker refuses a finer one as sub-penny. Only a price under 1.00 may use 4. See Limits on an order.
- New read:
get_crypto_funding(2026-11-03). Where to send USDC to fund your own cash:depositTo, Securitize’s wallets, one per chain and token with the token’s contract and the confirmations a deposit needs, andfromWallets, your own wallets a deposit must come from. When crypto funding is not enabled for you,enabledisfalseanddepositTois empty. Like every read, it is not signed and a read-only key may send it, and it is served over HTTP too, asGET /v1/market-maker/crypto-funding. - New:
submit_crypto_funding. Send thechainIdandtxHashof a USDC deposit you sent to one ofdepositTo, and it is credited to your own cash in USD, one for one, once the transaction succeeded and is final. EVM chains only. Signed likeplace_order; a read-only key answersNOT_PERMITTED. A transaction is credited once, whoever sends it, and sending it again answers the same credit. The credit shows inget_cash_movementsandget_cash_balance_v2; it is not pushed ascash_movement. Two new error codes:DEPOSIT_PENDING, not on chain yet or not final, andDEPOSIT_REFUSED, not credited as sent. See Fund your cash with crypto.
- New read:
get_redemption_balances(2026-10-28). Your redemption balance in every CET you can trade, in one read: theackcarriesbalances, one entry per symbol and chain with the samedeposited,burned,reservedandavailableasget_redemption_balance, sorted by symbol and then chain.symbolandchainIdare optional and narrow the list; nothing matching is an empty list, not an error. Like every read, it is not signed and a read-only key may send it, and it is served over HTTP too, asGET /v1/market-maker/redemption-balances.get_redemption_balanceis unchanged. See Reads over HTTP.
- New: the reads as signed
GETrequests. Your redemption balance, an order, mints, burns, your cash and its movements answer over HTTP too, with no session: the query parameters are the message’s payload fields, and the body is theack’s payload. Every request carries your public key, a timestamp and an Ed25519 signature overtimestamp.GET.path-and-query, with the same key you signhellowith; a read-only key is enough. Failures answer the socket’s codes with an HTTP status. See Reads over HTTP.
- New in sandbox:
sandbox_depositandsandbox_withdraw(2026-10-26). They move USD into and out of your own cash, so you can fund yourself and test the cash flow end to end. Signed likeplace_order, with anamountand your ownclientRef, which never moves money twice. Each is booked about a minute later and pushed ascash_movement. Sandbox only: in production they answerMALFORMED. See Sandbox funding.
quantity,notionalandlimitPricepatterns now reject zero and leading zeros in the contract too, as the server always has.- Reconnect on any close, not only
1001; a session that cannot be opened for a moment (UPSTREAM_UNAVAILABLE) or a clock off by more than 30 seconds keeps the socket: send a newhello. - A symbol your account does not trade answers
INVALID_ORDER, mistyped or not;INVALID_SYMBOLis left for a symbol the broker no longer recognises.
get_positionsis retired. It reported the broker account as a whole, which other clients trade through too, rather than what is yours. Your shares are the CETs in your wallet;get_mintsandget_burnssay how they got there, andget_cash_balance_v2what your orders cost and brought in.
- New read:
get_cash_balance_v2. Your own cash, per currency: what you deposited and withdrew, the fees charged to you, what your orders bought and sold, your balance after all of it (netBalance), what your working buys hold (committed), andavailable, what a new buy can spend. See Your own cash. - New read:
get_cash_movements, the deposits, withdrawals and fees behind your balance, newest first, and a new push,cash_movement, when one is recorded or cancelled. - A buy is paid from your own cash. It must be a
LIMITorder byquantity, andquantity × limitPriceplus its fees is held against youravailablebefore it reaches the broker. A buy that cash does not cover, aMARKETbuy and an order bynotional, buy or sell, answerINVALID_ORDER. With orders in money gone, so is their 100,000 USD ceiling.
- New read:
get_redemption_balance. Send a symbol and achainId, asget_symbolslists them, and theackcarries your own balance in that CET’s redemption wallet:deposited,burned,reservedandavailable. Like every read, it is not signed and a read-only key may send it. - A sell is checked against your redemption balance. The redemption wallet is shared by every account that sells the CET, so each transfer to it is credited to the account whose wallet sent it, and a sell may only draw on what was credited to it and not already held by its other sells. A sell for more answers
INVALID_ORDERwith your figures. Readget_redemption_balanceafter a transfer to know when it has been credited. See Sell shares and redeem CETs.
- New read:
get_redemption_address. Send a symbol and achainId, asget_symbolslists them, and theackcarries the CET’stokenAddressand itsredemptionAddress: the wallet to send the CETs to before you sell. Like every read, it is not signed and a read-only key may send it. A symbol and chain you cannot trade answersINVALID_SYMBOL. See Sell shares and redeem CETs.
get_ordercarriesfeesandfeeTotal: the fees charged on the order’s trades, one per trade with its status, and their sum. Fees are charged after the fill, when each trade reaches the broker’s ledger, so the list can grow after the order has filled. Fees charged before this change are not listed. See Fees.
- Sandbox and authentication shows how to generate the Ed25519 keypair with OpenSSL, print both keys in base58, and what to send Securitize to register it. Any Ed25519 keypair works, whatever chain your CETs are minted on.
- Burns carry
txHash, the hash of their transaction on its chain, already on the firstburn_updated, andget_burnstakes it as a filter. Burns from before this change have none. See The transaction hash. - A burn’s memo is written on chain on Solana, as a mint’s is. The docs said it was not: a burn can be found from its transaction, by
txHash, or on Solana by thetraceIdat the end of its memo.
- Mints carry
txHash, the hash of their transaction on its chain, andget_mintstakes it as a filter. Mints from before this change have none. On an EVM chain the mint transaction carries no memo, so this is the way from a transaction to its mint there. See The transaction hash. - A mint is usually pushed up to three times.
mint_updatedusually comes again within a minute of a mint landing, carrying itstxHash, and the same snapshot can occasionally arrive twice. Overwrite the mint you hold bytraceId, as before.
- Sell shares and redeem CETs says when the CETs count. A transfer to the redemption wallet counts once it is confirmed on chain and recorded by Securitize; a sell placed before then answers
INVALID_ORDERand can be sent again a few seconds later.
- New read:
get_symbols. It lists the symbols you can trade and, for each one, the chains its CETs can be minted on, with the token address on each chain. Like every read, it is not signed and a read-only key may send it. place_ordertakes an optionalchainId. Send it whenget_symbolslists the symbol on more than one chain; without it such an order answersINVALID_ORDER. A symbol on a single chain needs nochainId.- Responses carry
chainId. Theplace_orderack,get_order,get_mints,get_burnsand every push carrychainIdbesidetokenAddress: the chain of the CET, asget_symbolslists it. externalRefis at most 39 characters onplace_order(previously 47).get_orderstill finds orders placed with a longer reference.