Back to Blog

River CSV Import & Cost Basis Overrides | v1.0.0-beta.8

· 3 min read

New connection kind, more control over cost basis, and a handful of improvements that make the CLI easier to work with.

River CSV Import

River is now a first-class connection kind in Clams. You can now import your Account Activity CSV directly without building a custom mapping.

River offers two CSV exports: Account Activity and Bitcoin Activity. Use the Account Activity export, as it includes both fiat and bitcoin transactions and is the format Clams supports.

clams connections create --label my-river --kind River

clams connections import \
  --label my-river \
  --input-format csv \
  --file Account_Activity.csv

Clams handles the column mapping, amount parsing, and deduplication. If you've been using a Custom connection for River, you can switch to the native kind and re-import. Deduplication ensures nothing is double-counted.

Manual Cost Basis Overrides

Sometimes the data you imported doesn't reflect the actual cost basis. Maybe you don't have all your wallets connected, or the original purchase records are incomplete. You can now override cost basis manually through metadata and see those overrides reflected in your reports.

For example, if you know that a receive to your cold storage was purchased at $30,000 but Clams doesn't have that data:

clams metadata records rate set --event-id a1b2c3 --btc-fiat-rate 30000

The override is reflected in your capital gains reports going forward.

CSV Mapping DSL Improvements

The Custom connection mapping DSL picked up several new capabilities:

  • Optional btc_destination: no longer required on BTC deposits, which is useful for exchanges that don't include addresses in their exports.
  • Decimal sats comparisons: you can now compare parsed amounts directly in when conditions, making it easier to classify rows by amount thresholds.
  • paired_trade support: some exchanges split a single trade across two CSV rows (one for the buy side, one for the sell side). The DSL now supports pairing them into a single canonical trade record.

If you're importing from a custodial exchange that has an unusual CSV layout, these additions cover more edge cases without workarounds. See the Custom Connections Guide or the full CSV mapping spec for details.

Other Improvements

  • Better error reporting: CLI errors now give clearer guidance for expected failures and preserve full context for bug reports via clams feedback.
  • Post-deletion journal guidance: after deleting a connection, Clams now prompts you to run clams journals process to reprocess your data, matching the guidance you already see after syncs. This ensures your reports always stay up to date.
  • Offline auth validation: authentication checks now work offline, and local session recovery is more resilient. If your internet drops mid-session, Clams won't lock you out of your own data.
  • Unique workspace labels: workspace labels are now enforced as unique per creator, preventing accidental duplicates.
  • Smarter on-chain transfer matching: custodial imports that only provide transaction IDs (instead of deposit addresses) now match against on-chain data more reliably.

Update

clams update

Run into issues? Use clams feedback or reach out at support@clams.tech.

Clams Team

Stay in the loop

Get updates on new features and guides delivered to your inbox.