I am a fount of creativity lately.

My morning meditation was repeatedly interrupted by my brain trying to suss out the details of an ATLAS/POLIS arbitrage bot. I think I might actually know enough now to put something together. I need to build an MVP that pool the market data and log any potential opportunities. That should give me an idea as to whether it’s worth the additional effort. I’ll put that to the side for now.

Yesterday I spent most of my day working on the governance-ui. I discovered a bug, and made some progress in my localnet deployment. I also got the SAIA mint created along with a realm on devnet, but I can’t get the UI to pick it up yet. I will probably work on that some today if I actually get the time; I’ve got a busy day.

I’m letting the girls enjoy their morning while Missus sleeps in. We have cleaning day today, and are supposed to be raking leaves for the second weekend. The temperature has dropped, it actually feels like fall. I am hoping we will have friends over today for dinner, games, and maybe hot tub and a fire if it’s not too chilly.

I’ve settled into a bit of rhythm, I don’t know whether I can attribute it to this week’s full moon, or something else. I had a couple beers last night but still went to bed on time. I’m playing DSP still but picked up a copy of Melvore Idle last night to check it out for… um… research purposes.

Shadow governance

I’m feeling very manic this morning, my head is full of ideas and I want to get them down so that I can start working on things the morning. I spent yesterday working on the spl-governance and governance-ui yesterday, and I am very close to being able to proceed with our realm generation for SAIAdao. However, I’ve been having more grandiose plans.

I’ve become aware that Star Atlas is not using the spl-governance module. Instead, they are proceeding with a third party, XXX, which has not yet launched on Solana. I’m not aware of the planned release date, but it seems like a perfect opportunity for us to deploy a new app to market, basically, a guild governance module that we can make available to Star Atlas guilds.

I envision some sort of meta-dao, similar to Kristian’s League of Nations model, with each guild having a vote that is controlled by their dao. There are several ways that we can do this, the spl-governance has council voting, which basically allows a small group to override the will of the lower voting token. So, we might have a metaguild of ten guilds, each of which has one vote within the council, and then distribute a greater number of smaller tokens that can be distributed to to the sub dao members. This way, the entire guild population could vote on an issue, then it’s up to the meta-council to decide if they want to vote along popular results, or override things.

Each guild would have their own dao, along with their own token, which could be used to vote on meta-council votes or internal matters, it’s up to them to determine how they want to operate or distribute their tokens, the number, &c. I expect we’ll have the functionality in the governance-ui to spawn new instances, the only requirement is that each realm has a community mint, their own spl-token to use for voting rights. This is really easy to set up, but I can provide instructions to do this, as well as make a four or five digit vanity mint for the token address. The details are coming together.

We can either us the existing governance program, or roll our own that the meta-guild can control upgrade authority on, and we’ll have our own UI that shows sub guilds. I’m almost ready to move on this, and when it does it will be fast. Token distribution to members remains problematic, but I’m sure many guilds are already deploying NFTs or other tokens to members, so I’ll leave the details on that to each one.

We could even use POLIS as a community mint for the meta-dao, and establish some type of shadow governance system for Star Atlas. For now we would simply stake the tokens in an AMM to generate yield, but once Autonoma and XXX actually launch on Solana, we can use meta-guild voting to determine where we stake the treasury.

Obviously this is all just off the cuff today and there are lots of details that need to be worked out, the short end of it is that if your guild does not have a token yet, you need to get one, because we are going to move fast on this once I have the last piece in place. I’ll likely have a devnet instance set up later today. If you’d like an invite, message me on Twitter @dahifi or on Discord, Blockchain Man#8744.

Waiting to play

It’s funny that the titles of this week’s post have been dark: Exploited, A Foul Mood, The Sickness Spreads. It sounds like I’m having a pretty horrible week, or like the title of some trilogy of dark fantasy novels. But I’ve actually been having a pretty good week, considering. And today’s been pretty good so far.

I must be rested, because I went to bed a bit early last night and had trouble falling asleep. I woke up at four this morning, and tossed and turned before getting up around five-thirty. I went for a run. It’s unseasonably warm, and when I was cooling down I heard the Reveille play from across the water at the AFB. I got Younger up and to the bus without too much fuss, came back and took Elder in to school, and did my daily 45 minute meditation session.

I spent most of yesterday working on the spl-governance program. It’s mostly front-end work, of course, trying to get the UI running on my localnet. I got my first commit and PR in on the Blockworks repo, which is good. I’m gaining clout every day.

I don’t really want to write much today, because I want to get to it. I’m still waiting on CompanyA to give me the job offer. Apparently they’re drafting some special company policy that applies directly to me, so they’re working that out. Apparently I was a bit too aggressive with my ‘what ifs’ during the call with HR. It’s fine, I got a lot to do and have savings to rely on. I’m definitely not in a rush or anxious about it like I was last week.

I do want to start making some more cash soon though. The market is down quite a bit right now, and there’s a lot of things I want to buy. BTC, ETH, and SOL, obviously, but there are a lot of other projects that I want to put some moonbag stakes in. I want to put some real money in Star Atlas, and up my stake in Invictus. But first I need to start earning.

The Sickness Spreads

No, I’m not referring to yesterday’s foul mood, but the the non-cold then cold that Younger caught and gave to Missus. When she gets sick she gets sick, and is completely out of commission, which just means that there’s more for me to do with the kids. I took Elder in to school this morning, Younger is watching TV. I just finished my meditation and it’s almost nine.

I did some work on the spl-token-swap JS client yesterday. I found an inconsistency between the github version and the one on NPM that caused me some problems with my testing, so I filed an issue and posted up in their Discord that I wanted to help out with it. One of their developer relations guys invited me to some invite only Solana developer Discord, so I feel like I’m part of some super shadowy secret coder group now. I think this will only accelerate my learning and knowledge.

I pulled the last of my stablecoin funds, six months living expenses, out of Yearn yesterday. It’s sitting in my ETH wallet. I want to send it to BlockFi but it’s a new address, and I’m hesitant to send the whole tranche over without a test first. Gas is $60 to send right now so I decided to wait. The market seems to have stabilized, I think we’re at the bottom of the chop at sixty K. I’d be tempted to buy some here but I still don’t have an official job offer. I don’t know if this is a negotiation tactic or something, but it’s a longer delay than I’d like. On the other hand, I’m still getting messages on LinkedIn from recruiters, so I may as well play the game while I’m still a free agent.

I want to wrap this up so that I can get started working. It’s a beautiful fall day, mostly cloudy and a bit warm for November, but I can see the leaves turning outside my window.

Foul mood

This morning was tough. Younger has a slight cold, and is home from school again today. I don’t think she should be here, but there it is. I was very agitated this morning because of my dreams, and I did not look forward to the prospect of having to keep her home today. I had a really good day with her yesterday, and went out of my way to play card games with her (she beat me at Go Fish and Santa Cookie Elf Candy Snowman,) and took her on a half hour bike ride to her Momo’s house mid afternoon so she could get some exercise. I also did not get a lot done yesterday.

When GenesysGo “deprecated” the DEX RPC server, I had to scramble Saturday morning to get the site operational. I forgot to update the indexer. So yesterday morning I was trying to figure out why the site wasn’t displaying recent trades. I thought it might have been a database error so I was all stressing about getting access to the Redis instance. Turns out the recent trades only show the last 24 hours of data, and there hadn’t been any data since the RPC went offline Saturday. So I fixed that, but now we’re missing two days of information. Oh well.

That ruined my morning, and while I did manage to get the SAIAdao update written, I didn’t post it. I’m still waiting on CompanyA to get back to me, so I’ll just have to wait till next week to get it out. So that’s my first order of business this morning.

I also have a tech support request from the exchange that I need to deal with. I do not want to be handling these all the time. Not now, when we’re barely seeing any volume. Wait and see.

Also, the market is tanking. BTC is near sixty thou. I’m down 25k on my Perp positions, but funding is already over three hundred. That means a lot of people are shorting. It may be one of the strongest rates I’ve seen in a while. It’s trending toward $1200, which would be one of my best weeks in two or three months. I suppose that means that a turnaround is right around the corner. I’d like to buy the dip, but I have no cash. Which reminds me that I need to get my funds out of Yearn today. Gas is around 100 gwei, so hopefully it won’t cost me more than a grand to get out my funds.

I did meditate and do everything else I was supposed to do last night to make sure that I have a good day today. So let’s see if the rest of the day goes any better.


So yesterday I found out that I lost thirty thousand dollars in the last CREAM Finance hack. Funds lost include ten grand in funds from my regular wallet, and twenty grand that I had staked via my IRA. I had posted the collateral there in order to arbitrage an interest play on VSP. I had already returned half of the lended tokens though, so I am only holding a small amount of VSP tokens compared to the total lost. Additionally, I had a leveraged Perp.Fi position open in CREAM for another grand. It was completely liquidated.

This is my biggest loss in crypto, and the first time I’ve been rekt because of a hack.

This hack actually occurred prior to Halloween. I apparently misread the initial details, as I did not realize that all pools were affected and that my funds had been lost at the time. The UI was still showing that I had collateral, so I naively assumed that I was safu. Alas, no.

Emotionally, I’m ok. I understand the risks of this space, and it’s precisely why I split funds up in my reFIREment account. Using it as collateral was something I didn’t quite think through though.

The lost funds aren’t really a big deal. The ten thou will be a tax write off, and the twenty in my IRA is less than four percent of the funds. I think if anything it’s made me slightly more anxious about my other funds. I have one tranche of funds left, about nineteen grand in a deprecated Yearn Vault. It will cost me $1200 in ETH to remove these funds, at which point I’ll send them to BlockFi to pay off mortgage and living expenses.

I’ll probably do a post-mortem on the reFIREment fund. It served its purpose, but financially was a wash. I took five months off from work, recharged from burnout, spent more time with my family, and was able to focus on building, ultimately landing me a dream job. I’m still not going to say who CompanyA is until I have a signed job offer in my hands though.

I think I’m most nervous about something going wrong with the job and I don’t want to jinx it. And I did just lose one third of my remaining living expenses, which is why I want to make sure I get the funds moved out of Yearn as soon as gas dies down. It could be three or five weeks before I start seeing a paycheck again, and I can’t risk those last funds on chain.

So today I’ve got to write an update for SAIAdao. Younger is home again today. She was sniffling and coughing this morning when she woke up, and Missus and I decided to keep her home again today. D’s grandfather passed away, so they’re leaving today and will be away for two weeks. So I’ll have to be Younger’s playmate today. I’m not sure how that’s going to work out, maybe I’ll get a couple of hours done today. I really want to dig in to some more development work, we’ll see how my day goes.


Yesterday we went to our local amusement park. Today was the first day of their Christmas opening, and Missus bought tickets for the family. We were only there for a couple hours, it was very crowded and we left to pick up dinner at Wawa. High rollers. I can’t say I really enjoyed it, I know the kids had fun running around but I felt more like a sherpa, and by the time it was time to go the girls were acting up. Still, it wasn’t a disaster like last time where Younger tried to hide and we needed to call security to find her.

So I stayed up till 2AM playing DSP and watching playthrough videos. This game is insane. So of course I woke up this morning with a sore neck. Got the girls off to church, I have a few more hours before they get back. I did my meditation, I’m doing my writing.

It’s Sunday, which means Perps. My CREAM position has been completely liquidated. It was only a grand, thankfully I got that out of my system. I should probably get my LP off of CREAM though, before they have another exploit. My ETH and BTC funding had a really good week, as they do when the market is down or consolidating like it is. It’s almost eight hundred for ETH, another two for BTC. Minus the three hundred gone from CREAM this week and six the last. I took my snapshot and updated my charts already, so I just need to head upstairs and compound the position. I’m up another five hundred between my IRA positions as well. My liquidation prices are all well below fifty percent. I’ve got a lot of leeway between my current price and my projected one, but I’m not sure how aggressive I want to be right now.

I spent several hours programming yesterday morning. I was hoping to update the spl-token JS library to allow one to pass a custom pubkey for a new mint, but I wound up spending too much time figuring out how to include my library in my testing repo. And then the TS mappings weren’t updating.

Then I got a message that Fintwit’s web host is going to shut them down because their server was used in some kind of SSH attack. I’m not even sure how that’s possible, really. I don’t want to take responsibility for this project, but I did tell Sherem I would do the ETH contracts. Like I need more shit on my plate right now. The house is a wreck, I start a new job in a week, and I have no idea how long it’s going to take me to launch SAIA.

But, I got to keep grinding on.

Good morning

My meditation practice continues. I’m tending to find a rhythm near the end of the sessions that is completely focused on the breath. I find myself humming om in my head through the breath, and it seems to help me focus. I’ve been trying various counting strategies, always starting with the inhale, sometimes to five, sometimes to ten, but eventually I have to stop the counting altogether. This is a bit different than the time I did the sixty-minute sessions two years ago, there was no effort made there, just to sit, whereas for these I’m actively engaging to focus my attention and my awareness.

This first week has been pretty good, today was a pretty good session. I did have some distractions and mind-wandering during the middle of the session, but I didn’t have any of the severe pain in my legs and back that I did yesterday. According to The Mind Illuminated I’m still in stages one and two, one, for establishing a practice, and two for being able to focus for the entire session. It will be interesting to see if I can make it to the phase where mind-wandering is eliminated altogether. I wonder how long that will take…

I’m making progress with SAIAdao’s migration. Trying to come up with what one would call a workspace is a bit challenging. I’m trying to do all my work on localnet — although why I’m not just using testnet instead is a question that has been raised — and figuring out how to hold everything together is a bit of a challenge. The Anchor test command does a decent job, but it’s a bit different when running their localnet command. By default, it wipes the database each time it’s run, and while I can deploy programs at launch, I can’t preserve token mints. I basically have to start the localnet, then deploy the mints using a couple of CLI commands.

I also am having a minor squibble with the SAIA DEX. GenesysGo deprecated our endpoint. They had asked me to change it a week or two ago, but I wasn’t expecting the cutoff. Thankfully I was able to push a change to master without too much trouble.

Coin flip

So it seems I will be starting my new job in a week. I spoke to my new bossmang yesterday and confirmed. I’m still waiting on paperwork as several team members were in Lisbon for the Solana conference. Hopefully we can make some progress on that today.

Younger is home today. School sent her home “sick” when she told them she had a sore throat and they took her temperature. It was ninety-nine. Ugh. She’s not sick, but the school has a 24 hour policy on fevers so she’s stuck home with Missus and I today.

Hopefully I can get some work done. I spent some time trying to deploy the Solana Oyster Swap (AMM) front end, but it’s horribly out of date. It only has Sollet wallet support, and when I tried to add everything from the DEX repo I started getting Typescript errors. Thankfully my developer network is growing by the day, so I have more people to ping questions off of.

I’m going to keep grinding at it. We’ve got to get SAIA fully launched as quickly as possible. The clock is ticking. I’m not even spending any time writing Solana programs, it’s all front end stuff. Very frustrating. All I can do is try to make daily progress and keep building toward the end goal.

Our phishing incident with the DEX seems to be resolved.

I aped into another Olympus fork, Invictus. It’s the first one I’ve seen on Solana so I didn’t even think about it, just threw twelve hundred dollars into it. I also was going to by in on $GM, but couldn’t get Uniswap to work. It’s one of these fee on transfer tokens, and requires high slippage. I was about to put $10k of my IRA money into it last night but just kept having issues. It’s probably a good thing I didn’t. I’ll probably look at the price chart later this morning and thank my good fortune or curse my luck.


Today is Veterans’ Day, so Missus has the day off. I’m going to crank out a couple hours work on an Ethereum project and then we are going to do something together. We’re just not sure what.

I stayed up a bit late last night playing Dyson Sphere Project and watching Big Mouth. I’m paying the price this morning. I still managed to do my forty five minutes of meditation though, and I am sticking to my practice by writing. I have decided that no matter what, these two activities are going to be how I start my day.

My brain was a bit distracted during meditation. It was very anxious for the time to be up so that I could get on with my day. There’s a lot that I want to do. Namely play DSP, but I’m going to hold off on that for now and get some actual work done. I promised Sherem that I would do some work on Fintwit’s Trailer Park for him. I either need to deliver or find someone else who can.

I supposed my Solana work will have to take the backseat for the moment. I managed to record another short video for my Anchor series yesterday. I’m not too happy with the results, I may want to redo it in the future. I wasn’t really prepared for it and probably wound up sounding like an idiot at a couple places. I might need to spend more time prepping for the next. I’m not going to advertise the channel until I’ve got a couple more vids under my belt. I’m really not putting any effort into them right now, but I guess they’ll get better as my competencies grow.

That’s it, it’s nine AM. Time for office hours.