Binance spun up their own fork of the Gnosis Safe interface at https://gnosis-safe.binance.org which will be shut down on September 1, 2021.
Binance used their own deployment of the Gnosis Safe contracts, hence Safes created via the Binance interface aren't directly compatible with the official Safe interface at https://bsc.gnosis-safe.io/app/.
Instead, users would have to create a new Gnosis Safe on https://bsc.gnosis-safe.io/app/ and move all their funds over. As long as the Binance interface is still available, we recommend using it. Starting September 1, 2021 however, it won't be available.
This article describes on how to use the command line to transfer out funds. The article is written for BSC, but should work for other networks as well.
Please note: This guide requires some technical understanding on how to use the command line and Ethereum. Please use at your own risk.
This guide assumes a Safe at 0x7943fdC45224986ECf11A408f49b65dE5Bc2a03f
which was created via https://gnosis-safe.binance.org with 3
owners and a threshold of 2
, i.e. 2 signatures are required to execute transactions.
This tutorial will transfer out 1.234 BNB as well as 2.345 Binance USDC and 3.456 Binance DAI out.
Please replace with your Safe address and your desired tokens accordingly.
We will be using the safe-tasks
tool at https://github.com/gnosis/safe-tasks/.
Clone or download https://github.com/gnosis/safe-tasks/.
Setup
safe-tasks
as described in the Install sectionEdit
.env
with thePK
orMNEMONIC
of one of the Safe owner accounts.Refer to this guide on how to export a private key from an account in Metamask.
Edit
.env
and setNETWORK="bsc
"Run
yarn safe info 0x7943fdC45224986ECf11A408f49b65dE5Bc2a03f
to double check installation was successful.Create a new file called
send_assets.json
with the following content:[
{
"to": "0xTHE_ADDRESS_OF_THE_RECIPIENT_HERE",
"value": "1.234",
"operation": 0
},
{
"to": "0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d",
"value": "0",
"method": "transfer(address,uint256)",
"params": ["0xTHE_ADDRESS_OF_THE_RECIPIENT_HERE", "2345000000000000000"],
"operation": 0
},
{
"to": "0xe9e7cea3dedca5984780bafc599bd69add087d56",
"value": "0",
"method": "transfer(address,uint256)",
"params": ["0xTHE_ADDRESS_OF_THE_RECIPIENT_HERE", "3456000000000000000"],
"operation": 0
}
]Item 2 and 3 in this JSON array are the 2 ERC20 token transfers. Please replace/add accordingly.
Again: Please only continue if you know what you are doing.
Initiate transaction via
yarn safe propose-multi 0x7943fdC45224986ECf11A408f49b65dE5Bc2a03f send_assets.json --on-chain-hash
Note and copy the
Safe transaction hash
in the last line.Sign transaction with
yarn safe sign-proposal 0x33c809879969374c90cc59fec68d43e7bf2f7bd9ecaaad3d917e30a4d0ac1eb7
Replace with your Safe transaction hash accordingly.
If you haven't reached the threshold yet, replace the
PK
orMNEMONIC
in.env
with another Safe owner and repeat step 10.Repeat steps 10 and 11 until you have collected enough signatures.
Now execute the transaction with
yarn safe submit-proposal 0x33c809879969374c90cc59fec68d43e7bf2f7bd9ecaaad3d917e30a4d0ac1eb7
Now you transaction will be executed and the fund will soon we accessible at the recipient address.