Set one side or both. A side you leave out stays
any.
Variants
GET /api/v1/assets lists each Asset’s variants, each with a kind and the chains it is deployed on:
New kinds can appear. Treat a
kind you do not recognise as “other”, and as not native.
Each quote states the variant on each side in sell.variant and buy.variant, for example {"kind": "native", "name": "ETH"}.
What you see when a variant is left out
The filter acts on the routes each venue could take, not on whole venues. A venue that can still trade the native variant quotes as usual. A venue whose only route for this pair uses another variant is not asked, and readsunavailable with reason onchainAssetVariantFiltered:
buy: "nativeOnly", while your venue accounts, which hold native ETH, still quote.
On GET /api/v1/prices, variants.sell and variants.buy filter the same way, and a row for a variant you left out is not returned.
Refusals
In the app
The trade page has no control for this. A shared link can carry it in itsnative parameter (pay, receive or both), and it then shows as a Native only chip you can remove.