BAY 05:56
NYC 08:56
LDN 12:56
BER 13:56
TYO 21:56
Taxbit accounting transactions page showing multiple cryptocurrency transactions on the Solana blockchain, with various statuses like Synced, Unsynced, Ineligible, and Errored, dated 09/12/2024.

Taxbit

2022–25
Product Design

In 2022 I was hired by Tactic, a startup building cryptocurrency accounting software. Shortly after I joined, the company was acquired by Taxbit, which was looking to add it alongside their existing cryptocurrency tax offering.

I was tasked with redesigning the accounting product to fit with the rest of the company's brand identity. This required integrating it with Cosmic, Taxbit's internal design system. This was an opportunity to take existing functionality and present it in a clearer way.

Transactions

The transactions page presents the most intricate and extensively utilized area, encompassing all activities pertaining to the user’s connected wallets and exchanges. Given the information density of this table, I aimed to display the data and relevant actions in an easily-digestible manner.

The existing UI made use of the full screen width to display the transactions table, allowing it to include more columns per row. As such, it had two columns for the counterparties and two for the amounts on either side of the transaction. The legacy table also supported expandable rows to display nested transactions.

Screenshot of legacy transactions page
Screenshot of legacy Taxbit cryptocurrency transaction table with expanded row showing additional details

Redesigning this page using Cosmic components resulted in an inefficient use of space, causing key elements to be hidden on initial load.

Annotated screenshot illustrating usability issues in a cryptocurrency transaction table, focusing on space constraints and functionality limitations.

To address this, I combined the columns to regain horizontal spacing, resulting in the Out / From and In / To columns to denote the movement of assets. I also wanted to achieve feature parity with the legacy UI so I implemented expandable row functionality in the Cosmic table which is built using the TanStack Table library.

The image shows a cryptocurrency accounting dashboard from TaxBit, displaying transaction records. The interface includes a sidebar with navigation options like Transactions, Reports, and Settings. The main section lists transactions with details such as category, date, blockchain, value, fees, and status (e.g., synced, unsynced, errored). A “Create Transaction” button and filters are also visible.

Due to strict accessibility requirements for certain clients, the filter bar in the legacy UI had to be replaced with a drawer. This pattern is repeated throughout the application.

Screenshot of Taxbit's 'Transactions' page with filter options including date range, category, and asset type.

Dashboard

This page provides an overview of the user's financial activity over time with functionality to filter the charts and tables by date range, source, and asset. The stat cards at the top highlight overall market performance while the section below shows more granular data with the ability to filter by asset, source, and date range.

Taxbit dashboard showing portfolio overview with charts and data tables.

I updated the chart component to plot two values and show the difference between them. The chart is implemented using the recharts library and is rendered entirely as an svg element. In order to color the area between the two lines, I calculated the points of intersection between them as percentages of the total chart then applied a fill to the areas delineated by those intersections.

A line graph depicting two data series over time, from January 17th to January 27th. The vertical axis represents values from 0 to 6,000, with increments of 1,500. The horizontal axis represents dates. One data series is represented by a solid blue line with shaded areas beneath it. The other series is a dashed black line with shaded areas beneath it. The blue line shows peaks and valleys, while the black line shows a more consistent fluctuation.

Sources

I adapted the legacy sources page to group sources by their type, utilizing an expandable row to show all connected sources of that type. This allowed me to surface aggregate data for blockchains and exchanges while nesting individual wallet and exchange account information in the expanded rows.

A screenshot of the Taxbit Accounting 'Sources' page. The page is organized with a left-hand navigation menu and a main content area. The navigation menu includes links for Dashboard, Transactions, Reports, Sources, Contacts, Accounting, Rules, and Settings. The main content area displays a table titled 'Sources' with columns for Source, Type, Assets, Total Value, Transactions, and Status. The table lists five sources: Bitcoin (Blockchain), Ethereum (Blockchain), Binance (Exchange), Coinbase (Exchange), and CSV Uploads (CSV). Each row displays relevant data for each source, including icons representing the asset type, numerical values for total value and transaction count, and status indicators. A button labeled '+ Add' is visible in the top right corner.
Taxbit Accounting 'Sources' page screenshot. Lists Bitcoin, Ethereum, Binance, Coinbase, and CSV sources with asset values and transaction counts. Includes search bar and '+ Add' button.
Taxbit Accounting 'Sources' page with Bitcoin, Ethereum, Binance, Coinbase, and CSV sources. Shows asset values, transaction counts, and detailed data for Bitcoin sub-sources.

Nicolai Garcia Beckmann