Internal Personal Transfers

Overview

When end-users transfer digital assets between accounts within your platform, the initial acquisition information from the transfer-out may not get linked to the transfer-in. As a result, gains and losses cannot be accurately calculated.

Digital Asset exchanges that have built out a system to connect and link accounts within their exchange can send this information to Taxbit to calculate and maintain accurate inventory values across internal-personal transfers.

📘

What is an Internal Personal Transfer?

An internal personal transfer involves moving assets from one account to another within the same platform, belonging to the same end-user. The desired outcome is to maintain the original lots, including cost basis, in the receiving account.

Creating Internal-Personal Transfers

To create an Internal Personal Transfer, you must establish a connection between a deposit transaction and its corresponding withdraw transaction using the counterparty_transaction_id while denoting that these transfers are subtype = internal-personal

❗️

Clients must identify and link matching transfer-in and transfer-out transactions for Internal Personal Transfers. TaxBit does not match these transactions or verify that they are involving the same person or entity.

If a transfer includes lots with User Provided Cost Basis, the internal-personal transfer will carry over the transfer lots from the withdraw transaction to the deposit transaction.

🚧

The subtype 'internal-personal' will take precedence over any user-provided-cost-basis lots for a deposit.

Validations

Data Ingestion

During a POST request, a deposit with subtype internal-personal must have a counterparty_transaction_id on the transaction.

Post-Ingestion Validations:

Taxbit will validate for the following after ingestion, with a report in the Taxbit Dashboard for any mismatches of internal personal withdraws and deposits.

  • counterparty_transaction_id must exist as a transaction
  • withdraw and deposit connected via counterparty_transaction_id quantity and asset type must match

Downstream Impact

  • GET Transaction Transfer Lots:
    • account_owner_edited is true if the cost basis was manually set on the deposit transfer transaction. This indicates that the user had altered the cost basis before the transfer
    • internally_transferred is true if the lot was internally transferred across accounts.