I have two questions:

1- Is it possible to forego creating an EOA with social logins (i.e., "Sign in with Google") and directly create a smart wallet? Currently, I believe we first need to create an EOA with social logins (via Auth kit) and then create a Safe. (via Protocol kit).

2- Whether this is doable or not, Does Safe support counterfactual deployments? Meaning that we could precompute a smart contract wallet address before deploying it and be able to send funds to it.

Here is one common scenario which we need counterfactual deployments for:

Let's say we have a user in our wallet, we want to create multiple smart wallets (on Mainnet, Optimism, etc) on Safe for this user but we don't want to deploy any wallets before there's any activity on it to avoid costs. This is why we're looking at counterfactual deployments. We want to know the Safe wallet addresses before "deploying" them but deploying them only when the user tries to receive or send funds with it. (Again mainly to avoid unnecessary costs)

1 Answer 1

  1. As of now, this is not possible, you need to do both in separate actions using the SDK.
  2. Yes, you can use Safe{Core} SDK protocol kit create method to generate the address of a Safe and then deploy it later using deploySafe. You can use most of the methods from the protocol kit on this counterfactual safe, as if it was deployed. Be aware that when you deploy it, the safeAccountConfig must be exactly the same as it would result in the safe being deployed at a different address otherwise.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.