In general there are 3 types of crypto-wallets - exchange wallet, a wallet by commercial provider and a private wallet. For more details please check this article -
What do I need to know before creating a blockchain wallet
A crypto wallet by commercial provider and a private wallet can only do sending coins to an address and check for receiving of coins. The exchange wallet allows moving to/from fiat and/or other crypto-coins.
A hardware wallet usually stores the private keys off-line. The user has to transfer the keys from hardware wallet to one of the 3 types of wallets to be able to do any type of a transaction.