Guarda uses the Web3.js library to send/receive ETH, interact with smart contracts, which is necessary for wallets. Web3.js allows the user to interact with the node, receive and send information to the blockchain. Simply put, using this library, we interact with the Ethereum network. For example, a user signs a transaction with their private key, and then sends the transaction data (not a private key, on Guarda your private keys remain with you all the time, no one except you has access to your personal data) to a node that encodes data in the Ethereum internal format and broadcasts it to the network. Web3 allows you to send an already signed transaction to a node ("raw" transaction), which means that your private key is not transmitted to the network, so no one has access to your personal data.
For more information and details, read their official documentation.