1%
1 words - 1 min read.

The 365 day experiment has begun. I pulled the trigger. Instead of 30 cryptocurrencies as originally planned, I ended up purchasing 31. Oops. The rules of the experiment are:

  • Buy $10 USD of the top 30 cryptocurrencies by trading volume on HitBTC (where I purchased all of this).
  • Hold for 365 days. No selling allowed.
  • Post an update here every week.

Since I'm Canadian, I used QuadrigaCX to transfer funds from my bank account using Interac Online, and then purchased Bitcoin on their platform. Their volume is low, so the price wasn't great (BTC was 1.5% more than the larger exchanges) but it was quick and easy. I then transferred my newly acquired bitcoin to HitBTC, and then made my purchases there. Since that time I've moved on to Binance for my day to day trading. I also use Coinbase to purchase via credit card, but it can take time to increase your buying limits there.

Here's a small snippet of the hundreds of transactions that occurred:

transactions

Unfortunately I wasn't able to get exactly $10 USD of each currency. No exchange that I'm aware of allows the purchase of these alt-coins with USD (except for major ones like bitcoin, ethereum, and litecoin); you must purchase bitcoin and use that to purchase other currencies. The value of bitcoin changes so frequently and rapidly that it was impossible to get the exact amount I wanted, but I got close:

week1_balances

DateSymbolNameVolumePrice (USD)Position (USD)
8/21/2017AEONAEON12.40.76249.45376
8/21/2017BCNByteCoin85000.0011759.9875
8/21/2017BTCBitcoin0.002483234006.479.948986498
8/21/2017BNTBancor Network3.422.819.6102
8/21/2017DASHDash0.035280.429.8147
8/21/2017DCTDecent8.2211.199.78299
8/21/2017DNTDistrict0x Network47.750.20399.736225
8/21/2017DOGEDogeCoin60000.0016910.14
8/21/2017EDGEDG110.83219.1531
8/21/2017EOSEOS7.5241.3410.08216
8/21/2017ETCEthereum Classic0.70114.169.92616
8/21/2017ETHEthereum0.029334.69.7034
8/21/2017LSKLisk3.313.029.9962
8/21/2017LTCLiteCoin0.246.549.308
8/21/2017MAIDMaidSafeCoin200.48369.672
8/21/2017NXTNxt940.10459.823
8/21/2017OAXOpenANX5.5871.7910.00073
8/21/2017PLBTPolybius1.3467.4310.00078
8/21/2017PPCPeerCoin5.6181.7810.00004
8/21/2017QAUQuantum59.2290.16889.9978552
8/21/2017SCSiaCoin14000.0068119.5354
8/21/2017SNCSunContract112.8630.08499.5820687
8/21/2017STRATStratis1.8445.359.8654
8/21/2017STXStox4.1672.410.0008
8/21/2017XDNDigitalNote37000.0025679.4979
8/21/2017XEMNEM380.25879.8306
8/21/2017XMRMonero0.1280.379.6444
8/21/2017XRPRipple620.15969.8952
8/21/2017ZECZCash0.04247.119.8844
8/21/2017ZRCZR Coin7.8081.29.3696
8/21/2017ZRX0x Protocol28.0660.35639.997778
    Total:303.2413334

Since I don't want to manually update all this information every week, and generate charts and graphs for these blog posts, I built some d3.js charts that utilize CryptoCompare API's to pull down price data. Here's the script for pulling the data:

Github Repository

global.fetch = require('node-fetch');
const cc = require('cryptocompare');
const fs = require('fs');
let wallet = JSON.parse(fs.readFileSync(process.argv[2], 'utf8'));
let currencyMap = JSON.parse(fs.readFileSync('./currency-map.json', 'utf8'));
let symbols = [];
let res = [];
let date = new Date().toISOString().substring(0, 10);
for (let symbol in wallet) {
    symbols.push(symbol);
}
cc.priceMulti(symbols, ['USD'])
.then(prices => {
    for (let symbol in prices) {
        wallet[symbol].position_usd = wallet[symbol].quantity * prices[symbol].USD;
        let asset = {
            date: date,
            symbol: symbol,
            name: currencyMap[symbol],
            quantity: wallet[symbol].quantity,
            price: prices[symbol].USD,
            position: wallet[symbol].quantity * prices[symbol].USD
        };
        res.push(asset);
    }
    fs.writeFileSync('../data/'+date.replace(/-/g,'')+'.json', JSON.stringify(res));
})
.catch(console.error);

Usage:

node calculate.js wallet.json

Example input file (wallet.json):

{
    "BTC": {
        "quantity": 10,
    }
}

Example output:

{
    "date":"2017-08-23",
    "symbol":"BTC",
    "name":"Bitcoin",
    "quantity":0.00248323,
    "price":4182.83,
    "position":10.386928940899999
}

The d3.js code loads the JSON generated by this script and displays the relevant charts. I'm working on creating better charts for future updates, but that might be a ways off. I have a cron job that runs this script every night to capture the value of my portfolio every day. Each week I will post an update, including some fancier charts! You can see the d3 code in the html folder of the github repo.

Want to follow along?

If you're Canadian and want to try the same thing, I use QuadrigaCX (wire transfer, interac online) and Coinbase (VISA, Mastercard, AMEX) to purchase bitcoin, ethereum, or litecoin to then transfer to an exchange that supports all these alternative currencies. I used HitBTC to buy all 31 currencies.

© 2018. All Rights Reserved.

Proudly published with Ghost