I had the nerve-wracking experience today of not only burning almost a million US dollars in a single swoop, but also marking the passing of 3/4 of a year of my life.
One of the important parts of having a time-based currency is that I have to make sure that the supply available in my main account accurately reflects the time I have available to sell. I had originally set a top limit based on my predicted available years on earth, based on actuarial tables, which put the limit at about October 1, 2063. But part of that deal is that, as time passes, I need to burn EvanCoin, making it unavailable to anyone (even me).
Burning tokens isn’t unusual, but it’s not part of the spec for ERC20 tokens, so most token interfaces don’t give you a way to do it. Probably with good reason; burning a token means destroying it forever. People who make a minor mistake and burn their entire wallets would be just a little peeved, I imagine.
I had originally planned to burn tokens monthly, starting with 744EVAN in early November 2017, to represent the number of hours in October 2017. But I got lazy, and honestly developing code to burn money seemed a little intimidating. What if I burned my entire stash with an error? Even though I test with Truffle, it seemed like a high-stakes coding process.
So, I’ve let it slide. And now it’s been nine months since I first launched EvanCoin, without a single money bonfire. So, I started working on a script.
After a bit of coding, though, I realized that a number of wallet tools have ways to call methods on a contract right from their interface. Because I use the BurnableToken superclass for EvanCoin, all I really need to do is call the burn() interface with the number of hours I want to burn.
I used the contracts interface of MyEtherWallet.com to make the first call. I had to get the ABI (essentially, the definition of the contract interface) from my build directory, but I was then able to make a burn() call for the first month, with 744 as the argument.
But this was actually an error! Because EvanCoin is divisible in fractions of 100 (that is, the smallest fraction of time I’m willing to sell is 36 seconds), this only burnt 7.44EVAN. Whoops!
Now that I understood that I could burn EvanCoin, and that I had to multiply by 100 to get the units correct, I did a quick calculation of the number of hours I actually had to burn. From October 2017 to June 2018, I had 6552EVAN to burn. I subtracted out the 7.44EVAN that I’d already done, coming to 6544.56EVAN.
At my typical consulting rate, that’s almost USD$1M. It’s also a big chunk of my life. Seeing those original 403224EVAN I had initially drop to the current 396672EVAN that’s available now is sobering. That’s 1.6% of the initial total. That’s a big number, and a big step towards mortality.
Time passes, and time-based currencies reflect that. It’s a difficult thing to deal with on a personal level, but pretty interesting to reflect on a currency level.