Release

NFTs as their own transaction type, counterparty profiles, and completeness score drivers

NFT transactions now display separately from token trades and group by collection, with a disclosure when part of a collection cannot be priced. The Data Completeness Score gains a score-drivers view with links straight to the transactions behind it, and transfers between your own sources now match on the real chain hash. You can also profile a counterparty once and have Coinfig recognise their future transactions automatically.

  • ZA
  • FIFO

Highlights

  • NFTs are their own transaction type

    NFT transactions display separately from fungible-token trades, and your portfolio groups them by collection. A collection where only some tokens carry a price shows how many are unpriced, and the money columns on that row cover the priced tokens only. NFT legs that can never be priced no longer sit unresolved indefinitely.

  • See what is driving your Data Completeness Score

    A score-drivers view breaks your Data Completeness Score down into the factors behind it, with links straight to the transactions involved. While a recompute runs, the score shows a recalculating state instead of a stale number.

  • Transfers matched on the real chain hash

    Transfers between your own sources are now matched on the actual on-chain transaction hash rather than an internal fingerprint, so genuine internal movements stop being flagged as missing history.

  • Counterparty profiles for repeat senders

    Name a sender once, list the addresses they pay from, and say what a receive from them is. Coinfig applies that treatment to matching incoming transactions from then on, and leaves any row you have edited yourself alone.

What shipped

Better handling for NFTs, a clearer view into your Data Completeness Score, more reliable transfer matching, and a way to teach Coinfig your recurring counterparties.

NFTs get their own treatment

NFT transactions no longer display as generic token trades. They appear as their own transaction type, and your portfolio groups them by collection. A collection where only some tokens carry a price reads as "N tokens (M unpriced)", and the money columns on that row sum the priced tokens only. On the pricing side, NFT legs that can never be priced no longer sit unresolved indefinitely.

See what is driving your score

The Data Completeness Score now comes with a score-drivers view that explains what is pulling your score up or down, with links straight to the specific transactions involved. Transfers between your own sources are matched on the real chain hash rather than an internal fingerprint, so genuine internal movements stop being counted as missing history. While a recompute runs, the score shows a recalculating state instead of a stale number.

Counterparty profiles

Name a sender once, list the addresses they pay from, and say what a receive from them is: income, a transfer, or something else. Coinfig applies that treatment to matching incoming transactions from then on. If you have already edited a row yourself, a counterparty profile will not overwrite it.

Also in this release

  • A security review closed several places across the app where a request could have reached data that was not the requester's, and every action now logs who performed it.
  • A sitewide maintenance banner can be switched on per environment, and the app raises its own banner automatically when health checks come back degraded for a sustained period. Banner text now reaches screen readers correctly.
  • Coinfig now warns you before you subscribe to a paid plan on an account with no transaction data yet, since every report on that account would come back empty. You can still go ahead if that is genuinely what you want. If a report fails to generate after a real purchase, Coinfig now tracks a refund automatically.
  • You are notified when a connected exchange rejects your API key, so you can fix it before sync quietly stops.
  • Accountants reviewing multiple clients now see each client's tax settings directly in the client list.