Fathers’ Day

Pretty decent day today, some market woes withstanding. Missus picked up all of the slack today and the kids weren’t too bad.

I got up early, well rested and had most of the morning to myself. The market had a bit of a dump and I realized how precarious my ETH leveraged longs were. I wound up taking a bit of margin out of BTC position and was preparing to throw it at my ETH position as a last resort, but the price rebounded and had a nice weekly close. I’m obviously a bit overextended there and spent a good deal of my time meditating trying to figure out what to do. I considered throwing cash at it but actually did the right thing and moved some money to fiat. Note to self: Gemini doesn’t do USDC and Voyager takes 5-10 days for transfers, so give yourself more wiggle room next time.

So while I was getting caught up on in the FUD and watching the five minute chart I listened to some music and farted around. It was a bit of a waste really, but I was still suffering from a bad diet the past few days. Younger went to church with the neighbors and Missus took Elder out to shop for Younger’s surprise birthday party, so I had the house to myself for a bit. Played piano but wasn’t productive in the slightest.

Missus got me a small keg for my homebrew, so I took the day to quit procrastinating and brew up a recipe I picked up at a local supply shop like six months ago. I’d been procrastinating because it required me to cook my own hops and I was fearing it’d be a huge pain in the ass. It was, but I figure I might as well get it over with. I’m still using my two gallon starter kit; I’m not sure I want to go further with the supplies I’ll need to do the full five gallon experience. We shall see.

I plan on getting to bed on time tonight, picking up with the habit wagon tomorrow: go for a run, do some deep work on coding, and get stuff done.

Lake Bum

What a day. We drove a couple hours out today and just got back in an hour ago. Over six hours on the road. First we went out to a gem mine, then headed over to the family lake or a bit of swimming and fishing. I am exhausted, and everyone is sunburnt to various extents.

The “gem mine” was a bit of a letdown. You basically buy a bucket of dirt. The place scatters in feldspar, quartz and various other stones in the bucket, and the kids can then take scoops out of it and sift it through a sluice that they have setup. The girls loved it, but I’m glad we didn’t go too far out of our way for the thirty minutes or so that we spent there.

From the mine it was a forty minute drive to the family lake. My father and law has been busy up there, building up the dock. I did a bit of swimming with the girls and almost drowned myself. One side of Younger’s life jacket slipped out of the belt/chest straps and I thought she was going to slip right out the bottom of it and I started to panic. We were in the deep end and I had both girls with me, so when I ordered them to start swimming back they though I was playing a game and I was really scared that something was going to happen to one of them.

I tried staying out of the sun as much as possible; I forgot my hat, and there was no shade on the water, of course. The kids “caught” some fish, FIL hooked them and let the girls reel them in. The small lake is overstocked with fish, mostly small bass. We pigged out on snacks, drank a few beers and just hung out while the girls enjoyed themselves. It was a good time.

Road trip tomorrow

How did I let the day get away from me. I forgot to schedule blog time and here I am, ready to go to bed, but throwing myself at the computer just to keep the streak alive.

i can barely see what I’m typing because i don’t know where my glasses are. I just don’t want to look for them more than I want to get this done and go to bed.

I finished a particularly difficult Rust Exercism that turned out easier that I made it. I signed up for a Gitcoin grant for Perp.Fi. I spent most of the day taking care of my kids and then volunteered for taking care of D’s three kids so that he could take his wife to see The Hitman’s Wife’s Bodyguard. Thankfully my other neighbor L. invited us over and the kids got to run around with water guns. We watched Luca, had pizza and popcorn.

Tomorrow we’re going out on a road trip. Just for one day, not overnight, but Sunday I’m supposed to go deal with the hoard at my dad’s house. Happy fathers’ day.

i used my Fold card today to buy groceries. Twice. One percent in sats doesn’t seem like a lot, but we’ll see.

Back on the habit wagon

Today was a much more productive day. I finished reading Deep Work last night and decided to follow one of the recommendations to schedule out my whole day. Mostly. I got up at six, did my meditation and tea, then went for a two and a half mile run – the longest I’v done in years. I got back before any of the girls got up and decided to spend a few minutes on one of the projects on my Trello board.

I managed to get a pretty solid two hours in this morning working on one of the Rust Exercisms. I didn’t finish it, but learned a lot, and kept driving forward until my time was up. Then lunch, took the kids to the library, and did some slight rescheduling while Elder finished up her last day of school. I managed to get another forty five minutes in reading through this wonderful primer on Programming on Solana.

I spent a good deal of time working out some metrics on the Perpetual Finance funding. Yesterday’s rates were pretty bad, but things picked up earlier today. I actually started the day but converting some wBTC to USDC, moving it to xDAI and putting it in a 4x ETH long position. The liquidation price is just under two thousand dollars, and I don’t think it’s likely that we’ll see that price anytime soon. Regardless, I’ve found myself updating my master wallet sheet every time I take a break, or checking the funding rate whenever I find myself on Discord, so I figured a more formal dashboard was in order.

I started out by taking a CSV file from the historical funding rates on Redash and importing it into a Google Sheet. I filtered out results by BTC and ETH and popped them into separate tabs, then did some averaging and calculations to figure out what the trends were. So now I have a snapshot of what the past daily, weekly, and monthly rates would equate to at the current asset price. (I’m not trying to compute historical price data at this time.) I also looked at past periods as well, so I can see how yesterday, last week, and last month compare to the current trending rates. Hopefully it gives me some good indication as to they type of returns I can expect.

Yesterday’s funding was pretty bad, and it looks like last month was horrid as well. But hopefully having this snapshot will give me less anxiety. I’m also not very anxious about price action. Since I have what I consider very conservative liquidation prices, I should be able to hold these positions open perpetually and generate a decent income off of the funding. And again, since funding is determined by the position value, my income should increase as bitcoin starts making new all time highs. Seems like it’s just a matter of time.

Still, my spreadsheet has its limitations, and could use some marked improvement. I’d like to make it easier to update. Instead of filtering the sheet for ETH and BTC and copying the results to another tab, I should figure out how to pull and filter the data from the primary tab, so I can just import the new CSV and have the results update with a minimal number of steps. Of course I would want to automate the data import as well, but my options are limited there. Graph Protocol is an option, but at that point I’m better off programming something myself. My initial thought is to go with something in a Python notebook, but I might not even need to do that, I should just be able to pull what I need in a simple react app. I’ll have to explore.

Painful productivity

Unlike yesterday, today was not a particularly productive day. I got off to a bad start by staying up till 1:30AM last night, so I was not in top shape this morning when I woke up. To make matters worse, bitcoin took a bit of a dive overnight, and funding on Perpetuals turned slightly positive, meaning that my brilliant passive-income generating strategy was not generating any income. Rates eventually turned negative again, but just barely. Back to the drawing board.

I did a Rust Exercism, but my result was not very idiomatic. I’m getting better, but it’s slow going. We completed a second test transaction on the SAIADao multisig and are ready to move forward with production tests, but while I was reviewing some Solana code I figured out that I might be better off using the generic multisig program in the Anchor framework docs since it can more easily be used to invoke the Serum trades than writing a custom program. We’ll see.

I did manage to do a fair bit of cooking. For dinner I smoked some chicken wings that came out great, but the meal turned out a bit more work. By the time I finished with cleanup I needed a second shower. Tons of leftovers though.

I am definitely back on the atomic habit wagon tonight though. I’m finishing up Deep Work right now and am going to bed early. I want to get up early (on-time) and get a jog in first thing.

I also did a health assessment for my insurance company, earned $100 in credits for doing that and uploading a picture of my vaccine card.

So overall, I did get a lot done today, I just felt like shit.

More Perpetuals

Today was a pretty good day.

I have a local WordPress server running here at the house. I set it up as a private family blog last year, but didn’t have it set up properly so it hasn’t been accessible. I fixed it today. I had some pictures of the girls from last July and a canoeing trip that we took. The last post was in August of last year when we got the cats. I got it set up as the home page on the various workstations that we have here at the house, hopefully I can inspire the rest of the family to update it as well. It should be a fun chronicle

I can’t stop thinking about Perp.Fi. I’ve been checking it almost hourly, running calculations and what ifs. A 1 BTC position with 1.5x leverage is generating funding more than my previous salary. I’ve got a liquidation price around $15k, and I think there is zero chance that we ever see BTC prices at that level. So I’ve been looking at rates for certain position sizes and liquidation levels and figuring out what the weekly income is. I could reasonably be pulling in between five and fifteen thousand dollars a week. It’s breaking my brain.

Another option is to keep my modest leverage rate and increase the amount of capital. The risk here becomes one of too many eggs in one basket, as I’ll be concentrating my funds in one position. Very risky. On the flip side, Nexus Mutual has coverage for Perp at a reasonable 2% rate. That’s very reasonable. I’m almost tempted to convert some of my cold storage bitcoin. But I feel like I’m being greedy.

All I really have to do is wait. As the funding pays out, it lowers my liquidation cost. I can remove margin at intervals, and open additional longs to maintain a set margin rate. And as the price of BTC increases over time, so shall the payouts. The risk here is that the funding rate turn positive at some point. I’m not sure how to evaluate this risk, given that I don’t fully understand the reason why rates are negative in the first place. I assume it’s because it’s the easiest way to short ETH and BTC without going through a KYC process. That’s certainly why I’m using it.

Still, part of me fears that this opportunity won’t last, and hence the FOMO that I have. I should be happy, making money for nothing, but part of me wants to crank the knobs up to eleven and go crazy. I might need to find a way to do that with a smaller, separate account that will allow me to manage risk a bit better.

I think I might just know how to do that.

Generating income with Perpetual Protocol

So I’ve been experimenting with Perpetual Finance for about a month now, and after today’s BTC pump over 40k I finally decided to take the plunge and invest a significant amount on the platform. Also, I won their Pool Together lotto.

PerpFi is an on-chain, decentralized perpetual contract for crypto assets such as bitcoin, ethereum, and DeFi blue chips. They offer up to 10x leverage, short or long, and use the xDAI network for super low transaction fees. All trades are denominated in USDC, and they’re offering no-gas bridging if you move more than $500 over to the xDAI network. They have a governance token, PERP, and also provide trading rewards in the form of a Pool Together token which pays out in PERP tokens. This is how I won the lotto.

Perpetual contract are a type of financial instrument that is native to crypto. It’s similar to a futures contract, but the difference here is that unlike traditional futures, perpetuals do not have expiration dates, meaning that one can long or short an asset and hold the position indefinitely. FTX and dydx are two centralized platforms that provide perpetuals, Perp.Fi is the first decentralized on-chain platform for this.

Since perpetuals allow leverage, there are funding costs associated with positions. These costs are determined by the difference between the price of the perpetual contract and the oracle spot price. If the perp price is below spot, then a premium is paid to those who take long positions. This is how our strategy works. Here’s a snapshot for all the current Perp.Fi trading pairs:

Again, anything with a negative rate is actually generated by shorts paying longs. Rates were actually a bit higher today, around 133% for ETH. For ETH and BTC, historical rates have always been negative, due to the fact that Perp.Fi is primarily used to short these assets.

ETH and BTC funding rates on Perp.Fi

I first started experimenting with Perp.Fi about a month ago, taking out a few 5x long positions on ETH and BTC. 5x is actually kind of aggressive for a long-term position, and I actually wound up getting partially liquidated a few weeks ago when we had that dip late last month, losing about a third of my position. Since then, however, the funding rate has almost paid back what I lost. And since one can take an un-liquidatable 1x long position on Perp, it’s pretty much a no-brainer for me to move my wBTC positions out of underperforming yield farms and put them into Perp. I’d also argue that Perp.Fi makes more sense than holding Index Coop’s ETH and wBTC 2x FLI tokens, since they both suffer from a 2% management fee as well as funding expenses from their underlying components.

Recently I’ve been experiencing a bit of anxiety over a bit of underperformance in my stablecoin reFIREment fund. I’m short on cash and was facing the prospect of having to spend some of my stablecoin yield farms. I think these perp contracts may have given me a way to not only stave off dipping into those funds. I’ve opened a low-leverage, 1.5x position on the platform, equivalent to my annual expenses. The funding, it if maintains a 100% APR, will allow me to remove margin from my account and send it to my expense account. Perhaps a bit more explaining is necessary.

Let’s say you do as I did today and open a 1.0 BTC position with 1.5x leverage at $40,000. Your upfront capital is $40k, but you’re actually holding a $60,000 BTC position. The funding rate is based on your position size, not your margin, but the funding is paid to your margin. So while you might initially start your position with a liquidation price around $15,000, as each hour passes, the funding rate will lower your liquidation price. Perp.Fi allows you to add or remove margin, so you can actually remove margin over time, keeping your liquidation price steady, and allowing your to either add to you position or cash out. Herein lays my strategy.

I’m hoping that the funding rate will be sufficient for me to maintain this low-leverage position indefinitely, removing the funding proceeds from my margin. Of course the rate is variable, so I’ll be keeping a close eye on things. And of course there’s the risk from carrying a leveraged position, both from price volatility and liquidation risk. That said, I think the bottom is in an there is zero chance that bitcoin goes below 20k. (Famous last words.) If I wanted to be more aggressive I could remove more margin and lever up my position, but I think I have a somewhat conservative position here that is mostly risk free and will allow me to pay my mortgage and grocery bills.

Evening pages

Today was about as perfect a day as I could hope for. I woke up rested, had a decent morning and took Elder out for her board meeting/daddy-daughter day. It was pretty nice.

Since we did all of the cleaning late yesterday afternoon, the house was mostly clean when we woke up this morning. There were a few things left over from our activities last night, but overall, I was really happy with how decluttered the front office was while I was meditating this morning.

Younger was a bed hog this morning –apparently she drop-kicked Missus in the face last night. She went to the neighbors this morning and rushed back asking to go to church with them. I’m fine with the free baby-sitting, but have some minor concerns about the indoctrination. I’m not going to freak out about it, as Missus says, we both went to church and we wound up ok.

Elder and I had our quarterly board meeting. The four of us went to Golden Corral last night, a reward for cleaning day. It was Elder’s choice, and I tried to finagle my way out of it today, but went along with it. She wanted to go to the trampoline park, so we did. I just wish I hadn’t done my leg workout this morning. My knees will curse me tomorrow. We spent an hour there, went and got ice cream, and spent the rest of the day playing video games and watching videos with the fam.

I asked Missus to take care of dinner and she ordered Boston Market via GrubHub. We are so different. I cooked bacon, eggs, and hash browns for breakfast this morning, brined some chicken wings for the smoker tomorrow, and cooked about ten lunch and dinners this week, and I ask my wife for dinner and she spends a hundred dollars on two meals.

Money is really foremost on my mind, obviously. I haven’t even looked at the bills from my Miami trip, but I’ve been spending hundreds at the grocery store, not to mention the bill from today’s activities. Tomorrow marks the start of week three of my retirement and I’m already itching to return back to work.

Accounting and finances

Today’s been a stretch. Partied a bit last night and spent most of the day doing accounting and cleaning, then took the kids out for dinner and some window shopping.

Last night we watched Wish Dragon, then afterward I played Control. It’s a very interesting game, creepy in a way that reminds me of the SCP Wiki. It’s actually been on my shortlist for a while, then Epic Games gave it away as part of their weekly rotation and I had to jump on it. I wound up playing it till everyone went to bed, then puttered around in Baldur’s Gate for a while then watched an episode or two of Enchantment and went to bed around 1:30 in the morning.

Slept in till 9:30 then the girls got to work cleaning the house while I did the house accounts. I was two months behind, owing to our mortgage refinance. It took me a while to figure out exactly how to reconcile all the payoffs and escrow payments; I’ve still got a lot to figure out, but it’ll have to wait until I get more details from our old escrow service. Then I did the girls finances, moving money from Lending Tree to my bank then to their respective BlockFi accounts. I’m still putting $25 worth of bitcoin in there from my Gemini account, but I may just need to stop that. They’ve got several hundred in GUSD that I might start converting to bitcoin instead of me putting fresh fiat into their accounts. I got to think about it.

The rest of our finances are ok. I don’t have enough cash to make it through the month, so there are going to be some hard choices coming up. The market just keeps ranging and there’s not much going on. I’m not spending as much time on Twitter right now, as things are just miserable on there right now. Everyone’s expecting things to get worse short term, but are long term bullish, so I just need to survive the next few months. Oh, and student loans come due in September.

The Alchemix alETH vault is supposed to go live any minute, but I’m mainly going to be keeping an eye on that to see how things might work out when they launch alBTC, as I was looking at using that to pay off the house or the loan debt. Yields are way down right now, so it’s kind of hard to figure out what to do.

I got an email from a blockchain fintech company based out of Oregon. They were looking for Python and full-stack devs, team leads and product managers. I told them lets talk.

Diary of a househusband

I fell off the habit wagon last night. I think the trigger was Missus cracking open a can of beer. She wanted to take the edge off, but I wound up sanding the edge down to nothing, and stayed up till near midnight playing Baldur’s Gate. She went to bed with Younger and I puttered about on my computer, cleaning up hard drive space by removing old folders and games I hadn’t played in forever. Wanted to kill some time so I picked up BG from where I left off and kept cracking tabs on those beers. Woke up with my usually neck pain, plus some aches from running yesterday.

The girls are upstairs, being unusually quiet. Younger broke a shelf in her room while she was climbing it, trying to stand on top her wardrobe. Elder has been playing with a pirate-themed BirchBox that we got some time ago. Yesterday we played a Battleship-style treasure hunt game, and this morning I woke up to find her drawing a treasure map so she could bury something in the backyard. The two of them have been upstairs for sometime, and I was imagining the kind of mess I’ll find when I go up there later. I’ll perhaps have to condemn someone’s room.

Work on Solana progresses slowly. I figured out why I was having problems with my hardware wallet and the mutisig, but now I’ve got an error trying to perform a transfer with the rest of the group. I also managed to get the Serum swap program to test properly after an NPM update, I was looking through the test to figure out what’s going on. I’ll have to build a program that can accept funds from the multisig and perform a swap before transfering the swapped token back to the multisig. I’ll also have to account for all kinds of failure states. But I get ahead of myself. I’m going to have to figure out the multisig issues, which means abstracting more of the variables out. Hopefully I can get this stuff resolved soon.

Other than that, I’m not getting as much work done as I had hoped. The markets are ranging, so I’m not doing much. I have managed to keep the time on Twitter down, and have managed to keep progressing on the Exercism Rust track. I looked at some of the the hard ones and they seem very challenging. I’m not sure they’ll be pertinent to programming on Solana, which is also going to require a fair amount of Javascript to build tests. I’m not sure it’s worth doing the JS track since all I really need is async functions.