• Friday

    • Claimed march BAT rewards on 2 devices. The first deposited into gemini immediately. The second is taking some time, don’t see it yet.
    • https://dfinance.co/
    • Aptos. 160k tps: https://medium.com/aptoslabs/block-stm-how-we-execute-over-160k-transactions-per-second-on-the-aptos-blockchain-3b003657e4ba.
    • Sui. Hot potato, guaranteed-return flash loan: https://github.com/MystenLabs/sui/blob/main/sui_programmability/examples/defi/sources/FlashLender.move. The Receipt struct just has copy, so the only was to get rid of it (and successfully close a transaction) is the call repay() before it’s done.
    • Watched Gambling Wall St. Comically inaccurate.
      • Shorts are good for the market. Keeps overvalue and fraud in balance. It’s the second half of the tug-of-war.
      • Robinhood wasn’t the only broker to halt GME. Multiple did.
      • The coverage of Why (clearing houses) was about one sentence. The doc painted it active and manipulative.
      • No differentiation of Citadel vs Citadel Securities, the actual market maker.
      • No mention of slippage. “Market makers just take some of your money, you’re being shaved off the top.”
      • Ultimately it comes down to hating the wealth (and the primitive emotion behind it, jealousy – which everyone feels). Hating, then finding reasons. Not finding reasons, then hating.
      • It’s a profession. There’s a spectrum of skill. The professionals are at the top. The casual individual has less experience. This just happens to be the profession whose prowess is money, rather than tennis or software or medicine. If leaves were dollars then people would hate gardeners.
      • Payment for order flow is legal for a reason. It’s also more efficient. It’s cheaper and faster when a brokerage can bundle and submit orders directly to the market maker.
      • Hedge funds are the control. They stabilize the entire market, determining what the baseline should be and pushing the market toward that reality. This is done with fundamentals. They seek the true value of companies and profit by moving the actual value of companies toward that true value.
      • This is not market manipulation, this is the bedrock of a healthy market.
      • You know what sounds more like market manipulation? Sending a geriatric brick-and-mortar video game shop to the moon during a pandemic by short squeezing the positions held by firms you don’t like.
      • Deviation from the fundamentals hurts everyone. Retail investors even more than institutions. If pharmaceutical companies were getting rich off a pill that cures a disease but was overpriced, should I create another pill that does nothing but is cheap and marketable in order to make a profit and stick my financial middle finger in the face of big pharm?
    • A tender offer to existing shareholders does not have to be approved by the board. Poison pills are effective – basically the company offers shares at a discount to existing shareholders, diluting the ownership and making it harder / less attractive / more expensive to takeover.
  • Thursday

    • Yield for wbtc/renbtc/etc isn’t high, but can still be staked for slow yield.
    • ETF managers make a profit by charging fees. They’re low though, since management is typically passive or algorithmic.
      • How are the fees deducted? This makes sense for regular funds obv, but I’ve never really looked into how this works on an open market ETF traded on exchanges. I think they rebase the assets (daily?) to adjust the value of backing minus fees. So it’s simply reflected automatically in the value of your holding.
      • An open crypto ETF platform would let you create your own portfolio, in addition to the ones curated by the owners. I imagine the fee structure for these is just % of transaction.
      • Grayscale charges an annual fee. More than 2% in some cases.
    • Osmosis.
      • Primarily a dex on cosmos, but this protocol offers 2 unique features:
        1. Cross-chain. Incorporates bridges so you can swap across diff networks.
        2. Users can create their own DEXs/AMMs/LPs/etc on the platform. Customizable fee structure, non 50:50 ratios, not just constant-product but other curves, concentrated liquidity, etc.
    • Checked https://cotps-otc.com/ out. Looks shady, claims HF (makes no sense since transaction speed is set by the blockchain and order is set by the validators), and has no app/connect/audit/discord/docs/roadmap etc – just a link to another site to register.
    • Circle is applying to become a bank.
    • After turning down the board seat, Elon filed a deal to buy twitter. Their current market valuation is ~37b, the offer was 43b ($54/share). Said it was final, and if not completed, would reconsider his position as a shareholder (9%). The stock jumped at this news, which corners the twitter board even more in fear of tanking after pullout.
    • Aptos = Mo Shaikh CEO, Avery Ching CTO.
    • Mysten = Evan Cheng CEO, Sam Blackshear CTO.
    • 1hr youtube video by Sam Blackshear on Move: https://www.youtube.com/watch?v=EG2-7bQNPv4. “A Safe Language for Programming With Money.”
      • Needs to be deterministic, safe, and have metered execution. Most conventional languages don’t (again, I disagree, you can slightly modify many common languages to achieve these without introduced an entirely new semantic set).
      • Moving vs copying vs referencing resources = critical.
      • Drop/copy/store/key type abilities = critical.
      • No native currency. Anyone (any address) can create a token and add it to global storage (under their address).
      • Code is reusable (even across strangers’ accounts, if exposed), just import a module from another address.
      • All or nothing. A transaction either succeeds fully or fails anywhere and does nothing.
      • The fact that you can enforce stuff won’t be accidentally dropped? Can that be a business? Transaction preview or transaction protection or something.
      • Move comes with gas metering, but final gas prices are set by the network implementation (aptos, starcoin, sui, etc).
    • Downloaded desktop telegram. Joined aptos discord.
    • Eth2 deposit contract is the #1 eth holder (12M ETH = $36B USD): https://etherscan.io/accounts.

  • Wednesday

    • Collabera has sent me 61 emails since Oct 8. 10 emails per month. 1 every 3 days.
    • Finished Return to Space. Was great to recognize all my old SpaceX colleagues. Truly an incomparable mission/vocation.
    • The NFT for Dorsey’s first tweet was put up for auction at $48M and the highest bid was $280: https://www.coindesk.com/business/2022/04/13/jack-dorseys-first-tweet-nft-went-on-sale-for-48m-it-ended-with-a-top-bid-of-just-280/.
    • Olympus.
      • Withdrew USDC from cex to metamask on eth mainnet. Swapped for ETH on 1inch. Swapped half for OHM on 1inch. Added 50:50 OHM/ETH liquidity on sushi. Bought bonds with the SLP tokens on Olympus (6% discount rn). Will claim gOHM then deposit into the tokemak reactor for additional APY. Rinse and repeat every term (2d currently).
      • Remember sushi wraps ETH to wETH in this process, don’t be concerned that Olympus only says OHM-ETH-LP and not OHM-WETH-LP.
      • Remember you are capped on every purchase over the term, you can’t buy infinite bonds at the discount. Right now this is ~110 sOHM, or $3k. So the max you can cycle is 3k every 2 days (well this is the max at a discount; you can stake as much as you’d like at regular rate).
      • Side transactions: wrapped by sOHM to gOHM (for tokemak compatibility) and transferred some more eth for gas (Olympus is one of those DeFi2 protocols only on L1…).
    • Move.
      • Read the whitepaper.
      • https://github.com/MystenLabs/awesome-move.
      • Created a fungible token in Move.
        • Combined 2 primary tutorials: https://github.com/diem/move/tree/main/language/documentation/tutorial (has the dev script for initial install, not small) and https://diem.github.io/move/creating-coins.html.
        • df-cli is the wrapper around the move cli. Then “move package build”
        • Coins usually only have the “store” ability. Balance would have the “key” ability. Not copy or drop, for either.
        • Decorate unittests (regular functions) with #[test] to indicate. Need to declare move-stdlib as a dep in Move.toml. -g to print global state on failure, -s for statistics.
        • Global storage = blockchain state. It’s indexed by addresses.
        • Modules = code (contracts). Owned by addresses.
        • Resources = values. Owned by addresses. Resource storage under each address is basically a map from types to values.
        • Vs eth:
      • In general, the documentation for Move is sparse and not-up-to-date in many cases.
      • Installed the move-analyzer vscode ext.

  • Tuesday

    • CPI inflated 8.5% from last march to this march (highest 1yr delta in over 40yrs).
    • Uniswap added a venture arm.
    • Starcoin (chinese) is another blockchain. They manage their own L1 and L2, with diff responsibilities for each. https://starcoin.org/downloads/Starcoin_en.pdf. Smart contracts are written in Move. List of examples: https://github.com/starcoinorg/starcoin-framework/tree/main/sources.
    • 0L (from libra) also uses Move: https://github.com/OLSF/libra.
    • Read some of Tesla’s 14A from the shareholder meeting on 2021-10-07. He owns 23.1% and has collateralized about half his shares. (that’s like $30b straight if 30% LTV on the current tsla market cap).
    • MEVs are tougher on solana. Much faster, you don’t know when you’re going to be leader until right before.
    • Deepdive on Prysm / private equity ABL dynamics.
    • Move.
      • Move’s name comes from Rust. Rust uses an “Affine” type system, which means that a resource is Moved (not Copied) which means that it must be used 0 or 1 time. Resources can only have one owner (one variable), and that ownership can be transferred. After moving, the previous owner can no longer be used (dangling pointers are automatically cleaned).
      • There are two primary docs: Diem’s (https://diem.github.io/move/) and the Move Book (https://move-book.com/). I’m using the latter.
      • Why an entirely new language? https://community.diem.com/t/introducing-the-move-programming-language/72/43. Blockchain requires a lang to be (1) deterministic (2) hermetic (3) metered. Sure, these aren’t mandatory built-ins for most languages, but they can be easily enforced. (1) is common. (2) disable network. (3) observability and control tools on cpu.
      • Installed “Move IDE” vscode extension (only 682 downloads).
      • No strings or floats. Ints u8/64/128. Cast with “as” or <>. Bool false/true. Address = wallet. Comment // and block /* */. Let, block scope {}. And const. fun. Every var must be used. To intentionally not use, “_” just like python. If, while, continue, break, abort. Assert.
        • A vector is a collection of the same type. An array, but one type. The module is called Vector. It then provides functions like: empty (instantiate), push_back, pop_back, length, borrow_mut.
        • For strings, it’s technically a vector<u8> using ascii conversion from ints to chars. Move allows you simplify this with bytestring literals: b”hello world!”
      • If there’s no semicolon after the last expression in a block, that’s the return value for the block.
      • An overall if statement can’t return a value, must end in semicolon. Same for while.
      • Publish code with module. Call module code with scripts, or nested modules. Modules are published from an address, and called from that address. use <address>::<module>; then <module>::<function>
      • Functions. snake_case names. Modules define many functions. Scripts define just one function, main(). Default is private. “public” to expose it. “native” functions are actually defined by the Move VM.
      • Move requires types for function arguments/returns and all variables.
      • Struct is used for custom types. It’s a dictionary = hashmap = key/val with field:type. You can have a struct (object) nest within a field of a parent struct to compose them.
        • Access properties of instances with dot. “<struct>.<field>”
        • You can destructure like js with {}. Can also define getter/setter functions in a module.
      • An example move contract for a coin swap: https://github.com/diem/move/blob/main/language/documentation/examples/experimental/coin-swap/sources/CoinSwap.move. 100 lines.
      • Types have 4 abilities: copy, drop, store, key.
        • Primitives (int, vector, address, bool) have copy/drop/store (no key).
        • You can specify for your custom types. “struct <name> has store, copy, drop {…}”
        • For example: compiler will complain if a function has a hanging variable without the “drop” ability, because GC won’t be able to kill it.
      • Each variable only has one owner/scope. And the only scope is functions in Move (no classes). So if you pass a var to a function as an argument, that function now owns it. The original scope does NOT have access to the var anymore.
      • The two keywords are “move” and “copy”.
        • By default, when you pass an arg to a func, there’s an implicit “move” before the arg.
        • You can put “copy” instead so the original scope still owns the var. This obviously doubles the memory footprint for this var.
        • Or, you can just “reference” it with “&” before the variable type. It’s not copied, but the new function doesn’t take ownership. The original func still owns that var. Under the hood the VM just creates a link to that section in mem, obv.
        • If the other function wants a writable reference instead of just reading the value, pass with &mut type.
        • “Borrow checking” is a compiler concept. It will statically verify if you’ve violated anything by moving a borrowed value.
        • If you’re passed a reference, you can dereference with *. This creates a copy of the var.
        • You can use a reference of an object but then copy a property for your own purposes. “*&<var>.<inner>”
        • And remember, primitives are always copied. References are not created.
      • Just like typescript, it has the generic type “T” which will accept whatever it’s passed. You may restrict abilities for generic types as well. You may have a list of types in a generic.
      • All Diem currencies are defined with the generic Diem::T type.
      • “Signer” is a native type. It only has one ability: drop. It can’t copy or key or store. It holds the address of the transaction sender. The canonical name for a variable of type Signer is “account”.
      • “Resource” is a struct that has only the Key and Store abilities. Not drop or copy. It used to be a separate type, before abilities became a formal thing.
      • Canonically you name the main resource in a module “Collection”.
      • You can only put a resource under your account (you can have multiple). And you can’t have MULTIPLE resources of the same type under the same account. Eg you can only have 1 sol balance, not 3 sol balances.
      • Native functions: move_to(), exists(), borrow_global(), borrow_global_mut(), acquires, move_from()
  • Monday

    • Been posting majority stealth stuff separately.
    • Olympus moves.
      • Ran an entire “withdrawal” to test the process before placing a larger position.
      • Unwrapped gOHM to sOHM so I’d only be holding 1 asset (the vote matters less to me).
      • Then unstaked. You can’t trade sOHM on DEXs, it’s worth 0. You have to unstake from sOHM to OHM (1:1 ratio), then can swap OHM for USDC or whatever withdrawal method you prefer.
    • Apparently a new Candy Machine CLI called Sugar is being released soon and was demoed at Miami Hacker House yesterday for the first time. It configured and uploaded a collection of >1000 NFTs from start to finish in <5min.
    • Equityzen.
      • The Growth Opportunity Fund exposes ~20 (series C to pre-IPO) companies in a single diversified investment.
      • https://equityzen.com/invest/gof8/
      • It’s a 1.8% management fee, removed from earnings, for an investment in the initial round <75k.
      • 50k min (for this one, the 8th fund).
      • There are questionnaires you fill out when reserving slots – you must answer in the flavor of “very aggressive, high risk, ok with longterm illiquidity” etc in order to be approved.
    • Brave wallet payouts; this experience has been very bad across both devices and both months I’ve participated so far. They take over 2 weeks to arrive (after the turn of the month), and are wrong. Linking multiple devices to the same gemini account… also doesn’t work properly.
    • Goldman Sachs participated in Certik’s funding round (b3).
    • YGG = Yield Guild Games. They’re a gaming guild for blockchain P2E games. Basically DAOs that buy gaming NFTs for in-game items and stuff. They then loan the NFTs out to members. There are revenue shares and stuff.
  • Wednesday

    • Flights for miami. Solana HH and Bitcoin 2022 next week.
    • Connected all the React.ChangeEvent<HTMLInputElement> and React.FormEvent<HTMLFormElement> properly for controlled components.
    • Robinhood offering 7am-8pm ET extended market hours. Stock jumped nearly 25%. Less concentrated liquidity, wider spreads, all the usuals. But still good.
    • Axie Infinity hack, ~595m in ether and 25m in usdc.
      • Ronin is an eth sidechain specifically made for Axie. It has a bridge for cross-chain transactions, and a DEX (katana) to swap game tokens on ronin.
      • They hacked one of the 9 validator nodes (the gas-free axie dao rpc node) on ronin, which with the 4 Sky Mavis nodes (axie company) provided a majority. Then signed withdrawals to drain the assets in the bridge.
      • https://etherscan.io/address/0x098b716b8aaf21512996dc57eb0615e2383e2f96
      • Took a week to notice, and alert was from a user who couldn’t withdraw.
  • Friday

    • Can point wireshark (clientside) at your SSLKEYLOGFILE to decrypt HTTPS traffic.
    • They really improved the olympus dashboard, adding pages for the treasury, revenue, olympus pro, and proteus.
    • JWST image!
    • Uber listing nyc cabs starting in a couple months.
    • Remember the relay chain (L0) of polkadot vs the parachains (L1s) that are connected on it, all sharing the same validators for consistent security/connectivity.