-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Griffen Fargo edited this page May 10, 2026
·
7 revisions
Self-hosted crypto wallet auditing and tax reporting CLI tool.
daybook pulls transactions from Coinbase, Kraken, Binance/Binance.US, generic CSV exports, and EVM wallets (Ethereum, Polygon), normalizes them into a single ledger, classifies events, computes cost basis, flags wash-sale candidates, and exports tax-ready CSV, Form 8949, Schedule D, and TXF output.
Current release: v0.2.0. The main branch is preparing v0.3.0 with 464 tests passing across 31 test files.
- Getting Started — install, configure, and run your first export
- CLI Reference — all commands, flags, and options
- Architecture — monorepo structure, package dependencies, data flow
- Source Adapters — Coinbase API/CSV, Kraken, Binance, Binance.US, generic CSV, EVM chains
- Coinbase API Setup — set up Coinbase API keys and run API sync
- Classifier Rules — the 8-rule classification chain
- Tax Engine — cost basis methods, wash sale flagging, Form 8949, Schedule D, TXF, CSV export
- Pricing — how USD prices are resolved
- Configuration — config file format and environment variables
- Binance and Binance.US CSV adapters — Import Binance ledger exports and Binance.US tax-report style exports as first-class sources.
- Generic CSV importer — Import common universal/manual crypto ledger files using sent/received/fee/value columns.
- Stablecoin accounting — USDC and USDT are treated as crypto assets, not USD fiat.
- NFT cost-basis tracking — Full cost-basis tracking for ERC-721 and ERC-1155 tokens. NFT purchases, mints, airdrops, sales, transfers, and NFT-for-NFT trades are classified and included in tax calculations.
-
NFT classifier rule — New rule 08 detects NFT transaction patterns by grouping events by
txHashand pairing NFT legs with fungible counterparts. -
NftLotBook — Each NFT tracked as a unique, indivisible lot keyed by
<contractAddress>:<tokenId>. No pooling or partial consumption. -
NFT pricing — Cost basis derived from counterpart legs (ETH/ERC-20 in the same transaction) or manual price overrides via
daybook overrides set. - NFT export integration — NFT disposals appear alongside fungible disposals in all export formats (CSV, Form 8949, Schedule D, TXF).
-
NFT event filtering —
daybook events list --type nft_acquisitionand--type nft_disposalfilters. - Unpriced NFT guidance — Export summary shows unpriced NFT count with override instructions.
-
LIFO cost-basis method — Last In, First Out joins FIFO and HIFO.
daybook comparenow shows all three side by side. -
JSON output —
--format jsonon all read commands for scripting and piping - Design system — centralized UI component library with themed Ink rendering across all commands
- Styled help — usage examples on every command, rewritten descriptions following the design system voice
- Non-TTY degradation — graceful fallback when piped or in CI environments
- Kraken CSV adapter — import Kraken "Export Ledger" CSV files
-
Events list Ink upgrade — structured table output with
--type,--source,--accountfilters - Failed transaction gas tracking — capture gas from reverted EVM transactions via Etherscan
- Classify dry-run — preview classifier changes without writing to the database
- Interactive unclassified review — override unclassified events inline after classification
-
Incremental sync —
--from <date|block>to skip already-ingested history - Specific ID lot selection — hand-pick lots for tax-loss harvesting with interactive picker or JSON replay
- Wash sale flagging — informational flags on loss disposals with acquisitions within ±30 days
| Source | Method | Status |
|---|---|---|
| Coinbase | API sync | ✅ v0.3.0 |
| Coinbase | CSV import | ✅ v0.1.0 |
| Kraken | CSV import | ✅ v0.1.0 |
| Binance | CSV import | ✅ v0.3.0 |
| Binance.US | CSV import | ✅ v0.3.0 |
| Generic CSV | Universal/manual CSV import | ✅ v0.3.0 |
| Ethereum | Alchemy API | ✅ v0.1.0 |
| Polygon | Alchemy API | ✅ v0.1.0 |
| Etherscan (failed tx) | Etherscan API | ✅ v0.1.0 |
| Method | Description | Status |
|---|---|---|
| FIFO | First in, first out (IRS default) | ✅ v0.1.0 |
| HIFO | Highest cost, first out (tax minimizer) | ✅ v0.1.0 |
| LIFO | Last in, first out | ✅ v0.2.0 |
| Specific ID | User picks lots manually | ✅ v0.1.0 |
| Format | Description | Status |
|---|---|---|
| CSV | Tax-ready CSV with one row per disposal | ✅ v0.1.0 |
| Form 8949 PDF | IRS Form 8949 with continuation sheets | ✅ v0.2.0 |
| Schedule D PDF | IRS Schedule D summary | ✅ v0.2.0 |
| TXF | TurboTax import format (v042) | ✅ v0.2.0 |
Getting Started
Usage
Architecture