Earn passive income through staking, masternodes and lending

If you’re a long-term investor in cryptocurrencies, you’re probably holding some coins that you don’t intend to sell for many years. In this article, I’m going to discuss three ways you may be able to put those coins to work earning passive income, through staking, masternodes and lending.

I’m going to organize this article into an introduction to the concepts of staking and masternodes, then dive into the details of my approach to both, and conclude with a description of how I earn interest through lending.

Introduction to Staking

Readers will probably be familiar with Bitcoin’s consensus approach, called “Proof-of-Work” (PoW), in which miners spend energy computing hashes in order to validate transaction blocks and earn rewards. A more energy-efficient alternative to PoW is called “Proof-of-Stake”, in which the actors who validate blocks can be anyone who holds the blockchain’s token and is willing to “stake”, or lock-up, those tokens.

In a Proof-of-Stake network, the staker’s local wallet joins the global pool of stakers who are available to validate the blocks of transactions. When the network has a block of transactions to be validated, a staking wallet will be selected deterministically. The frequency with which a given wallet will be selected, is a function both of the number of coins being staked, and how long those coins have been staking, such that the stakers most dedicated to the network are chosen more often.

What’s in it for the stakers? Unlike PoW systems, there is no “block reward”. Instead, the staker that is chosen to validate a given block of transactions gets to keep the fees associated with the transactions in that block. For someone holding a PoS coin for the long-term, staking can be a source of passive income.

Introduction to Masternodes

Another interesting concept is the Masternode. In Bitcoin, the network is secured exclusively by miners. Networks like DASH, however, which involve additional functionality beyond validating blocks, add a second layer of “nodes”, called masternodes.

Masternodes, like miners, are permanently-available servers that provide second-layer functionality to a blockchain’s network. In the case of DASH, masternodes provide services such as its “Instant Send” feature, and “Private transactions”, in which the masternode mixes (obscures) transactions, like traditional bitcoin tumblers.

Masternode systems also require their operators to stake coins, and for their services, masternodes receive a percentage of the network’s mining fees, resulting in another potential form of passive income for the masternode coin holder.

Choosing your strategy

Let’s now think about staking and masternode strategies. Here are some considerations:

  • Opportunity cost — The total return you’ll receive on your investment is the sum of the coin’s annual price appreciation plus any returns you receive from staking or masternoding. Therefore, an investment in a coin whose price appreciates 15% per year is a better investment than a coin which provides 5% staking returns, but whose price is declining over time.

  • Minimum investment — While most staking systems don’t impose a minimum balance, all of the masternode systems I’ve seen do. The minimums vary by coin. In the case of DASH, it’s 1,000 coins, or at today’s prices, almost $500,000 USD. In the case of PIVX, it’s 10,000 coins, or about $50,000 USD.

  • Complexity — Staking involves leaving your GUI wallet open at all times, and can be achieved by anyone. Masternoding, on the other hand, involves running masternode software on a server that’s always connected to the internet—e.g. a hosted VPS at DigitalOcean—and therefore requires expertise of Unix-based system operation and administration. (Note that there are services available that will run a masternode for you, for a fee, but these are not covered in this article.)

  • Annual return — There are websites such as Masternodes.online that rank blockchain projects by the ROI of their masternodes:

As you can see, some master nodes offer annual returns in the four digits! Any student of history or economics, however, will know such returns are not sustainable. For the most part, I would ignore lists like these, and only stake or masternode a coin in which I would invest without any potential for passive income.

(An aside before moving on — In reporting returns of staking and masternodes, I commonly see the term ROI, return on investment, misused. ROI is a measure of total return, and what we’re interested in is the annual return. That measure is called IRR, or internal rate of return. If you have a savings account paying you 5% per year, its IRR is 5%. If you put money in that account, and leave it there for 5 years, your ROI will be 27.6%, or 1.055-1.)

In light of the above, here are coins that I masternode or stake:

  • DASH — For the next handful of years, one focus-area for me will be coins that address the use-case of money, and in that realm, I believe a small set of anonymous/privacy coins will flourish. I believe one of those will be DASH, based on its momentum and funding. Since I don’t hold 1,000 DASH coins, running my own masternode is out of the question, but I did find a great shared masternode service that I’ll describe in detail below. I’m currently earning around 7.5% IRR with DASH.

  • PIVX — PIVX is another anon/privacy coin that I like, on the basis of its technology and community. By design, there’s not a lot of economic benefit to masternoding with PIVX versus staking, and so for simplicity I just stake my coins and am currently earning around 5.0% IRR.

  • BLOCK — Blocknet is an interoperability project that I was turned on to by @notsofast, which I like based on its role—I believe cross-chain interoperability will be increasingly important—and by the pace of work I’ve observed from the project. I’m currently staking Blocknet, and am seeing an IRR of over 30%. I didn’t choose the project for that return, and I don’t imagine it will be sustainable for too long, but while it lasts, I’m not complaining!

What I do…

At this point, I’ll now dive into the details of DASH shared masternoding, PIV staking on Mac OS X, and then conclude with a discussion of margin lending at Bitfinex.

DASH Shared Masternoding

In a shared masternoding system, the masternode operator funds the masternode—1,000 coins in the case of DASH—from the contributions of multiple people, and then distributes the rewards pro-rata to the participants, minus a fee for providing the service. A critical difference between operating your own masternode, and participating in a shared service, is that in the latter you have to send the operator your DASH, rather than retaining them in your wallet. So shared systems require that you trust the operator.

For DASH, I was able to find two such services, Masternode.me, run by “Moocowmoo”, and Dashmasternode.io, run by “Splawik”. Both of these individuals have good reputations in the community. Moocowmoo charges 15% for his service, while Splawik charges 10%. Despite paying more, I went with Moocowmoo for the following reasons:

  1. Automation — Moocow has completely automated his service. Upon signing up, you receive a PGP signed welcome message containing a unique DASH deposit address assigned to you. You can, at any time, deposit DASH to this address, in multiples of 25 DASH, i.e. your deposits can be 25, 50, 75 DASH, etc. Upon deposit, you receive a PGP signed deposit receipt, indicating the address of the masternode to which you are contributing, the percentage of the masternode’s payout you will receive, and the address to which you will receive those payments. To redeem you DASH, you simply return the welcome message by email, and all your deposits are returned to their sending addresses. (For that reason, it’s important to deposit from a local wallet, and not an exchange.)

  2. Security — Moocow has engineered a “dead man’s switch” system that will ensure all customer funds are returned in case something happens to him. The way his system works is, should any of his session logins remain idle for 30 days, his dead man’s switch monitor will assume something has happened, and will automatically dispatch pre-signed transactions to return customer funds.

So far, so good. I’ve made a couple of deposits, and am regularly (roughly weekly) receiving payments and payment receipts, and earning about 7.5% IRR.

PIVX Staking

The PIVX network applies a dynamic algorithm that shifts the proportion of rewards between stakers and operators of masternodes. An estimation of rewards between the two options can be found at this convenient online calculator. In my case, I chose simplicity over rewards maximization, and went with staking. Following are the details.

One begins by downloading the wallet from the PIVX site. After downloading and installing the wallet, here’s how you get going:

  • From the PIVX-Qt → Preferences → Main area, enable “Start PIVX on system login”—since your wallet can only stake coins when it’s open!—and set “Preferred Automint zPIV Denomination” to a large number like 5000.

Why the 5000 number? Starting in version 3 of the wallet, PIVX introduced their next-generation zPIV “Zerocoin”. At some point in the future, staking zPIV coins will be more profitable than staking PIVX, but at the time of this writing, it’s not possible to stake zPIV at all. So for now, we only want PIVX in the wallet.

By default, the wallet will auto-convert 10% of your received PIVX coins to zPIV, and by entering 5000 in the above setting, we can prevent that from happening. (There’s also a setting you can enter in the pivx.conf file to disable the conversion altogether, but I didn’t want to risk forgetting about that in the future.)

  • From the PIVX-Qt → Preferences → Wallet area, enable “Coin Control”, the purpose of which I’ll explain later in the article.

  • Now do Settings → Encrypt Wallet... and create a password for your wallet.

  • Create a new receive address from the Receive tab, and transfer some PIVX into your wallet (from an exchange, or wherever.)

  • Click (or toggle) the lock icon in the bottom right corner, enter your wallet password, and enable “For anonymization and staking only”. This will allow your wallet to safely keep the wallet unlocked for staking.

After unlocking your wallet for staking, and after the coins in your wallet have received something like 101 confirmations, you’ll see the staking icon (next to the lock icon) become green, indicating that you’re currently staking your coins.

Within a day or so, you should start seeing staking rewards flow in. Yeah! The value of the reward will be a more or less a constant, corresponding the block transaction fees, but the frequency with which you receive them will be a function of the number of coins you are staking and how long you’ve been staking them.

Before concluding this section, there’s a couple of important things to notes:

Backups — If you’ve used an HD (hierarchically deterministic) wallet in the past, like Exodus, you’ve probably gotten accustomed to backing up your private key or mnemonic once, knowing that any time in the future you can recover the wallet, and all its derived addresses, from that original backup. That’s not the case with the current PIVX wallet. In principle, each time you receive staking rewards, or add a new receive address, you should backup your wallet, by doing File → Backup Wallet and giving the backup file the extension “.dat” (e.g. wallet.dat).

I wish that could be automated, but for the moment, I try to remember to backup every week or so.

Input consolidation — Each time you receive a staking reward, it will create an “Unspent Transaction Output”, or UTXO, on the address holding the staked coins. Over time, as the number of UTXOs grows, your wallet file will grow in size, and the wallet software itself may lose stability. This requires some periodic maintenance, called “inputs consolidation”, and here’s how you do that.

  • In the Receive area, create a new receive address.

  • In the Send area, click the “Coin control” button. This will open a window listing all your UTXOs. Click “Select all”, and then then “OK”, to close the window.

  • Back in the Send area, you’ll see the number of selected UTXOs indicated at the top left. At the top right, you’ll see a value representing something like “total value minus transaction fees”. Precisely type that into the “Amount” field. (Maybe the Qt team will pre-fill that in the future.)

  • In the destination field, paste in the receive address you created in the first step, and then click “Send”.

So what we’re doing is sending ourselves the value of all our UTXOs, and consolidating those values into one single address. You’ll have to wait for that self-send transaction to confirm something like 101 times, after which staking will again be enabled, and you’ll have a nice, squeaky-clean wallet (for the time being).

Margin Lending at Bitfinex

In this section, I’m going to discuss the third and final way in which I earn passive income—margin lending.

Bitfinex is one of the world’s largest exchanges, and like many, provides margin to its traders, allowing them to access up to three times the funds they have on deposit. Rather than funding this margin using the exchange’s reserves, Bitfinex have implemented a peer-to-peer system in which Bitfinex customers themselves can provide margin funding, thereby earning interest.

Assuming you trust the platform, the risks associated with margin lending are relatively low. I was affected by the Bitfinex hack a few years ago, and was impressed by the innovative recovery model they put in place, socializing the losses and issuing the BFX tokens with a par value of $1, which they eventually paid back.

Due to that experience, along with observation of the technology and UI innovations they regularly push out, I trust the platform, to an extent at least. However, we should never forget that exchanges are continual targets for hackers, and should weigh that fact when deciding how much of your funds you want to keep lent out on any exchange.

As you can see below, it’s possible to lend everything from USD to any of several cryptocurrencies. The interest rates indicated are daily, so USD loans are currently paying about 5%, while ETC loans, for example, are paying about 18%.

What I’ve observed is that when the price of bitcoin is increasing, the USD lending rates increase, as traders borrow USD to purchase bitcoin now, with the expectation of selling those bitcoins for USD at a higher price later. Upon returning the lent USD, they’re left with a USD profit. Inversely, when the price of bitcoin is dropping, bitcoin lending rates increase, as traders want to borrow bitcoin to sell now for USD, with the expectation of buying them back at a lower price. After returning the lent bitcoin, they are left with a profit in bitcoin.

Since the lending rates of bitcoin and the USD move in opposite directions to each other, I keep some of both continually lent out on the platform. When times are quiet, the lending rates tend to drop to around 5%, and when there are sharp moves in the market of bitcoin, the rates of one or the other can suddenly increase to 50% or more.

There is an area in the left-hand side of the platform where one can make a lending offer:

You can enter a specific daily interest rate, or you can specify to use the “flash-rate”, or FRR, which is a dynamic market rate computed by the platform. As a consequence of most people auto-renewing their loans (see below), the manual offer form provides a “variable FRR” feature allowing you to place an offer for an interest rate that’s some discount to the FRR. The terms of the loans can be anything between two and 30 days.

If you make a manual offer that’s accepted, you’ll need to remember to return to the site when the term expires if you want to try to renew it. There’s a few problems with this. First, your offer might be taken in chunks, by multiple traders. Second, a trader can return the loan at any time. He or she doesn’t have to wait for the term to expire.

For this reason, most people use the auto-renew feature, and set the lending rate to the FRR, in order to allow the platform to determine the current market rate.

With an auto-renewing loan, set at the FRR, you can start lending your money and/or coins, and then forget about it, as the platform will attempt to keep your funds continually lent out at the FRR.

The only downside to auto-renewed lending, is that since most people use it, there is usually a lot of money on offer at the FRR. And those offers are consumed on a first-in-first-out basis, which means your auto-renewing funds will sit un-loaned for a period of time while working their way to the front of the queue. Not the end of the world, of course, but that does result in a slight drag on your potential returns. (To address that problem, and optimize the lending term, I run some custom software that I developed.)

The average interest rate you’ll earn over the period of a year can vary greatly, depending on factors like the market dynamics of the coins, the total availability of funds, and behavior of the lenders. On average, one should expect something between about 5% and, say, 10%.

Update — The CryptoLend service can fully automate lending not only at Bitfinex, but other exchanges as well.

Crypto Lending at Celsius & Compound

Since publishing this article, some new options for earning yield have emerged:

  • Celcius — Celsius loan cryptocurriencies like Bitcoin and Ethereum to hedge funds who want to short the currencies, and require USD collateral of around 120% to 150%. To source the crypto for the loans, they allow their own customers to deposit crypto with Celsius, and they share the yield with their customers. At the time of this writing, they are paying about 3.5% APR on deposited Ethereum, and 3.75% APR on deposited Bitcoin. Currently they pay interest in the deposited currency, but plan to pay in their own token, CEL, at some point in the future. The risks, as I see them, are two-fold: (1) You’re handing over custody to a third party, who in theory could simply run off with it, and (2) if a Celcius customer defaults on their loan, you have to hope Celcius have enough collateral to make you whole.

  • Compound — Compound is a Smart-Contracts based lending platform on the Ethereum network. It seems the yield on various ECR-20 tokens is quite low at the moment (c.a. half a percent). In this case, one would hope the custody risk is less than with a centralized organization like Celcius, but you’re also exposed to the risk of bugs in the smart contracts.

Conclusions

If you’re a long-term investor in cryptocurrencies, there are opportunities to put those held funds to use earning passive income. This article has discussed staking, masternoding and margin lending. I hope you’ve enjoyed it.

Learning about cryptocurrency mining

As a long-term investor in crypto, I want to deeply understand as many aspects of the space as possible. Having started to follow traders and miners like @notsofast, I decided that mining was one such area.

While I’m definitely not someone who’d likely be able to setup a “mining rig”, I did manage to do some mining, and wanted to document what I learned. Also, since there was so much digging around involved in actually getting started, I wanted to pull together the details into the article I wish I’d had available.

So in this post, I’m going to talk about my experience with cloud-based CPU mining, and my experience with cloud-based rental of mining rigs. But first, let’s introduce a couple of key concepts.

Hashing

For starters, mining is a computational activity in which you calculate hashes in an effort to validate blocks of transactions on the chain of whatever coin you’re trying to mine. The calculation of a hash is performed according to a particular cryptographic hashing algorithm, of which there are several. In the case of bitcoin, the algorithm is called SHA-256.

A hashing algorithm takes any size input, and produces a fixed-length output, from which the input can not be determined. That’s why hashing algorithms are referred to as one-way functions. The process of mining, at least in bitcoin (I haven’t checked if it’s precisely the same for others), involves calculating the hash of a block of transactions, the hash of the block header, hashing those together and looking at the output for something called a “nonce”, which verifies that we’ve found a block.

The miner then broadcasts those hashes to the network, which can verify their work and assign them the reward.

Pooling

Whether I’m using my laptop computer or a full-bore rig to mine, I only get a reward when I find a block. And that can take a long time. For that reason, mining pools were formed, that aggregate the hashing power of multiple contributors. Whenever the pool discovers a block, the rewards are distributed pro-rata to the pool contributors.

From what I can tell, most mining nowadays is done in pools.

CPUs, GPUs and ASICS

Bitcoin was originally mineable with CPUs on desktop and laptop computers. People later discovered that GPUs (graphics processors) are much better at computing hashes, at which point it became economically uninteresting to mine with CPUs. Finally, task-specific processors called ASICS were produced, which are optimized for the computation of hashes.

There seems to be an order of magnitude in capability between these technologies, with hash power discussed in units of KH/s, MH/s and GH/s, respectively.

As you can imagine, there’s also a cost difference between these technologies. Getting up and running with a GPU “rig” is more expensive than mining on your laptop, and only those willing to make a major investing in mining are using ASICS.

Interestingly, some projects, like Ravencoin, wish to preserve a broader community of miners—i.e. less consolidation of hash power—and design their hashing algorithms to be ASIC-resistant.

Cloud-based CPU mining

Given that I can’t setup a mining rig, my first option for experimenting with mining was to deploy cloud servers (VPSs) at places like DigitalOcean and Scaleway (which even I can do in a few clicks), and then hopefully find some Unix-based CPU mining software.

Fortunately, some Unix-based CPU mining software does exist, and is even designed to allow you to mine a variety of coins, using a variety of hashing algorithms. It’s called cpuminer-multi.

Below are the CLI commands I pieced together to get the software installed and running. This assumes you’ve created a server running Ubuntu 16.04 (the default OS at DigitalOcean, and offered by almost all cloud-server providers) and are logged in as root (and be sure to answer “Y” to any prompts):

Here’s the first command (not sure what it’s doing):

apt-get update

Now we make sure the git version control software is installed:

apt-get install git

Now we install a bunch of stuff that’s going to let us build the cpuminer software on our server:

apt-get install automake autoconf pkg-config libcurl4-openssl-dev libjansson-dev libssl-dev libgmp-dev make g++

Now we download the cpuminer software:

git clone https://github.com/tpruvot/cpuminer-multi

Now we switch into the cpuminer directory:

cd cpuminer-multi

…and we build the software:

./build.sh

We’re going to launch the cpuminer software inside a screen manager (called “tmux”) so that we can then close our login session if we want:

tmux

Finally, it’s time to issue the command to start our miner! As you’ll see, we’re going to be passing in some information (parameters), including the pool where we’re going to mine and how we’ll be identified there.

To mine Ravencoin, I created an account at the Suprnova pool, then created a “worker”, specifying an arbitrary worker name and password. Also, in your Suprnova account, you have to specify a payout address where you want your earnings sent.

So here’s the format of the command you issue inside tmux to start mining Ravencoin at Suprnova:

./cpuminer -a x16r -o stratum+tcp://rvn.suprnova.cc:6666 -u <user_name>.<worker_name> -p <worker_password>

You can see that the algorithm we’re going to be using is Ravencoin’s “x16r”, which is an algorithm that rotates between 16 algorithms, in an effort to be ASIC-resistant.

There are other pools that don’t require creating an account at all. You simply pass your receiving address in the miner launch command, like this:

./cpuminer -a x16r -o stratum+tcp://ravenminer.com:3636 -u <your_Ravencoin_address>

Couple of things before moving on:

  • To escape from tmux, type control-b followed by d. Don’t worry, though, your miner is still running, but it’s safe now to logout of the server if you like. To kill the miner, run top, which will show your miner process at the top, quit out of top with q, and then kill your miner with kill <miner_process_id>.

  • I understand that at Suprnova, you should create a different “worker” for each machine that’s going to be mining in your account. At the pools where you don’t create an account, however, you can mine with multiple machines on the same receive address.

  • Finally, the pools and crypto projects could really help noobs like me by specifying the whole command to start mining. Some just say things “Stratum on port 3636”, and assume you know the rest.

How were the results?

In a word, awful, but that was expected. Using a 16-core “optimized” droplet at DigitalOcean ($320/month or $0.476/hr), I was able to generate 850 KH/s (kilohash per second). Interestingly, with a Scaleway 8-core “bare metal” server ($20/month), I was only able to generate about 65 KH/s. I’m not sure why there’s a 10x difference, given a doubling of cores, but I wasn’t bothered to look into that.

Economically, at DigitalOcean, I was getting about 2.65 H/s/$ (hash per second per dollar), while Scaleway was about 3.25 H/s/$. So one would do slightly better to deploy 13 servers at Scaleway, but, of course, that adds some overhead. (And, as we’ll see below, this is a moot issue anyway.)

Using the DigitalOcean machine, I was mining about 1.74 Ravencoin per hour. With a server cost of $0.476/h, that means I was paying about $0.27 for each Ravencoin.

At the same time, in the #trading channel in Ravencoin’s Discord chat, OTC trades were happening at about 500 Satoshis, or about $0.06 per coin—i.e. 4.5 times cheaper than I was paying through mining. (And those 500 Satoshies represented a 500% price increase with respect to the previous 48 hours, given the news that Overstock had invested in the project!)

So clearly, I’d be better off buying Ravencoin, than mining it. (I noted that almost everybody in the #mining channel were using GPU rigs, and getting MH/s performance.)

The conclusion here is that CPU mining generally makes little economical sense, but it is a convenient way to actually try out and learn about mining.

Before leaving the topic of cloud CPU mining, it should be noted that most cloud-server providers prohibit mining, since most VPSs (virtual private servers) use shared infrastructure, such that your miner software’s consumption of 100% of the CPU, 100% of the time, unfairly impacts other VPS users. At DigitalOcean, for example, they only allow mining on their “optimized” droplets, which use dedicated CPUs, and at Scaleway, you can only mine on the bare metal servers.

(Some providers actually offer GPU cloud-servers. I didn’t experiment with those as their costs are upwards of $1,000 per month, and don’t seem to be available on a per-hour basis. I was actually prepared to try one, but I couldn’t find an answer to the question of whether the software would auto-detect and use the GPU. Since its name is “cpuminer”, my guess was “no”, and I didn’t want to drop $1,000 to find out.)

Renting real mining rigs

The next stop on my mining journey was NiceHash.com which offers a marketplace where you can actually rent time on someone else’s mining rig.

At NiceHash, after setting up an account and depositing some bitcoin, you create one or more pool configurations where you want to mine. For this experiment, I chose the IPBC coin that I’d seen @notsofast mention he liked.

Next, you access the “marketplace” under the “For buyers” menu. This screen seemed to be an order-book of offers to rent hash power.

The documentation recommendeds that beginners create “Fixed” offers, as compared to “Standard”, since there’s only two variables under your control—hash power limit, and total cost.

(After entering those two variables, the order window updates with an estimation of how long your mining will last. I think the maximum time allowed is a few days.)

I set the hash power to 0.2 MH/s, and the amount of BTC I wanted to spend on the experiment, and clicked “Place Order”. On my first attempt, the system responded that there were no matching offers. Adjusting the values slightly, though, my offer was accepted and a graph appeared immediately, showing the state of my mining!

I then switched over to the IPBC pool’s website, did a lookup on my IPBC address, and saw that, sure enough, I was contributing about 200 KH/s of mining hash power to the pool! And then I waited.

Each time the pool found an IPBC block, the website would report a proportional payment to me—based on the number of “work shares” I’d contributed—and those payments soon appeared in the IPBC wallet that was running on my Mac.

How were the results?

Better than with CPU mining, for sure, but still not economically interesting. Using NiceHash, I was paying about $0.60 per IPBC coin, while they were selling on the Livecoin exchange for about $0.40.

According to some users on reddit, the people who profit from using services like NiceHash are those who closely monitor the short-term windows when the rental cost movements lag the price movements of coins. (Perhaps that explains why maximum rental duration is specified in units of days, instead of, say, months or years.)

Renting can also make sense for people who want to speculatively mine a brand new coin that’s not listed on an exchange.

Update: After writing this article, I posted another article about how to calculate the breakeven cost of mining a coin, so that you can determine whether or not it’s economically worthwhile to mine with rented hashpower.

Conclusion

I’m really happy to have spent the time and effort to actually do some cryptocurrency mining. In the process, I learned about how mining actually works, I learned about the role of hashing algorithms, and I learned about the economic realities of cloud-based CPU mining, and GPU rental mining.

Hopefully, getting my hands dirty in the trenches will help me to become a better long-term investor in this space. That’s my objective, in any case.

Next stop on the journey, staking and masternodes. Stay tuned!

Does rebalancing an allocation of cryptocurrencies make sense?

One of the features offered by the Prism exchange is the ability to “rebalance” your basket of currencies back to its original allocation. Given an investment vehicle in which you create an allocation, it might seem natural to offer a rebalance feature. But does this make sense?

In Markowitz Portfolio Theory, a portfolio is constructed of multiple, uncorrelated asset classes (in the real world, that means stocks, bonds, precious metals, etc. which, as we know, are not perfectly uncorrelated.) The allocation of the asset classes determines the risk level of the portfolio. For example, 90% stocks and 10% bonds is much riskier than 10% stocks and 90% bonds. It’s assumed that one investor will have different appetite, need and capacity for risk than another, such that there’s no one-size-fits-all allocation.

Over time, as a portfolio deviates from its original allocation, it implicitly deviates from its risk profile. To return it to its risk profile (assuming the characteristics of the asset classes haven’t changed), we can rebalance it. And doing this systematically over time has been shown to also add value, since we’re systematically selling asset classes when they are high, to buy those which have dropped. Many call this the only free lunch in investing.

The extent to which rebalancing makes sense and works, however, is a function of the extent to which the underlying asset classes are uncorrelated, and have a tendency to revert to the mean. So it’s critically important that when one zigs, the other zags. (Interestingly, the accessibility of the modern Exchange Traded Fund (ETF) has increased correlation of a number of asset classes like commodities, with equities and bonds, such that many experts wonder how long rebalancing will continue to be a free lunch.)

And this is why rebalancing doesn’t really make sense in the context of a basket of cryptocurrencies. Although it’s still early, and things can change, currently, as anyone who watches CoinMarketCap will attest, cryptocurrencies appear to be almost perfectly correlated! When you’re selling Bitcoin low, you’re likely going to be buying Ethereum low as well.

So be careful out there—we have to be very careful when blindly applying traditional investing concepts to emerging spaces like crypto. (In that regard, next on my radar is thinking about whether it makes sense to track a marketcap-weighted index of crypto.)

Elsewhere…

Usability in the crypto world (or my experience as an ICO participant)

Today, for the very first time, I decided to participate in an ICO. Taylor is an app that promises to help normal people, as well as seasoned traders, profit from crypto trading, through automation. Looks like a very interesting project, about which several in the community I respect are excited, so I decided to dip my toes into the world of ICO investing.

To participate in the Taylor ICO, you have to:

  1. Register.
  2. Inform them of the Ethereum address from which you will purchase your TAY tokens.
  3. Verify your identity through their KYC/AML process.

For the uninitiated, the above step 2 could be the first roadblock. You see, most ICO tokens actually live on the Ethereum network, as an Ethereum-compatible token created according to the “ERC20” standard. So to receive your ERC20 token (“TAY” in this case), you need an Ethereum wallet that provides a user interface to manage ERC20 tokens.

My two wallets, a Nano S hardware wallet and the Exodus desktop wallet for Mac, didn’t seem to support manually adding ERC20 tokens. I did find one, though, “Edge” for iOS, which does.

OK, using Edge, I need to add the TAY token to its Ethereum wallet. To do that, you need some information:

  1. The token name
  2. The token symbol
  3. The token’s “contract address” on the Ethereum network
  4. The number of decimal places (for whatever reason)

Unfortunately, the Taylor people didn’t expect folks on the website to need this information. Fortunately, they did expect that people on Twitter would.

So, after adding the TAY coin to the Ethereum wallet in Edge, I’m ready to purchase some TAY (YAY!). But just above the QR code that you scan to send off some Ether, there’s this ominous warning:

Gwei

This is where some significant knowledge and technical assumptions are being made (you need to understand what gas price is, and have the ability to manage it), and a very narrow gate is being put up for your everyday Ethereum user. The “gas price” relates to the fee that is going to be added to your transaction to incentivize Ethereum miners to process the transaction. It’s also something 99% of all Ethereum users don’t think about when sending transactions.

Fortunately, my Edge wallet has a “Change Mining Fee” action item, in which we find three options: High, Standard and Low.

Well, I tried all three, and all three transactions were rejected with a “ran out of gas” error. Ran. Out. Of. Gas. WTF?

Fortunately, again, the Edge wallet also provides a “Set Custom Mining Fee” button, and so I set off to create a new transactions with the price bumped up close to the warned limit of 50 Gwei (whatever a Gwei is).

So here’s what the Set Custom Mining Fee screen looks like:

Fees

See any problem here? THERE ARE NO UNITS DISPLAYED!

Well, since the good people at Taylor said not to exceed a price of 50 “Gwei”, I’m assuming that Gwei must be the standard unit, and so I type in “40” (just to be on the safe side) as the Gas Price, and fire off my transaction.

Waiting a few minutes, I go to Etherscan, to check on the status of my transaction, and see that it’s expected to be processed…

“In a very long time…” Sigh.

And on that same transaction status screen, I see that the fee I set on the transaction was 0.00000004 Gwei, or about $0.000001. So as it turns out, the price unit in Edge is “Wei”, and a “Gwei” is 109 Weis—that’s nine zeros!—which means that instead of typing “40” into Edge, I should have typed the very-error-prone number, “40000000000”.

Heavy, heavy sigh.

OK. So I configure another transaction—the fifth of the day!—carefully typing in all those zeros, and sent it off. I then waited a while, checked the transaction, and see this error:

“There is an earlier pending transaction in the network, that must process first before this one.”

OMG.

So before my correctly configured transaction can process, my near-zero-fee transaction has to process first, which is expected to complete in…that’s right, “A Very Long Time”.

Head off to Google. “Can I cancel an Ethereum transaction?”

Turns out you can not. What you can do though, is re-broadcast a new transaction using the same “nonce” (whatever that is), with a higher fee. The miners will see both, and pickup the higher-fee transaction, discarding the other.

So that’s a solution, but unfortunately the Edge wallet doesn’t provide the UI necessary to modify the “nonce” of a transaction.

I could ask Taylor to whitelist a new Ethereum address, so I could start over from a new wallet. But the problem there is that eventually these two pending transactions will/might get processed from an address perhaps no longer associated to me. And if I do nothing, by the time these transactions process, the ICO might be over.

So I guess I’m screwed. But here’s the point of all this…

If you’re reading this, and actually understand what happened, chances are you’re (a) more technically involved in this space than me, and (b) snickering because this is something that’d never happen to you.

But here’s the thing. you probably are more technically involved than me. But, I know enough to have developed a Ruby-based software application that does my trading over APIs, which makes me more technically involved than 99{ad274ad889bc1e297d0fa7a0471c34c41541cb748ff9f79b10160b1d4544149a} of the mainstream out there who we need involved in this space if this industry is going to grow and prosper.

And for that to happen, things like empathy, usability and user experience design have to become priorities of those early creators in this space, such as wallet makers like Edge (who, to be honest, have created an overall really nice UI/UX), builders of applications, as well organizations running ICOs.

If you agree with that, then help sound the trumpet for usability whenever you can!

(By the way, if you’ve done your diligence, are interested in the Smart Taylor ICO and feel some sympathy for me 🙂 you might signup using my referral link.)

Update:

The CEO of Taylor contacted me, and let me know that with MyCrypto or MyEtherWallet, I could access the Edge wallet (using its seed), and then create an offline transaction with the same nonce, and broadcast it. The details are documented here. I used MyCrypto to try it, and it worked!

Prism-based crypto investing

In a previous article, I noted some initial thoughts about the currently-in-beta, smart-contracts-based Prism investing platform. In this article, I’m going to discuss some of the ideas that are forming around how I will use it when it’s launched.

While crypocurrency is broadly considered an emerging asset class on its own, I like to further consider use-case based sub-classes, for example:

  • Value
  • Utility
  • Privacy
  • Distributed Exchanges
  • Prediction Markets

With Prism, investors will be able to conveniently implement use-case or sub-class-based investment strategies. For example, I might define:

  • Value — Bitcoin (60%), Bitcoin Cash (20%), and Litecoin (20%)
  • Utility — Ethereum (60%), Ethereum Classic (20%), and Stellar (20%)
  • Privacy — Dash (30%), Monero (30%), Zcash (30%) and Pivx (10%)
  • Distributed Exchanges — EOS (40%) and 0x (60%)
  • Prediction Markets — Augur (50%) and Gnosis (50%)

So rather than trying to predict the individual winners in these use-case categories, I could instead create and invest in diversified “Prisms” built around each, leaving me only with the task of identifying the most promising technologies/protocols in each class, regardless of how many there are, and allocating according to the success probabilities I would assign to the constituents.

And at the highest level, I would fund these categories in proportion to the relative values I assign those use cases long-term. For example:

  • Value — 40%
  • Utility — 40%
  • Privacy — 10%
  • Distributed Exchanges — 5%
  • Prediction Markets — 5%

Acquiring and holding all of these currencies would be quite inconvenient, and possibly insecure, but implementing the above strategy could be done in a few clicks and half an hour on the Prism platform!

Thoughts on the Prism portfolios product

The makers of ShapeShift have a new product in beta, called Prism, that sets out to address a number of challenges to investing in a diversified portfolio of cryptocurrencies. Such challenges include:

  • Acquiring the coins you want to you may require creating accounts on several exchanges, and going through the tedious KYC/AML processes for each.

  • Given that it’s a bad idea to leave your coins on exchanges as part of a long-term hold strategy, self-custody of your coins, especially obscure ones, can present technical difficulties around identifying and installing multiple wallets, and securing them.

  • Most of the services that offer investible indexed or managed baskets of cryptocurrencies require SEC accreditation for access, or are geographically restricted. These include Grayscale, Bitwise, MetaStable and Iconomi.

Prism solves the problems in the following way: The product (when launched) will be accessible to anyone holding Ethereum. Users of the platform will be able to create portfolios of cryptocurrencies—i.e. a list of currencies and the percentage allocation to each—and then fund those portfolios with a deposit of Ethereum, which is then used as collateral to back the contract.

(Interesting, ShapeShift will initially take on the risk of matching your collateral, although they plan to make collateral matching its own investment opportunity for liquidity providers in the future.)

Upon funding of the contract, Prism will deploy a smart contract on the Ethereum network that tracks the performance of the coins and allocation defined in the contract. At any time, the contract owner can “rebalance” the portfolio and/or cancel it. Upon cancellation, the contract owner will have their Ethereum collateral returned, plus or minus the gains or losses that the portfolio realized with respect to Ethereum, minus a fee charged by the Prism platform for providing the service (currently anticipated to be around 2.5%.)

This is a fascinating and exciting product, and following are some random thoughts having read the announcements (but not yet having received access to the beta):

Convenience. The Prism product makes it extremely convenient to invest in a basket of currencies. No more having to install wallets like Monero, that require downloading and syncing the entire blockchain.

Security. It seems there are both pros and cons here. On the one hand, there’s less for the individual user to secure. Instead of securing coins held in local wallets (hardware or software), you only need to secure access to your Prism account and the source wallet of the funding Ethereum, which is where Ethereum would be returned upon contract cancellation. On the other hand, you’re at the risk of the quality of contract implementation and the security of the Ethereum network. As we discovered in the DAO hacking, this is a real concern.

Ethereum denomination. One should keep in mind that the portfolio performance is referenced to Ethereum, and not USD. If the portfolio increases in value with respect to USD, but not Ethereum, you’ll receive back less Ethereum than you provided in funding. That’s to be expected, of course, but might come as a surprise to people who think of everything in terms of USD.

Taxation. If tax authorities (at least in the United States) are already behind in terms of clarifying issues around crypto taxation, who known when it would become clear how participating in something like a Prism will be taxed. Will funding a Prism contract be considered a taxable event, i.e. as if you sold Ether for USD and then virtually purchased the underlying coins? Will rebalancing of a Prism be taxable, i.e. the selling of certain coins in the portfolio to buy others? Or will the taxable event simply be the gain or loss of Ether when terminating a contract?

In my experience, first movers in a space like this often bear a disproportional amount of the pain when it comes to frontier taxation issues. The cost of having a tax advisor figure out how something should best be declared, and then potentially having to defend that position to the IRS can easily consumer any gains that one earns.

Having said that, though, I’m sure I’ll anyway give it a try when getting access to the product, as I always do. You later movers can thank my sacrifice in paving the way. 🙂

Social opportunities. Given that Prism already publishes a leaderboard, one can easily imagine a future when it will be possible to “follow” the portfolio managed by another user, such that anyone in the world, based only on their merits, can become a successful “fund manager”.

Tokenization of all securities. Looking further out, one can imagine a day when through a platform like Prism, it will be possible to invest in portfolios constructed of both crypto assets, and traditional assets like stocks, bonds, ETFs, real estate and precious metals. That would certainly be disruptive to the brokerage and financial industries.

Regulation. This is another in a long-line of frontier products created by ShapeShift founder and libertarian advocate Erik Voorhees, and he’s no stranger to having to deal with behind-the-times regulators after-the-fact. It’s hard to imagine a platform like Prism growing too much before catching the attention of the SEC, and it’s hard to imagine them not wanting to regulate the service somehow in the interest of investor protection. It will be interesting to see how that plays out. I would guess at minimum we might expect to see KYC/AML processes for user accounts.

So those are my initial thoughts about Prism, and I’m really looking forward to giving it try, and will post a review as soon as I have direct experience.