The best way to do this is through the safe-cli.
pip3 install -U safe-cli
safe-cli <safe_address> <node_url>
load_cli_owners MY_PRIVATE_KEY_1 MY_PRIVATE_KEY_2
send_ether <address> <value-wei>
Why?
Existing Safe addresses on Eth mainnet re-created on L2/sidechains (and vice versa) do not load up within our UI. This is because they use different singleton contracts. Therefore, users would need to load these newly created Safes via another UI e.g. through our command line interface: https://github.com/gnosis/safe-cli.
source
You can run that script above to send the tokens from your Safe to your desired network.
Note: You can't send tokens cross-chain so you can send those tokens to your EOA/Metamask account and then bridge them to Polygon. Note that bridging tokens has risks so I recommend you do the following:
- Use safe-cli to send tokens from Safe to EOA/Metamask
- Bridge from Ethereum to Polygon
- Swap wrapped/bridged token on Polygon to native Polygon token
Running stuff from the command line can be hard so I made this notebook to make it easy to use safe-cli from your browser. Just click the play arrow beside each cell and it will run it automatically for you.
Note: In the example above I'm assuming that you need 2 signers, thus 2 private keys, to send a transaction. Change the number of private keys based on your Safe rules.
- For
node_url
you can use https://polygon-rpc.com or https://chainlist.org/ to find other RPC urls for polygon and other networks.