Although I consider myself fairly knowledgeable on the Internets and related technologies (Trust me, I am an engineer), I have hit a few stumbling blocks. Here they are, along with few interesting notes, in chronological order. I started on May 16th with a search query 'buying ethereum with bitcoin':
Step 1: Figuring out the currency/exchange to use
It is possible to buy Ethers using a few different currencies/exchanges. I do have few bitcoins in different wallets. One of these wallets is at Coinbase. Based on what I have been reading online, I decided the quickest way would be to transfer bitcoins (BTC) out of Coinbase.
Two exchanges, Kraken and Poloniex are often mentioned as top exchanges for ETH-BTC. I decided to open an account at Kraken and transfer bitcoins from Coinbase.
I was able to open an account and get a verification for Tier 1 (to trade between all currencies, with account funding limited to digital currencies only) fairly fast. This was in May 17th:
At some point, I was entering detailed information since the account is basically an investment account. Interesting fact: I was able to get a verification with my fake online DOB.
Step 2: Figuring out the transfer of Bitcoins
I was new to the Kraken web site, and trying to pull the transfer off with a few minutes to spare, while debugging code. My brain could not handle it (Multi-tasking is a myth!), I could not figure out the steps to transfer bitcoins. (It is pretty straight-forward: Click Funding tab, click Bitcoin on the left side menu, once deposit address shows up, use it to transfer coins, via a. copy/paste, b. QR Code, c. wallet.) Kraken web site is actually pretty decent.
While fiddling with the site, I was also downloading Ethereum Wallet (aka Mist). The installation on Mac was straight-forward, but the wallet refused to sync with other nodes/peers for a very long time.
This is a very common problem, and one quick fix is -sometimes- synching your time server. (Tried to fiddle with my time server settings too. (Multi-tasking while PyCharm open is a myth!) My wallet refused to find any nodes inside my company intranet. (The discussion on opening an IT ticket for blockchain-related apps is ongoing. We actually need these apps to work on some new projects.) But, I was able to sync the wallet from home.
Ethereum-Wallet makes it very easy to deposit Ethers using Bitcoins. Under your account, you will see 'Deposit using Bitcoin' button on the right:
This will popup a window that will let you a. select coins to pay with, b. enter ETH amount, and c. return and email addresses. in the next step you will be shown a Bitcoin address to transfer from the required amount of coins for the number of Ethers you want to buy.
This transfer is "Powered by ShapeShift.io." Your bitcoins will be transferred to their account and then Shift will transfer correct amount of Ethers (minus the fee in Bitcoins) to your Ethereum wallet address.
From Coinbase (or your Bitcoin wallet, etc), transfer the exact number of Bitcoins shown on the page. When you transfer the coins successfully (this is usually very fast), the first step will be completed. As soon as the transfer is done, and you transfered the exact number of Bitcoins shown on the window (no rounding, just copy/paste the BTC's shown to your transfer form), Ethereum transfer should also complete in a few seconds.
It took yours truly a few days to complete this transfer. :)
I was clever; I first transfered 2 Ethers to test the system. Seamless transaction... Then I decided to transfer some more Bitcoins to Ether. I restarted the same process. For some reason, instead of copy/pasting the 2.143245267 BTC, I either typed or rounded off the number. (Multi-tasking while debugging JS code is also a myth!) This blocked the transfer, no Ethers on the wallet for hours. However, Coinbase showed Bitcoins were transfered.
Hundreds of confirmations on https://btc.blockr.io/tx/info/, but nothing on https://etherscan.io/. My bitcoins went into ether! [Yep.]
Contacted support at ShapeShift. and my error was highlighted in a email from ShapeShift support. Solution: They transfered the Bitcoins back to my Coinbase wallet. Fast and easy... I retransferred Ethers to my Ethereum Wallet the same day in a few seconds.
Two interesting notes about this 'botched' transaction...
Step 3: Figuring out the refund
Obviously, getting a refund for this botched transfer was easy. The proof that I have successfully transfered 2.14 Bitcoins to ShapeShift's account was cast in stone... err.. in blockchain.
Step 4: Figuring out the coins and taxes
The refund was painless, but I realized the pains I may have incurred for next April's tax filing. My wallet shows a transfer of 2.14 bitcoins on May 19th to an account. On May 24th, the same account received 2.14 bitcoins. If Bitcoin is treated like any other investment (i.e., stocks) by IRS, are there any tax implications? Did I just have a wash sale?
Assuming FIFO, by transferring BTC's to another account (to get ETH), I did I sell them at a loss. Now that I get a 'substantially identical' amount of BTC back under 30 days, does my 19th transaction qualifies as a wash sale? The fact that Coinbase shows $ amounts next to each transaction tells me this could be the case.
All IRS will see is transfer of bitcoins to my account. I may or may not have received/sent money for these transactions, it is not clear from this data. I will assume these two are canceling each other (i.e., 24th is a refund) and file the loss for the transaction after the refund. My boss tells me he will visit me in jail.
IMPORTANT NOTE: If you followed these steps and are using Ethereum Wallet on your computer, your 'money' is now in your wallet on your computer. Make sure you data is properly backed up. If you can't handle the stress, transfer your Ethers to Kraken or similar for safe keeping.
Step 5: Figuring out what this is all about
Blockchains, wallets, different currencies with different features are very hard for average human to grok. All these technologies are designed for enabling computers to carry out transactions, create organizations and trade/transact seamlessly. All these are just another step toward singularity. :)
Related: