On-chain tooling, mostly EVM. Indexers, mempool watchers, contracts and the unglamorous infrastructure that keeps a bot alive on a VPS for months.
Currently into: reorg handling that does not corrupt state, gas-efficient claim patterns, latency in the path between a node and a submitted transaction.
merkle-airdrop solidity |
Airdrop contract with bitmap claims, relayer-safe payouts, deadline and sweep. Foundry tests, off-chain tree builder. |
evm-log-indexer typescript |
Contract events into SQLite, keyed by block hash so a reorg rewinds cleanly instead of corrupting the table. Built on viem. |
mempool-tap rust |
Pending transactions over WebSocket, filtered by selector, recipient or value. Reconnects on its own. |
sqlite-jobq python |
Durable job queue on SQLite: atomic claims, leases, retries with backoff. No broker to run next to your bot. |
ratelimit-kit python |
Token bucket and sliding window limiters. RPC providers are stricter than their docs admit. |
envlint python |
Checks .env against .env.example, so a missing key is a lint error and not a 3am incident. |
Solidity · Foundry · TypeScript · viem · Rust · tokio · Python
EVM · Solana · SQLite · PostgreSQL · Docker · Linux
Most of this started as something I needed for my own bots and only became a repository once I had rewritten it for the third time. Issues and PRs welcome.