Both
tokenIn and tokenOut contain these fields:
Amounts are exact raw decimal strings. Divide by 10 raised to
decimals for the token quantity; use a suitable arbitrary-precision representation to avoid rounding. Buys use USDC as tokenIn, and sells use USDC as tokenOut.
Delivery waits for block metadata and a confirmed or finalized slot update. There is no replay of missed messages or retraction protocol for confirmed trades that later leave the chain. Server-side duplicate suppression covers only a bounded recent window.