Bancor is a protocol for the algorithmic market making exchange with on-chain liquidity.
For each token, there is a dedicated smart contract. In the simplest form, Bancor enables dollar to token exchanges. However, token-to-token transfers are also possible. Bancor Network Token (BNT) used to facilitate trades between different tokens by being an intermediate token.
Liquidity for the tokens is stored in smart contracts. At any time, providers can supply and draw tokens to the liquidity pool. Exchange price is defined by the corresponding supply of the dollar stored in reserves: the price goes up when more people want to buy the token with dollar and down when people want to sell it. As market making is algorithmic and price discovery is automatic, there is always enough liquidity for trades, as long as price slippage is not a concern.