Skip to main content
glnc

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.