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.
| Flag | Description |
|---|---|
timestamp | UTC ISO-8601 timestamp of the block the tx was included in. |
chain | Chain slug (ethereum, polygon, arbitrum, base, ...). |
hash | Transaction hash. |
kind | Classifier output: transfer, swap, contract-call, approval, mint, burn, ... |
from | Sender address. |
to | Recipient or contract address. |
symbol / amount | Token symbol and signed amount from the row owner's perspective. |
priceUsd / valueUsd | Historical USD price at block time, and the USD value of the amount. |
gasNative / gasUsd | Gas 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
| Flag | Description |
|---|---|
--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-prices | Skip the historical USD backfill. Significantly faster. |
--api-key <key> | Override the GLNC_ETHERSCAN_KEY env var with an inline key. |
--json | Emit the glnc.history/v1 envelope on stdout instead of writing a CSV. |