Field notes
glnc field notes
Building a blockchain inspection CLI in public. Decoder edge cases, RPC fallback strategy, the parts of Etherscan we are happy not to rebuild.
Monitor a wallet balance in GitHub Actions, no API key
A scheduled GitHub Actions workflow that checks any wallet balance on a cron, with no API key and no secret to store on the runner. Install glnc, run one command, and gate the job on data quality or a balance threshold with jq.
Designing a stable, versioned JSON envelope for a CLI (and why --watch emits NDJSON)
Pretty human output is not an API contract. glnc wraps every --json line in one envelope (schema, ts, ok, data, error, meta), switches to NDJSON under --watch, keeps stdout data-only, and ships a meta.partial honesty flag plus a glnc schema command so consumers can validate the stream they parse.
Check any Bitcoin address balance, no full node needed
bitcoin-cli only answers for addresses your own node already watches, which means a full sync plus a rescan. glnc reads any Bitcoin address from the terminal in one command, with no node, no account, and no API key, via the Blockstream Esplora API.
Check all wallet tokens across 9 chains in the terminal
Run glnc balance on any address and get a per-token table with USD totals across all 9 chains in one line. Address auto-detection, roughly 1,400-token discovery per EVM chain, every SPL token on Solana, and an honest read of what the totals do and do not include.
I don't trust a single free RPC, so my CLI makes them vote
Three public RPCs, one balance, and a streaming vote that returns the instant two agree and aborts the slow third mid-flight. How glnc's --rpc-quorum engine compares endpoints, detects disagreement, and shows you the ballot in JSON, without running a node.
Monitor an Ethereum wallet and ping Slack when the balance drops, from the terminal
Wire glnc into a Slack incoming webhook so an on-call engineer learns about a balance change from the same channel that already pages them. One liner, then a script, then a script that does not lie when the data is degraded.
Decoding MultiSend and Governor calldata, from the terminal
A note about the part of glnc that walks Governor, Timelock, MultiSend, and leaf calls without giving up at the first bytes field. The depth-3 cap, the packed-byte parser, and the things still missing.
Why I built a CLI alternative to Etherscan
Twelve Etherscan tabs, no API key, and a working terminal. The story behind glnc, an open-source CLI for blockchain inspection, told the way the README would tell it if it had room to talk.