Journal
Notes on craft.
Short essays on building native apps, working with Swift, and exploring the open web.
RSS- 8 min read
Replaying the chain locally: the fork that made my bot's simulations affordable
A bot that picks fights by simulating the game's battle engine needs hundreds of thousands of on-chain reads. The free RPC tier can't keep up, and I refused to pay for it. The fix: fork the chain onto my own machine — and the memory bug that taught me elegant isn't the same as correct.
web3basefoundryanvilperformanceviemdev - 8 min read
Simulate before you strike: how my bot picks a fight
Luchamon Bot doesn't guess which opponent to fight — it asks the game's own battle engine, over and over, and plays the least bad option. A look at simulation-driven selection, Monte-Carlo win probabilities, and the economics of never wasting an energy.
web3basesimulationmonte-carloviemdev - 7 min read
Anatomy of the PatolabsOG contract
229 lines of Solidity, an ERC-721 with on-chain SVG art, a 1-per-tier invariant enforced on transfers, and a few design decisions worth explaining.
soliditynfterc721baseweb3foundrydev - 7 min read
Patolabs OG: NFTs to unlock my betas
1,000 NFTs on Base, three tiers, 100% on-chain art, and a single purpose: giving early adopters verified access to all Patolabs TestFlight betas.
patolabsnftbaseweb3solidityindiedev