Overplaying my hand?

gray monkey under sunny sky

Thoughts on over-diversification, taking profits, and doubting oneself.

We’ve been playing a lot of Santa Cookie Elf Candy Snowman, a Christmas-themed version of Taco Cat Goat Cheese Pizza. It’s a card game that involves a lot of hand-slapping, and I’m frankly pretty terrible at it. Elder loves it, and I even played a game with Younger earlier, even though she’s really to young to really play it.

I mention it cause I’ve been making a lot of moves lately, and have a bit of nagging self-doubt about whether I’m making the right ones.

Voyager

First up, Yoyager Digital. I’ve been very vocal about how this has been the trade of the year for me. Back in November, when I was still very disciplined about trade planning and capital preservation, I stumbled across them via BitcoinTreasuries.org, and immediately aped in. Up until that point I was putting positions in my value average algorithm, and slowly scaling into my 2% risk positions over the course of thirty or ninety days. Not with these guys. I have a very strong conviction on exchange plays, namely that the house always wins, so I threw the full capital allocation at it, about four thousand dollars.

Since then my position is up over three thousand percent, and is worth six figures. It would have been more amazing if the rest of my portfolio hadn’t gone 4x during that same time period, but Voyager is nearly tied with GBTC for my largest holding.

I’d been looking for an exit, so I was waiting for the Coinbase S1 to be released so that I could get a look at the financials and try to make a comparison. These came out last week, but had the 20Q4 numbers, so it was really hard to make a direct comparison to the current valuations between Coinbase and Voyager. Coinbase is rumoured to have a $100b valuation, while Voyager has a $2.5b market cap. Still, looking at the revenues and profits, I’m not sure I can make a direct comparison. Basically I’m looking to see if Voyager seems over or undervalued in comparison to Coinbase, and I still don’t think I can make a solid call on that.

What I can say is that I haven’t used Coinbase much over the last couple years. I’d been relying on Gemini for the most part, and used Kraken for a while to play with leverage. I like Voyager though because they were offering interest on deposited tokens, so they were comparable to BlockFi, but without the withdrawal limitations. Of course Gemini and others are offering these yield opportunities, but Voyager became my go to for all my normie friends.

That said, given my current goal to move out of brokerage equities into self-custodied crypto, I felt the need to take some profits on my position last week. I sold a sixth of my position, about $20k, and made it all back yesterday when BTC shot up and all my cryptoequities made 20-50% gains. Totally insane. I’m not really sure how much more Voyager can run, but I expect I’ll continue taking these small exits over the next few months as the bull run continues, at least until the Coinbase IPO comes out. I don’t really know how to value these two, but I’m worried that Voyager is still extremely overvalue. I’m also worried that I’m extremely overvaluing it, and that selling here is a mistake on par with selling my Netflix stock in 2008 to buy a used BMW. No looking back, I guess.

Digg/Badger

I wrote about my DIGG strategy yesterday, but I had a bit of doubt earlier today after looking on the forums. These seigniorage tokens like Basis Cash and Klondike have been getting hammered lately, and my “return to peg” thesis might not be as sound as I suspected. I actually talked one of my friends into coming along with me for the ride, and after the price continued to decline I finally decided to go into a lesson on risk management and trade planning. Whoops. I actually did a post-trade trade plan on this public TV chart, so hopefully that will help get us on track.

So the actual reason for the Digg dump was because Badger got listed on Binance earlier this morning, and there was a bit of a rotation from a whale that got wind of it and rotated from Digg to Badger. I actually used the opportunity to unload my Badger claims to USDC, and stuck them in BlockFi as preparation for my annual salary/2021 tax payments. There wa a bit of a sell off, so it looks like the timing was good. I’m going to continue to sell of my weekly Badger rewards. I honestly don’t want Badger to run much from here, since I’ve already lost so much in inpermanent loss when I staked at eight dollars. I really need BTC to have the mother of all runs to balance things out so that I can pull my LP out.

My doubt here is that I might actually be better off just leaving my Badger and DIGG rewards unclaimed until they are worth much more, or that I should be selling the DIGG and keeping the Badger. It’s so confusing. I just want to take some profits, and save up some cash.

Unfederal Reserve Token

I don’t think I’ve actually written about $ERSLD here before, I really haven’t done any analysis on it. The only reason I aped in it was because my $$PRIA bro Tres was shilling it, and was buying a lot of Uniswap tokens earlier this winter. I think I threw a total of .1ETH at it, and it happened to do a 4x recently. So I sold everything today. It was only $700 worth of profit, but of course I had to second guess myself and wonder if I’m doing the right thing. This thread does make the project look very strong, so who knows, maybe it’ll come back down and I’ll have an opportunity to re-enter. Or maybe it’ll run up another 4x from here and I’ll curse myself.


The fact of the matter here is that the diversification is killing me. Between my equities and crypto positions, I’ve probably got close to a hundred open positions right now. That’s too much, and I can’t worry about that many. It’s my own damn fault for getting myself here. Spray and pray might have seemed like a good strategy a few months ago, but it’s time to start cutting the weakest links. I already cut all the losers out from my equities positions, but because gas is so high, it’s not even worth cutting loose these Uniswap tokens. I might have to burn gas just to take the tax loss next year.

I’ve been very aggressive about my investments, but now is the time for me to be very aggressive about profit taking. I made and lost a lot of money during the 2017-18 market, and there’s no way I want to repeat that mistake. They say alts are how you make it, and BTC is how you keep it. I spent the last several months setting up my positions, and when they start pumping I am going to reap what I’ve sown.

There’s a lot more that I want to write about the macro environment, especially what’s been going on with bond yields, but that will have to wait until next time.

Evening pages

This weekend was a blur. I took the kids to the park for a couple hours yesterday, and took Elder shopping on Saturday for some clothes and shoes at the thrift store. I filed our 2020 tax return (yay) and discovered that I left a school tuition credit on the table for our 2017/18 returns that’s worth about $5,000 altogether. I also spent an inordinate amount of time trying to reconcile my BadgerDAO investment holdings between my daughters, my dad, and myself. It was an unholy mess, and while I didn’t finish, I did make significant progress on what portion of the Badger LPs came from which funds.

From there though, it’s hard to figure out what the rewards were. Since we made a total of four investments into the pools, (three in Uni, one in Sushi, each with their own rewards,) it’s impossible to determine exactly what percentage of the original Digg airdrop should be allocated to each of the investors. Luckily my daughters contribution is 50/50, or I might have just lost my mind. And it just gets worse after the Digg airdrop, since we pulled liquidity from the Uni pool and used that to fund our stake in the Digg LP. Since the original LP stakes are up so high though, I think I’ll just wind up taking the subsequent Badger and Digg reward as a fee of sort. I’ve actually made two claims over the last couple weeks, I’ve staked the DIGG back into the Sett, but sold the last claimed Badger tokens for USDC and put them in BlockFi in preparation for taxes. I still have another Badger stash from last week that I was planning on selling, but didn’t get around to it before this dip. It’s almost recovered though, so I will probably sell it as well.

I’m making over 2 Badger a day from the Setts, which has fluctuated between $100-300 during the last month or so. I figure at this point I’ll start selling it for USDC, which I’ll leave in BlockFi or in a Yearn vault. This way I can be sure to take profits, save up a year’s salary in preparation for “retirement” and have enough cash on hand to max out my IRA and pay taxes next year.

The DIGG that I’ve been claiming has gone back into the Sett. I figure that despite the sell off, Digg should return to it’s BTC peg as the bull run resumes. It’s a risky strategy, but we’ll see how it plays out over the next couple weeks.

I also spent several hours looking over Yearn V2 Vault code, figuring out how they work and trying to determine how the yield is calculated. The crvSETH Vault was showing almost 2300%, which I was sure was a bug, but I wanted to calculate how it was wrong, and actually learned a lot. I aped in as well, and figured out the yield is actually closer to 30-40%. The underlying Curve pool contains Synthetic ETH (not sure what the point of that is…) and ETH. Staking provides you with sETH, which is staked in the Yearn vault. These new vaults are much cheaper than the V1s, which relied on users moving in and out of the pool to trigger the vault’s harvests and rewards. In V2 vaults, these have been outsourced to Keepr bots, which claim an amount of the profits in as a reward for performing these actions. It’s pretty smart.

I parked a good portion of my ETH in this vault, cause I figure I’m not going to be doing much else with it for the time being. I’ve gotten the first round of funds from my IRA rolled over to my new FTX account, and bought a good amount of BTC, wBTC and ETH. I’m waiting for my banking card to come in the mail, then I think I’m going to buy a Lattice1 to use as a hard wallet. Once I have that setup and my ACH has cleared, I’ll tuck the BTC in a hard wallet, stake the wBTC in defi, and trade some of the ETH for DPI. I may use it to start a proper BED (BTC, ETH, DPI) Set under the Homebrew.Finance banner that has proper NAV issuance, perhaps even an LP. It all depends on how fast I can move funds over. If my brokerage is going to take a month to send a wire each time, then it may be slow going.

I took some profits on Voyager last week, for the first time. About a sixth of the position, at a 2600% gain. This will cover my next disbursement. I’ve also sold off a few thousand dollars worth of GBTC, following the value average protocol rules that I started a year ago but never automated. I’m about ten weeks ahead, which means I’ll be selling off a lot more if the price remains steady. If everything goes to plan, I won’t be selling off fast enough to bleed off the gains. I’ve also been liquidating the weakest links in the portfolio. I sold off all the losers weeks ago, and am now starting to cut the ones that are underperforming. We’ll see how fast this next withdraw request goes. Since it’s a third party request, it requires a wet ink signature and requires manual intervention from my brokerage. I’m fine with the delay, I think, since it’ll keep me from doing anything too rash.

Self-directed crypto without taxable events

gold-colored Bitcoin

[Update Sep 26, 2021: As of last week, Alto has discontinued their Checkbook+ service for new accounts. Checkbook-control IRAs are still available, but you will need to do your own research on how to set one up.]

Checkbook control crypto retirement accounts, part 2

Well it took me over a month, but I was finally able to buy some bitcoin through my self-directed IRA. Last night, I was finally able to deposit some fiat into my SDIRA’s new FTX.us account, and purchased a few hundred dollars of BTC, wBTC and ETH. The process has been slow and somewhat infuriating, but there is nothing like having the ability to purchase cryptocurrencies within the context of a tax-advantaged account. That’s right, there are no taxable events on activities made with these funds, and once I am able to withdraw to an on-chain wallet, I’ll be able to yield farm to my heart’s content without worrying about capital gains.

Continue reading “Self-directed crypto without taxable events”

Testing SetProtocol on Kovan

We’ve been talking about building a TokenSet for weeks now, it seems. We believe that having the ability to manage a Set has many advantages, and we’re hoping to build one under the Homebrew.Finance banner. My primary use case for it is being able to manage “customer funds” (e.g. friends and family) in a non-custodial way, while pooling gas costs among the entire capital pool. It’s also a way that others can follow along with my strategy as well, what TokenSets calls “social trading”.

Deploying a Set is costly, over 3.2m gas from what we’ve seen . With gas at 100 gwei and ETH close to $2000, we’re talking about $500-800 just to mint a set. That’s not something that I want to do without understanding the intricacies of managing a set, both from creating it, managing the modules and assets, and issuing/redeeming the tokens. And since there aren’t any published charts with gas costs for various operations, let’s do some testing on the Kovan testnet and see what we can come up with, shall we?

Preparation

The TokenSet docs have a list of procotol contracts, both for Mainnet and Kovan. Our first task is to execute the create function on the SetTokenCreator contract. We can do this using Etherscan, but first we need some setup tasks. First, you’ll need some Kovan tokens via this faucet, and we’ll need a list of ERC20 tokens that we can use. I started off with the Weenus ERC20 faucet tokens, but Balancer has Kovan faucets for popular tokens like WETH, DAI, USDC, WBTC and others.

Now I originally did this test deployment using the Etherscan write interaction, but I’ve since discovered the wonderful seth , a “Metamask for the command line. It’s much easier to use than writing a web3 script or using the Etherscan webpage. After a couple minutes setting it up I was able to interact with Kovan using my dev Ethereum address. The hardest part was exporting and saving the private key from Metamask to a JSON keystore file using the MEW CX Chrome plugin. I also put the password in a text file, then configured the .sethrc file to unlock the account and use it via my Infura project URL. Needless to say, I don’t use this account for anything of value, and don’t recommend you do this with production keys.

Creating the set

I literally spent hours trying to figure out how to call this transaction to create the set. Most of my time was spent trying to get things working on Etherscan, but I wasn’t quite sure how to call the contract arguments. First, let’s take a look at the function call parameters. Per the documentation:

function create(
    address[] memory _components,
    int256[] memory _units,
    address[] memory _modules,
    address _manager,
    string memory _name,
    string memory _symbol
)
    external
    returns (address)

Most of this is pretty easy to understand: _components is an array of the tokens in the set, _modules are the components of the Set Protocol that the set needs to operate. _manager, _name and _symbol don’t need any explanation. But what about _units? The docs define it as “the notional amount of each component in the starting allocation”, but the word notional doesn’t really have a definition that makes sense to me in a programming context.

So let’s take a look at the SetProtocol UI to see how this works.

To start with, let’s create a set with one-hundred percent allocation of USDC. Let’s set the Set price to one dollar. I’m calling it the “One Dollar Set”, and the token to 1USD. We can grab the hex data from the Metamask confirmation prompt, and throw it in this Ethereum input data decoder. For this contract, you can get the ABI from the Etherscan page, but for unverified ones you may need to compile it yourself.

Here’s how we can do that programmatically using seth:

$ export CREATE_SIGNATURE="create(address[],int256[],address[],address,string,string)"
$ export ONE_USD="0xa949dc3e00000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000d82cac867d8d08e880cd30c379e79d9e48876b8b00000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000f7a7d0000000000000000000000000000000000000000000000000000000000000003000000000000000000000000d8ef3cace8b4907117a45b0b125c68560532f94d00000000000000000000000090f765f63e7dc5ae97d6c576bf693fb6af41c12900000000000000000000000008f866c74205617b6f3903ef481798eced10cdec000000000000000000000000000000000000000000000000000000000000000e4f6e6520446f6c6c61722053657400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000043155534400000000000000000000000000000000000000000000000000000000"

0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48  // USDC token address
1014397  // 'nominal' amount
0xd8EF3cACe8b4907117a45B0b125c68560532F94D,0x90F765F63E7DC5aE97d6c576BF693FB6AF41C129,0x08f866c74205617B6F3903EF481798EcED10cDEC // tokenset modules
0xd82Cac867d8D08E880Cd30C379e79d9e48876b8b // my dev address
One Dollar Set // name
1USD //symbol

So let’s take a look at this nominal amount. The documentation doesn’t really explain it, but I did some experimenting to see what the values come out to.

AllocationStarting PriceHexDecimal
100% USDC$1f4b2e1,000,286
$1098efce10,022,862
$1005f5e100100,000,000
$10003b9aca001,000,000,000
50/50 USDC/USDT$17a120500,000
$104c4b405,000,000

The single asset one and ten dollar prices seem to be anomalies, I’m guessing due to precision errors or something. Let’s look at a more realistic mix of a Set with an allocation between wBTC, wETH, USDC and DPI token:

Starting PriceTokenHexDecimal
$10wBTC14c65318
wETH524a299c0f0f11,447,655,666,413,809
USDC2634472503751
DPI1658cfe35c0f546,290,099,383,570,260
$100wBTCcfb853,176
wETH336757534418dd14,468,848,569,030,877
USDC17dd05125,022,545
DPIdf5708b80c3c0c62,864,614,765,640,716

So what we’ve determined here is that the decimal numbers correspond to the fractional portion of the various tokens in USD. For example, the value 5318 for BTC corresponds to 0.00005318 BTC, with BTC at $48k, corresponds to approximately $2.50 worth of BTC.

It seems that the TokenSet UI uses their an oracle system to determine these weights, based on the allocation and opening price given. One could compute these manually, or copy the values from the TokenSet UI as I did here. Just remember that the nominal value of each token you have in your set will determine the USD price. For practical reasons regarding issuance, you might want to consider starting with a single component, such as USDC, wETH or wBTC.

Deploying our set

The TokenSet UI creates new Sets with the following modules: basic issuance, trade module, and streaming fee. The basic issuance requires issuers to have the correct ratio of the Set’s inputs, and also requires approval for each spend. It is very expensive to do this. For this reason we want to use the NAV module, which allows users to deposit tokens using a single asset. However, the NAV module only supports issuance with assets that are supported using SetProtocol’s on-chain oracles, and these are limited. (More on this in our next post.)

Using Etherscan

One of the big problems I had trying to pass these parameters in via Etherscan was how to encode them the values. Eventually, with some help from a Set team member, I figured out that arrays of addresses, such as those for the component assets and modules, need to be enclosed in quotes, without the “0x” prefix intact. The int256 array for the component amounts need to be in hex form, with the 0x prefix intact. Here’s how it looks on Etherscan:

You can see the result of this transaction on Etherscan. The total gas used was 3,308,683. That’s about 0.13ETH at 40 gwei, but I doubt I’ll be able to get a tx through at that price given recent prices. Earlier testing on the UI actually showed a price around three thousand dollars last night when gas was closer to 400 gwei. I believe that Set creation is not a time sensitive process like trading on Uniswap, so we can try to sneak by with a lower cost gas fee if we want to.

Using SETH

export ETH_FROM=$(seth accounts | head -n1 | awk '{ print $1 }')
export ZERO=0x0000000000000000000000000000000000000000000000000000000000000000

export WEENUS=0xaFF4481D10270F50f203E0763e2597776068CBc5
export YEENUS=0xc6fDe3FD2Cc2b173aEC24cc3f267cb3Cd78a26B7
export XEENUS=0x022E292b44B5a146F2e8ee36Ff44D3dd863C915c
export ZEENUS=0x1f9061B953bBa0E36BF50F21876132DcF276fC6e

export SET_TOKEN_CREATOR=0xB24F7367ee8efcB5EAbe4491B42fA222EC68d411
export NAV_ISSUANCE_MODULE=0x5dB52450a8C0eb5e0B777D4e08d7A93dA5a9c848
export STREAMING_FEE_MODULE=0xE038E59DEEC8657d105B6a3Fb5040b3a6189Dd51
export TRADE_MODULE=0xC93c8CDE0eDf4963ea1eea156099B285A945210a

export CREATE_SIGNATURE="create(address[],int256[],address[],address,string,string)"
export COMPONENTS=[$WEENUS,$XEENUS,$YEENUS,$ZEENUS]
export UNITS=["0x1","0x1","0x1","0x1"]
export MODULES=[$NAV_ISSUANCE_MODULE,$STREAMING_FEE_MODULE,$TRADE_MODULE]
export NAME='"TEST"'
export SYMBOL='"TEST24"'

seth send $SET_TOKEN_CREATOR $CREATE_SIGNATURE $COMPONENTS $UNITS $MODULES $ETH_FROM $NAME $SYMBOL --gas=4000000

seth-send: Published transaction with 772 bytes of calldata.
seth-send: 0xc12a5402ff37e114d8951fef756ab6985e6387b0e5d74e8c6ee5b83913077a86
seth-send: Waiting for transaction receipt...........
seth-send: Transaction included in block 23634932.

Here, we are using export to create bash variables to make our code more readable. We set our own address $ETH_FROM, as well as the zero address for use later, then create vars for the components in our Set, WEENUS et al, the Set creator contract, as well as the modules that we’ll have in our set. We provide the signature for the create function, then bundle our parameters together before sending the transaction with four million gas.

Note that we could use the seth estimate function to get a fairly accurate measure of the actual gas needed:

seth estimate $SET_TOKEN_CREATOR $CREATE_SIGNATURE $COMPONENTS $UNITS $MODULES $ETH_FROM $NAME $SYMBOL --gas=4000000 
3308707

This is exactly how much gas was used by our actual Set creation transaction.

Using web3

Jacob Abiola was gracious enough to create this SetTokenCreator-boilerplate repo for me, showing how to create a Set using a Javascript file and web3 via Infura and Metamask.

Where’s my Set?

If you look at the internal transactions for the set creation call that we just minted, you’ll see the create call is made on a brand new contract. The one below, starting with 0x902d1ce… is our new $TEST24 token on Kovan.

On our next post, we’ll take a look at some of the challenges around issuing tokens. The basic and NAV issuance modules are very misunderstood, and we’ve had many requests from people asking how we’re dealing with it with the $MUG token.

Homebrew.Finance $MUG NFT Index Launch

Last night, after 8PM EST, I commenced trading of the Homebrew.Finance NFT Platform TokenSet. The nine trades cost 0.59 ETH, which, when combined with the deployment transactions, brings the total cost of deploying the Set to 0.94 ETH. This doesn’t include the cost of issuing tokens via wETH, which required conversion, approval and issuance.

Before trading, I updated a spreadsheet with the updated market capitalization from the CoinGecko NFT category page, and began trading. After we made our first trade, into Enjin, we discovered that the second token on our list, Dapper Labs $FLOW token, is not actually an ERC20 token. I had two choices at this point. I could recalculate the index with the next token on the list, but I was afraid this would require me to adjust the amount of Enjin in the set. Given the amount of gas I would need to do this, I decided to continue purchasing the rest of the tokens with the weighting I had already specified, and leave FLOW’s portion in wETH instead.

I don’t necessarily think it’s a bad thing to leave 20% of funds in wETH for the next month, but I also don’t want to make any decisions without stakeholder feedback. Later today I hope to provide a Snapshot.Page for $MUG holders and put up suggestions for people to vote on.

We deployed approximately thirty thousand dollars worth of wETH in the Set. Performance can be tracked on the Zerion page. It’s in USD, but I’m really going to be looking at performance against ETH. Zapper can do the conversion, but it’s missing two of the underlying components and doesn’t have a chart, so I’ll have to figure out the best way to do this. Developer help on this would be great.

At the end of this thirty day period, (actually four weeks ending March 20th), I will liquidate all positions back to wETH, thus allowing additional issuance/redemption of MUG Set tokens. That is, unless I can determine a better alternative. Set Protocol’s basic issuance module allows redemption of Set tokens into the underlying asset, at an estimated gas cost of eight hundred thousand, or about $260 at 160 gwei. Selling out to wETH brings this down to a single token transfer for participants, but will likely cost me another $1400 to perform the trades. And who knows what the price of gas or ETH will be in a month.

I hope that we’ll be able to gather additional public interest in the set during that time, and that we’ll see additional inflows of capital that will justify the cost. Set fees of two percent on the current funds will only come to about $33 during this time, so unless we can get something like two or three hundred thousand dollars in the set for month two, I don’t see that we’ll redeploy. I’ve actually done the math, we’d need in excess of $1.6 million in funds for the streaming fee to pay for these monthly liquidation/redeploy cycles. That’s $33.6 thousand in gas fees, basically.

Ideally, I’d like to use Set’s NAV module, which can compute the Set token value using on-chain oracles and allow issuance using a variety of tokens. The problem here is that the selection of oracles is limited, and having non-supported tokens in a Set prevents this NAV issuance from working. I’m trying to work with the Set team on a technical solution to this problem, but it will likely take months to accomplish.

The other solution is to issue a sufficient amount of MUG tokens to justify creating a liquidy pool on Uniswap. I don’t have an exact number in mind, I’m thinking perhaps $100k worth of ETH or USDC might be sufficient. This is more than I’m willing to stake from my personal funds, so this would have to originate from an outside source. Then there’s also the problem of impermanent or divergence loss. Let’s assume that we start a pool with $100,000 of MUG and USDC, split 50/50. If the price of MUG doubles, LP holders will wind up losing out on about 8.5% of those gains versus if they had simply held on to MUG directly. Pool fees may offset this risk, but therein lies the risk. (An impermanent loss calculator can be found here.)

Other incentives may can be provided to offset this risk, the usual ones being governance rewards. In regards to that, we have not started development of the Homebrew.Finance $BREW token yet, but I am planning on providing rewards for $MUG holders that stay in through these early days. I will work these details out in another post.

Lastly, there are a number of things that can be done to make participation easier. We’ll need to set up some sort of front end, right now the webpage points to the Gitbook, so need to add that to the roadmap. Again, I can do this work myself, but I would appreciate developer help.

That’s all for now, I’m going to hunker down and get to work building. Thank you all for participating!

Forty-seven thousand

Everything is a mess right now and I can’t keep up.

Obviously the market gains that I’ve made the past month have come to quickly, and I’m over my head. I spent at least nine hours last night on the computer, downloading wallet transactions and going over them in a spreadsheet, trying to figure out what funds came from dad and the girls, and where they went from there and how much of the yields belong to them. The funny thing is that I don’t actually owe them any of it, but I want to keep track of it to be fair. There has got to be a better way to manage a “family office” like this. There’s got to be software out there that I can use, I sure don’t think I want to roll my own from here, but we’ll see. Using a token set in the future might help.

I wrote the above paragraph early this morning. I think I got distracted somehow, cause at some point I had to step away, and that’s when I found out the news that Tesla added $1.5 billion dollars of bitcoin to it’s balance sheet, sending the price mooning from thirty-eight to forty three in a matter of minutes. I think I lost my shit at one point. I remember rushing upstairs to tell Missus, who was utterly unimpressed with something work-related.

I was a complete wreck by the time I tried to get onto my morning conference call with work. Literally shaking, and almost brought to tears while scrolling Twitter. I signed onto the conference call, did my check-in with as much poise as I could and told Bossmang that I needed to talk to him privately afterward. I told him that I was meeting with a lawyer to draft up papers to transition me from full-time employee to contractor status, and before I signed the paperwork I wanted to make sure he was still cool with it. Not really, he said, but what was he going to do about it.

I started off telling him all that’s been going on, how things have been going better than expected, and how I couldn’t afford to keep moving forward with things the way they are. He understood my position, although his reaction was to ask me if I’d heard of the tulip bubble. Boss, I said, I’ve been in this space for years, of course I’ve heard of the tulip bubble. The conversation moved from there to discussion about what I was going to do in “retirement” and about his plans for the company. I’ve jokingly called it Zombie, LLC in posts here over the years, cause I do think the market here where we’re at is fairly oversaturated. He’s in a franchise agreement for almost two more years, and recently took out a PPP loan. Otherwise he would have gone bankrupt last year. I still think that would have been the better choice, honestly. But I told him that he’s been good to me for the last eight years, and that I wasn’t going to abandon him. I’d finish the projects that I started, and stick around long enough to transition to what’s next. What that’s going to look like, I have no idea.

And then, later today, I met with the lawyers. I wasn’t terribly impressed. I’m going to let them handle my independent contractor contract, but I don’t really feel right about using a lawyer for my crypto that doesn’t hold crypto. I knew the associate lawyer as a client in their previous firm, but this was my first call with one of the actual partners. I asked about their background with crypto, and they said that they had helped with some ICOs and with some individuals that were in my position, and needed to reduce their tax liabilities. I’m not sure they’d really kept up since the 2017 cycle.

We talked through some options, like buying depreciable assets, like a car, for example, gifting to charity, setting up a revocable trust for the kids, and so forth. They mentioned a client that has moved to another jurisdiction (Germany) to reduce their taxable income, and I joked about moving there before the end of next month to qualify for the nine-month exemption. There were a couple other options that we ran through, but nothing really stood out to me as something that I really wanted to pursue. I think moving as much money into a 401k is my best option at this point.

I did do some further research afterward, but I’m still trying to process it. There are too many moving factors right now, and today has been exhausting. I know a lot of people are interested in strategies to save on taxes, and I think the steps I’m taking right now are the best I can do for now. If my wife and I can reduce our income to less than $80k then we can take advantage of the zero percent rate on long-term gains, but that might be the best I can do. Right now my Badger yield farming is making more in a week than I take home in month, although as long as I leave that unclaimed I suppose I could let that accumulate for a year.

The bottom line is that I’m going to need to take a look at several tax services to see how well they can track defi farming. I can probably get away with reducing the income on some of the recent activities that I’ve done since it’s mostly been a wash, but I need to think real hard about what I want to do with my Badger gains. It’s tough.

Best day ever

Snow day, Klondike and Metawhale launches, r/WSB and Elon #bitcoin

Yesterday was one of the best days in recent memory, as it was a snow day. I wasn’t expecting any, I had checked the weather on Wednesday and it showed rain, so I was pleasantly surprised Elder woke me up gently in the morning to tell me that it snowed. I was surprised to find that two inches had fallen overnight. She was happy, and so I told her to go ahead and run out and play. Some time later I heard Younger waking up, so I called out for her to look out her window. SNOW! I called her to the bed and told her to look out at the backyard, and the look of pure unadulterated joy on her face when she saw it was one that I never want to forget.

I checked into work, did a few things before donning my snow boots and joining the kids outside. The snow was slowly melting, perfect for snowballs, so I scooped one up and lobbed it forty feet across at Elder, who was building a snow fort with the other neighborhood kids. It hit her smack in the chest, a perfect throw. I had to run in and out to check on work, made some cocoa for the everyone, and took it easy while the girls exhausted themselves outside. We had their friends over for pizza and a show, while I drank beer and played card games with the dad from down the street. Good times.

It was a stark contrast to what was going on in the rest of the world. Twitter was aflame about /r/wallstreetbets; I’ll not go into that right now. I did manage to do some options trading for the first time, a June covered call for $MARA at $40, twice the current price. The premium was handsome, and I’m a bit ashamed that I didn’t figure this out sooner. MARA is something that I was planning on holding through June regardless, and if it does manage to double by then, I’ll have made roughly a 20x on the stock, plus a ridiculous premium. I needed some cash anyways, and I’ll be rolling over my equities positions into crypto anyways, so the sale will be a good way to exit my position.

Wednesday also saw the launch of a new defi project, Klondike. I hadn’t gotten wind of anything new before prelaunch like this, so I was very interested. It’s clone of Basis Cash, a rebasing, seigniorage token, with some iterations, but I really don’t understand the tokenomics of it to be honest. It was brought to my attention because it allows one to stake bDIGG, which is the staked token for BadgerDAO’s DIGG token. I didn’t want to risk my DIGG on an anon, unaudited project, so I put a small stake of wBTC instead. I did manage to look at the smart contract code and made sure that ownership was revoked. There’s nothing fancy from what I can tell, so I think the risk of loss on the wBTC and bDIGG pools is fairly low. I didn’t mess with any of the LPs though, even despite a ludicrous APY. There were too many whales, and divergence loss would have eaten any profits. Still now, I’m not impressed by my emissions, but I’m going to wait until the end of the five day mint before I do anything else.

Last night though, was the launch of MetaWhale. I am not ready to do a full write up on this one, cause it is bonkers. Because of my involvement with PRIA, I was eligible for a nice airdrop of this first project, based of PAX Gold. I’m also holding a nice NFT that entitles me to continuous rewards from all the projects in the ecosystem. So I’m hoping for the project to succeed, despite my skepticism around that it’s attempting to do. There was actually a moment of panic on my part, when one of the reserve management functions failed to work, and I thought the project was doomed. I actually sold my PRIA while it was happening. Turns out that the web page was failing to provide Metamask with enough gas to complete the function, so it kept reverting. Things appear to be moving smoothly at the minute, but I haven’t been following too closely today. I’ve just been reading over the docs, wrapping my head around it, and trying to clarify things with the creator.

I spent most of today looking for yield opportunities. Armor.Fi, an insurance protocol a la Nexus Mutual, looks promising, as does FuruCombo, which provides some defi building blocks. Looking at that got me going down a rabbit hole of pieces on flash loans and scheming of ways to build arbitrage bots with it. I can feel the pieces moving into place in my head, but it hasn’t quite clicked yet. I get the collateralized Maker vaults and so forth, but I really don’t want to do anything that leaves me in a leveraged position. I’d rather just find an opportunity, strike, and be done with it. We’ll see how that goes down the road.

Of course, today’s big news was Elon putting #bitcoin in his bio, causing a 10+% run up this morning. It pure pandemonium. This on top of the r/wsb exodus into crypto caused exchanges to go down left and right. It’s been a rather distracting day. Couple of days really, if I’m being honest. I’ve been redlining the past few days, and I can’t believe I’m saying this on a Friday night at 8:30, but I really just want to go to bed.

Badgers and Whales

Every time I miss a day on this blog I feel like coming back and asking penance. Monday was really crazy and decided to tie one on with the Missus last night. Spent today in Hangover City, as she likes to say. The weather has been really crappy the past few days, so we haven’t gotten outside much, the kids are going a bit crazy and are taking up a lot of my time, which is putting pressures on what I’m supposed to be doing for my day job and other projects I want to get done.

Speaking of my day job, I’ve been doing so well with my investments that I decided to try and have a talk with Missus about leaving my job to focus on crypto projects. She’s not having any of it. We still have a mortgage and I still have student loan debt, and she’s not interested in having any conversation with me until after that’s gone. And she wants to retire too she says. I became very frustrated, cause I could basically liquidate a year’s salary out of my trading portfolio if I wanted to, and basically sit on the cash, but she doesn’t want to hear it. Very frustrated.

BadgerDAO is mainly the reason that I’m considering this now. I’m on day eleven or so since I started farming through it, and am still making somewhere around five hundred percent APY on it right now. It’s insane. Between the increase in BADGER’s price, the DIGG airdrop, and the various pools that I’m in, I’ve already doubled my money. I really don’t know what to do. I’ve already been looking around at other degen projects on CoinGecko, trying to figure out what to ape into next, but I haven’t done anything other than rebalance some holding so that I could stake my DIGG airdrop.

Thread.

Also yesterday, Set Protocol / Token Sets released their public UI, allowing anyone to create their own set. We’re probably going to use this as a starter pool for Homebrew.Finance’s $BREW token, but I’ve got more research to do on the Set management and how deposits and withdrawals will work. I started looking at the contract code today, but I’m not in any rush. I’m hoping it might be useful for managing my IRA funds once that’s been opened, but I’m probably looking at next week or two from now before I have funds available for that; I’m still waiting on the LLC to be formed.

And earlier today, Dr. Mantis of $PRIA fame dropped the documentation on MetaWhale, his new, very ambitious project. Going over that is going to take a post of its own, but I started putting some thoughts together in this thread.

I’m feeling pretty good about Metawhale, considering the fact that the NTF drop that I got is worth about three ETH right now, and the airdropped tokens that I’m getting with the MW launch will be a pretty nice asset to be holding. I’m more interested in the way these Whales (BTC and PaxGold funds) will be buying up and distributing PRIA via airdrops. It’ll basically amount to perpetual income for the life of the project. It’s very interesting.

Cryptoassets intro for equities traders

I came across a request last week from someone asking for help writing up an intro to crypto for traditional equities investors. I offered to help, thinking that I had already done most of the work, but it soon occured to me that I hadn’t written anything aimed directly at people new to the space. So, let this be a quick introduction to a few things that I think anyone coming over from the space needs to know. This won’t be an explanation of bitcoin or blockchain, or even DeFi, as there are numerous resources out there.

My background is in tech, and I’ve done well over the last twenty years, investing in tech companies for the long haul. I caught all the FAANG plays before it was cool, and have made some missteps over the years, either being wrong with India and China plays, or being to early, like with 3d printing or pot stocks. For of my career, I followed the advice of The Motley Fool, only buying stocks that I was interested in holding for five-plus years. I let that subscription lapse after I went down the crypto rabbit hole about six years ago, but the philosophy sticks with me. I treat crypto more as longer-term play, and find that I do better the less I try to worry about TA and swing trading, and just buy tokens and sit on them. I could brag about picking Ethereum at thirty cents, or getting in on ChainLink right after the ICO, but I’ve held numerous bags to zero over the years, and lost thousands on scams that I thought we’re going to have a big payday. And my biggest returns have been from good old-fashioned dollar cost averaging Bitcoin, every week, every month, for the last three years.

So let’s get to it. I have a couple pieces of interesting advice, and many, many warnings.

Crypto exposure outside of crypto

If you’re like me, you already have a brokerage account opened up, maybe within a tax-advantaged IRA or self-directed 401K. If so, you’ll want to read my post about checkbook LLCs, but in the meantime, there are plenty of ways to gain exposure to Bitcoin, Ethereum, or the broader crypto space inside your traditional account. The standard way to do this is through Grayscale’s Bitcoin and Ethereum trusts, which trade on the OTC markets under $GBTC and $ETHE. There are other Grayscale funds available, but as a novice, I would stay away from these until you understand the inflows to these funds and the premiums associated with them.

Alternatively, there are many companies holding Bitcoin on their balance sheet. BitcoinTreasuries.com has the most comprehensive list, let me just say that my favorites are miners like $MARA and $RIOT, which have been outperforming BTC. Voyager Digital is my personal 2020 favorite, which is an exchange play that has returned over two thousand percent in the last year.

Every crypto transaction is a taxable event

Let me repeat myself: EVERY CRYPTO TRANSACTION IS A TAXABLE EVENT. With the exception of buying spot with fiat, and some instances of wrapping Ethereum (which I won’t explain here), every sale, swap, airdrop, deposit, claim or stake will need to be tracked for cost basis and capital gains. I am also not referring to straight up withdrawals, transfers or deposits between your exchange accounts or wallets that you control.

Crypto tax guidance from the IRS is abysmal, and will hopefully get cleaned up this year, but till then it is an absolute nightmare. Most of the exchanges will prepare your tax documents for you, but once you start getting involved in DeFi, you will want something to help you prepare you tax documents. CoinTracking (reflink) is one I’ve used for years with moderate success, but the new one that I would probably recommend is called TokenTax. They both can track your Ethereum address directly, and import data from most exchanges via an API. There are alternatives, so experiment with a few and find one that works for you. You do not want to skimp on this. They should offer you a choice on how you want to calculate your gains, FIFO, FILO, or whatever, I prefer HIFO, for highest in, first out.

So no, there’s no “like for like” exception for crypto like there is in real estate. If you buy ETH with BTC that you bought on Coinbase, you have to calculate gains on the BTC and record the cost basis of the ETH in fiat terms. Same thing goes if you — god forbid — use your crypto for something useful, like actually buying something. That’s right, you’ll have to track cap gains on that proverbial cup of coffee that you bought with your bitcoin. This may change under the Biden admin with more crypto-friendly officials, but for now that’s the way it is.

The only way to legally avoid all of this is through a tax-advantaged account like an IRA or 401K. Beware though, these “crypto” retirement accounts may be custodial accounts that restrict what you can buy, don’t let you withdrawal your coins, and charge high trading fees or insurance. Again, you can read my post about checkbook LLCs to see how I’m keeping tax-advantage status and controlling my own funds.

Crypto never sleeps

For the most part, equities traders are used to standard NYSE hours, 9:30AM-4:00PM, Monday through Friday, save holidays. Not in crypto. Markets are always open, although the mood can change as traders wake and sleep from the East coast to the West, Asia to Europe. Many times I’ve caught myself getting ready for bed, only to see Bitcoin make some big move that I want to be a part of. It’s easy to lose sleep. Crypto is also immensely addictive, and if you’re like me you may need to take steps, like deleting apps off your phone, if you find yourself checking the price of Bitcoin every five minutes. If you drink or smoke, you might also want to set limits and rules so you don’t FOMO into a stupid position while you’re bent and wake up rekt the following morning.

Exchanges are not your friends

It’s easier than ever to purchase crypto these days, but one of the biggest mantras in the industry is “not your keys, not your coins”. This means you don’t use exchanges as your banks. If you’re dealing with any substantial amount of funds, you HAVE to get a hardware wallet. Trezor and Ledger are the two most common ones, but you should do your research. If you’re dealing with Ethereum you’ll probably wind up dealing with Metamask, but you’ll want to hook this to your hardware wallet as well. Same goes for any other software wallets such as MyEtherWallet, Exodus. Newer tokens might not have support for anything other than an executable that runs on your computer, or just a website that you interact with. Do your research, and never get in a position you can’t afford to lose.

Exchanges get hacked, and most don’t carry any type of insurance, so never keep more on them than you need for a trade. You can use leverage on some exchange as a way to negate this risk (not to trade more than you have!), but for the most part, you’ll want to keep things on your wallet where possible. The rise of DeFi lending and interest bearing accounts which provide yield on deposits are making it very attractive to do the opposite, but beware counterparty risk, and spread your funds if you feel compelled otherwise.

If your Exchange doesn’t allow you to custody or withdraw your funds, i.e. Robinhood or Paypal, then you’re not really buying crypto, you’re buying an IOU. Stay away from them. The major fiat onramps in the space if you’re in the US are be Gemini, Kraken, Voyager (reflink), BinanceUS, and I hate to say it, Coinbase. If you’re using Coinbase, or Gemini, make sure you swap to the “pro” versions with proper limit orders, not the market order only interfaces that they put up for noobs with the three percent fees. These aren’t available on the mobile apps, so use the desktop/web versions to access them.

Speaking of limit orders, no crypto exchanges that I’m aware of have implemented trailing orders, which is a shame. I have my own cynical theories as to why. A few, like Binance and Kraken, have access to leverage and OCO type orders, but for the most part you’ll be dealing only with limit and market orders.

And even after all all these years, the major exchanges haven’t figure out how to stay up during moments of high volatility and activity. In fact, one of the sure signs of a bull run is Coinbase going down.

Beware limit orders and leverage

Just stay away from leverage unless you know what you’re doing. Period. It can be tempting when BTC is posting a huge green candle and you want to go in 5x with everything you got, but you’re playing with whales, and they love to stop hunt. They routinely pump or dump the price to trigger cascading liquidations, so they can buy back up or dump on the market after the carnage has cleared. Sometimes it might even be the exchanges, countertrading against you. Beware.

On the other hand, don’t count on that stop-loss hitting. Exchanges have gone down, during these flash dumps, preventing those orders from closing, and leaving people holding a bag after the carnage has cleared.

And never short Bitcoin in a bull market. Just don’t do it.

Don’t listen to anyone

The trollbox on TradingView can be the absolute worst, most toxic place in the world sometimes, everyone’s an expert and knows exactly what the market is going to do in the next five minutes, believe me. They’ll shill their bags, pump them, and talk them up and up and up. It’s easy to get caught up in it. Same thing goes for Twitter, as well, and I say that as someone who spends an inordinate amount of time on Twitter. Just assume that anyone who is talking up a $cashtag or posting a chart is shilling their bags.

Sure, you can ape along with them, and maybe you’ll do alright, but if you read up on projects after you’ve aped into them, you’ll eventually be able to sort the cream from the crap.

And never, never buy the FOMO on a huge green candle on the five-minute chart, unless you’re prepared to exit your position at a moments notice. Like I said, I don’t trade like that, anymore. I prefer to open a small position, do some research, and scale in over time if I think the project has promise.


Hopefully this advice will be helpful to you. I know much of it seems doom and gloom, but I want you to be warned. In 2017, I saw life-changing riches come in the blink of an eye, and in 2018, I watched it drain away cause I failed to take profits. This year, we’ve seen just the beginnings of the bull market return, and I’ve already seen more than 4x returns in my cryptoequities account in the past six months. And I truly believe we haven’t even seen a tenth of what we should expect before the end of the year.

If this piece is helpful, please drop me a line with some feedback, or your question, as I know I have more to share. As they say, an expert is just one who’s made enough mistakes in a given field, and I can help you avoid the same mistakes, then my day’s work is done.

Set Protocol for defi fund management

Over the years, I’ve been setting aside a small amount of cash for my daughters’ savings. A few bucks a week that I can use to teach them about money. My wife has been contributing to their 529 college savings plans, but I feel it’s better to give them the opportunity to learn investing and have funds available for entrepreneur activities, so I’ve been building up accounts for them in the hopes that I can involve them in the money management when they turn thirteen or so, before handing over the funds entirely when they turn eighteen.

When I first started, I decided to open LendingClub accounts for them, since the rates were much better than than standard savings accounts. At some point over the last three years, I decided to stop contributing to those accounts, and started putting the money into bitcoin instead. The LendingClub loans have three year repayment terms, so most of the outstanding notes have yet to be paid back. So once a month, I’ve been withdrawing the cash from LendingClub, into my bank account, and from there into their BlockFi accounts where the USD earns interest along with the BTC that I’ve bought for them.

As I’ve gotten more comfortable with DeFi, I’ve been moving USD and BTC funds from BlockFi accounts over to various yield farms, Yearn, mostly, but for the past week I have a significant amount of BTC wrapped and staked on BadgerDAO. More on that later. The issue that I’m having is that the funds are mixed, and tracking allocations between the various earmarks, as well as gas fees, has become a huge pain. I’ve been trying to keep track within a Notion sheet, but tracking who’s got what quantity of funds deposited and staked in this, that or the other pool is an obstacle.

The main reason for the commingling of funds is that Ethereum gas prices are making contract interactions with these farms cost prohibitive, and the problem is only going to get worse after $ETH breaks price discovery and goes 2x or more. A few months ago, when ETH was trading at three or four hundred dollars, I would have told you that it’s wasn’t worth doing yield farming unless you had a thousand dollars to put in for three months. Now, three months later, with ETH at $1400, I’d say that lower bound is up to five grand, probably really twice that when it comes down to entry and exit fees. Ethereum is quickly becoming a whale’s game.

The best solution that I’ve come across thus far has been Set Protocol. A Set is a basket of ETH and ERC tokens. The Set manager adds tokens and various strategies, and then users can buy into the Set to get access to the basket. Set Protocol is what powers TokenSets, which powers the DeFi Pulse Index ($DPI), a market-cap weighted index fund of DeFi tokens. (I’m very long on DPI). TokenSets has a limited number of funds available, as they go through a vetting process, but anyone can create their own Set using Set Protocol.

It’s a bit complicated right now, and not very user friendly as they have no UI, (yet,) but is seem like it might be an option for me to make a basic index fund. There are some margin opportunities, but unfortunately it doesn’t have any modules that support staking funds in liquidity pools, or participating in yield farms. That may change soon, and I’ll find out more when I talk with one of the co-founders tomorrow. Having my own Set will allow me to track the number of my Set’s ERC20 that belong to each family member, all I have to do is deposit USDC. Then once a quarter or so, I can reallocate the funds within whichever project I choose. And the best part, is that I can allow others to buy into the Set, permissionlessly.