Communication happens over a bridge server that relays messages without access to their content. The contents are encrypted using the session data shared by the QR code or deep link between the dapp and the wallet. Read more about it in our documentation. Wallet Connect Labs runs a public bridge server, but you can also deploy your own.