It's possible! But it's complicated :]
The main reason is block.io are using multisig addresses, meaning that it's not the usual address that you can redeem funds with only one private key, but here we require two private keys to sign every transaction.
EDIT - This solution used to work for some time, but it doesn't work at the moment
It seems that blockdozer.com changed their API and their AJAX/CORS policy in some way that makes it impossible to query outputs and to submit transactions. I was able to overcome their AJAX by disabling security on the browser, however the raw transaction that's being generated contains special characters such as "|" and the API doesn't support that. It did work about a month ago though, but not any more
Since Ik'm no expert on this I submitted a comment to the developer that implemented bitcoin cash support in Coinb.in, I'll update here once I get a response. Here's the PR and comment in Github:
https://github.com/OutCast3k/coinbin/pull/113
Phase one - Acquire your private keys
First phase is to your private keys from Block.io - Log into your wallet, go to "Settings", then press "Private Key Access". You'll get an email with instructions how to proceed. At the end of this process you should have a file that contains something like this :
* Address: 3ET4FuXvHahN4WwrJ3dyCLsoVbDVZtVEUU
* Address Type: P2SH
* Required Signatures: 2
* Redeem Script: ....
* Redeem HEX: 5221039960aa771270362b7e49400433e103c59e12c6a43a946d4b048f7efcc68bc0bf21028825d729387c6b0aafae1c47802c62d7f965de1800d6122143c681044c50700452ae
* Public Keys: ["039960aa771270362b7e49400433e103c59e12c6a43a946d4b048f7efcc68bc0bf","028825d729387c6b0aafae1c47802c62d7f965de1800d6122143c681044c507004"]
* Private Keys: ["KyubGochD3MkXW4KkT95K6FXbZSrtHg6creF6xaRDc9C3qkyidza","KxFLJ2n76i2W9WB2YdJd1zCL2Kmgpk1vfB2XEynSpQWsYCe4bfqn"]
Phase two - coinb.in
I tried to do it the easy way using Electron Cash - there's an option there to import multi sig addresses but it doesn't work. I had to sign the transaction manually and broadcast it to the BCH main network. coinb.in is an awesome tool to do that, however at the moment the pull request for using BCH isn't merged yet, I deployed a version of the tool here :
http://galed.codus.net/coinbin/
Alternatively, If you want to be extra cautious you can run the tool on your local machine by running these commands :
git clone https://github.com/dabura667/coinbin.git
cd coinbin
git checkout bitcoincash
open index.html
Phase three - signing a transaction and braodcasting
PLEASE PLEASE PLEASE WATCH THE INSTRUCTIONS in this youtube video to get a better sense of what needs to happen: https://www.youtube.com/watch?v=oUSVmLegj8k - If you're dealing with large sums of BCH you could end up losing everything, so please be careful!
The one difference is that you need to be careful to choose the bitcoin cash network, otherwise you'll be broadcasting transactions on the BTC network:
- Click New -> Transaction
- Enter the redeem HEX that you received from block.io in the first box (Address, WIF key or Redeem Script)
- Click on "Advanced options" and change the network to "Bitcoin Cash mainnet"
- Put in the amount you want to transfer and the address, make sure that the fee is not too high
- Click submit, you will get a long HEX string. copy it
- Go to "Sign" , paste the string, paste the first private key from the file that block.io sent you, click "Submit", Copy the string
- Paste the string into the second box, copy paste the second private key from the block.io file, click Submit, copy the output
- Go to "Broadcast", paste the string and submit.