Split one token amount across marketplace recipients with exact basis-point accounting and no stranded dust.
Pay a seller, platform, and referrer in one transaction. Express every share in basis points, require the shares to total 10,000, and assign integer-division remainder to one designated recipient.
The contract emits PayoutSent for every leg with the shared splitId. That reference fills the role of a payout memo for both USDC and B20 without depending on token-specific memo methods.
All shares sum to the input amount exactly, including the rounding remainder, and the split routes each leg directly from the payer to its recipient.
Define who receives rounding remainder in your commercial terms. Also approve only the amount needed for the split and verify recipient addresses before submitting the transaction. Do not include the token contract’s own address as a recipient — B20 tokens reject transfers to address(this) with InvalidReceiver, and any balance credited there would be unrecoverable.