Skip to main content
glnc

COMMAND

Export transaction history (CSV / JSON)

glnc history exports a wallet's transaction history as CSV or JSON. It classifies each row (transfer, swap, contract call), backfills USD prices at the time of the transaction where possible, and writes a tax-ready file. Uses the unified Etherscan V2 endpoint; works without an API key at a lower rate limit.

Synopsis

glnc history <address> [--out <path|auto>] [--from <date>] [--to <date>] [--chain <name>] [--json]
glnc history 0xd8dA... --out auto
glnc history 0x... --from 2025-01-01 --to 2025-12-31 --chain arbitrum
glnc history 0x... --no-prices --out 2025.csv
glnc history 0x... --api-key $GLNC_ETHERSCAN_KEY --json

Example

glnc history 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 --out auto
fetching pages 1..7 from etherscan V2
classifying 1,243 transactions
backfilling historical USD prices
wrote ./glnc-0xd8dA…6045.csv (1,243 rows)

CSV columns

Columns are stable so spreadsheets and accounting tools can map them once and forget.

CSV columns emitted by glnc history.
FlagDescription
timestampUTC ISO-8601 timestamp of the block the tx was included in.
chainChain slug (ethereum, polygon, arbitrum, base, ...).
hashTransaction hash.
kindClassifier output: transfer, swap, contract-call, approval, mint, burn, ...
fromSender address.
toRecipient or contract address.
symbol / amountToken symbol and signed amount from the row owner's perspective.
priceUsd / valueUsdHistorical USD price at block time, and the USD value of the amount.
gasNative / gasUsdGas paid by the sender, in native and USD.

API keys

The public Etherscan V2 endpoint works without a key, with a lower rate limit. For anything beyond a few hundred transactions, set GLNC_ETHERSCAN_KEY once in your shell to lift the limit. The free Etherscan tier is more than enough for personal exports.

export GLNC_ETHERSCAN_KEY=YourKeyHere && glnc history 0x...
(no rate-limit chatter)

Flags

Flags accepted by glnc history.
FlagDescription
--out <path|auto>Write to a path; "auto" writes to ./glnc-<address>.csv. Omit for stdout.
--from <date> / --to <date>Filter to a date range. Inclusive. Accepts YYYY-MM-DD.
--chain <name>Restrict to a single chain instead of unioning across supported chains.
--no-pricesSkip the historical USD backfill. Significantly faster.
--api-key <key>Override the GLNC_ETHERSCAN_KEY env var with an inline key.
--jsonEmit the glnc.history/v1 envelope on stdout instead of writing a CSV.