We have been trying for days to publish our Token Contract using our Gnosis Safe multisig wallet on Ethereum Remix, and running into errors during the publishing step each time.

We have done the following:

  • When using Ethereum Remix, we've signed up for and utilizing an Infura ID to enable us to use Wallet Connect to connect with Gnosis Safe
  • We have been using the iOS version of both Gnosis Safe and MetaMask (which is where it opens our personal wallets to do the first-of-two signing)
  • We have failure points at one of these two steps, each time:
    1. During the switch to MetaMask to do the signing, it will not pop up the Confirm box to confirm the transaction (30% of the time)
    1. After the MetaMask signing, it will not confirm/proceed within Gnosis Safe (or Remix), giving a blend of errors all related to "Unexpected Error", requesting us to reach out to support (70% of the time)

Is there a best practice and/or a guide around how to do this type of multi-sig transaction properly? Is there a different tool we should use instead of Remix to publish our Token Contract?

Thank you so much and let me know if I can provide any more needed info!



1 Answer 1


When using Safe with WalletConnect keys, it might be flaky because the communication between apps is using a bridge server, so there might be networking issues. Also, WalletConnect in MetaMask is not very stable. We recommend cleaning the WalletConnect sessions in MetaMask —> Settings —> Experimental from time to time.

If the MetaMask key does not work well for you, I recommend importing your MetaMask private key to the Safe app. It will remove bridge server dependency and will be more stable.

Your contract creation fails because it is not possible to create a new contract by directly using the 0x0 address as a recipient. But it is possible if you use an intermediate contract that would use create2 or create opcodes.

Here you can find such contract https://github.com/gnosis/safe-contracts/blob/main/contracts/libraries/CreateCall.sol

Contract deployments: https://github.com/gnosis/safe-deployments/blob/main/src/assets/v1.3.0/create_call.json

Here you can find a hardhat plugin to deploy it programmatically https://github.com/rmeissner/hardhat-safe-deployer

I hope this information will help you!

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.