AcalaSwap is an automated market maker (AMM) styled decentralized exchange protocol implemented and deployed as upgradable runtime modules (aka pallets) on both the Acala and Karura networks. AcalaSwap will also be available as pre-compiled Smart Contracts on the EVM+ of both networks. AcalaSwap supports both native Substrate tokens and ERC-20 tokens seamlessly.
AcalaSwap contains multiple liquidity pools each of which is made up of two different tokens e.g. Token A-B pool and Token B-C pool. Users can swap any token to any other token in a single transaction provided there is a path between them e.g. even if there's no Token A-C pool, users can still swap Token A for Token C, given they have a common path via Token B.