I'm trying to deploy a smart-contract using Gnosis-safe's Transaction Builder by setting an empty ABI [], the target address to the zero address (0x00...0), value to 0 and passing the custom hex data as the contract's bytecode, generated through hardhat. The UI goes through but gets stuck after I sign the transaction so I'm wondering if this is possible at all. Thank you

Images: transaction stuck after signing

1 Answer 1


If you want to deploy a contract via a Safe you need to use a deployment proxy.

In the Safe repository you can find the CreateCall for this, but there are also community based contract for this (e.g. https://github.com/Arachnid/deterministic-deployment-proxy).

Important to note is that when you use these deployment proxies is that the msg.sender in your deployed contract will be the proxy and not your Safe.

If you want that msg.sender is your Safe then you have to use a delegatecall when creating the Safe transaction (which is not possible via the transaction builder).

If you use hardhat you can try this library: https://github.com/rmeissner/hardhat-safe-deployer

Note: Deploying a contract by only specifying the data for a transaction is something specific to EoAs and will not work for smart contracts.

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.