# wallet and smart contract connection

I am just here to make sure that i understand what smart contract wallet and what wallet means. These 2 guesses of mine are highly related so what my question is simple. Am I right about assuming the below notes ?

• Is it possible to write a wallet which supports transfering eth from your account to other account by just using web3 ? I guess yes, but that wallet would need the private key to sign a transaction. This type of wallet exists and it can exist without even any touch/interaction with smart contract. Am I right ?

• There's another type of wallet we can write - smart contract wallet. Now, for the app, we still need web3, but now, our contract can have more features - multi confirmation, .e.t.c. We could have these advanced features if we didn't use smart contract wallet, just like in my first example, but in this case, the code of multisig code and many advanced features wouldn't be visible to the user and could be changed by whoever write it. With smart contracts, it's much much safer.

• For the first bullet - you are right. – goodvibration Dec 16 '20 at 23:24
• For the second bullet - We could have these advanced features if we didn't use smart contract wallet, just like in my first example - not clear what you're saying here, but it sounds like a direct contradiction of the first bullet, so it's wrong as far as I understand it. – goodvibration Dec 16 '20 at 23:25
• if we don't have smart contract wallet, and just ordinary wallet, we could still build those advanced features, but multi owners and things like that would need to be stored on a centralized database. smart contract wallet just allows you to see everything clearly on a public blockchain and still have the advanced features. Right ? – Nika Kurashvili Dec 16 '20 at 23:27
• Yes, that's right. Note that there is one more thing that you could never do in a sophisticated wallet as you've described - several operations (in essence, function calls and eth transfers) in a single atomic transaction. That can only be implemented by aggregating those operation in a smart contract function (and then call it from your web3 script or dapp or whatever. – goodvibration Dec 16 '20 at 23:30
• Why is that critical? Because there's no way for you to guarantee that no other operation (by other participants) will take place in between your operations, changing the state of the blockchain and impacting the result of your own set of operations. – goodvibration Dec 16 '20 at 23:32