USDC carries no chain. Left open, a search asks every venue for every place the Asset can be: on any chain it is deployed on, and on your connected venue accounts. You narrow that in two ways:
- pin a side to one chain with
sell.chainorbuy.chain; - choose where quotes execute with
filters.locations.
Take chain ids from the deployments that
GET /api/v1/assets lists for each Asset, never from a fixed list.
Where a quote executes
mixed describes a quote, not a place you can ask for: it is not a filters.locations value, and sending it is refused with 400 INVALID_REQUEST.
Single-chain
Pin both sides to the same chain and keepsingleChain:
Cross-chain
Pin the two sides to different chains. To move one Asset between chains, the same Asset goes on both sides, and at least one side must be pinned:eta tells you how long delivery is expected to take, as an ISO 8601 duration such as PT10S.
Off-chain
KeepoffChain and pin no chain. Only your connected venue accounts can answer:
What happens to the venues you exclude
A venue whose quotes cannot match your pins or locations is not asked. It stays insources with status: "filteredOut":
filteredOut, and an off-chain search lists on-chain protocols, bridges and solvers the same way. When nothing is left to answer, quotes is empty and sources shows why.