Audit status: Closed

Last updated: 12 December 2024

Jump to Audit instructions.

What is an audit?

Audit is the process of resetting the circulating supply of Haven’s assets, XHV, xUSD, xBTC, etc., by recounting the coins of each asset.

This is achieved by performing a transfer of funds during the audit period. Users and exchanges will be responsible for having their own assets audited within a given time frame.

Any funds that have not been transferred (counted) during this period will be invalidated and they will no longer be transferable or be part of the circulating supply.

Why audit?

After the 10 million xUSD burn (28 August 2024), it became clear that the reported circulating supply of xUSD was not accurate and it was believed to be out by quite a margin. This led to a community vote and decision to conduct an audit of all the assets in Haven’s ecosystem.

Knowing the exact circulating supply is essential for a proper functioning protocol, not to mention the trust that comes with knowing the real supply of all assets.

The Slippage formulae are using the circulating supplies of all the assets to work out pool sizes/ratios and market cap ratios in order to derive the Slippage percentage during conversions.

When will the audit start?

The audit started on the 19th Nov 2024 at around 1pm UTC, at block 1752270.

The GUI (Web and Desktop apps) are also being worked on, and they need to be ready soon.

How long will the audit last?

The audit will be open for roughly 44 days, ending on the 2nd Jan 2025 at around 12pm UTC, at block 1783950.

The circulating supply can only be finalised once the audit has closed. After that the Haven team will have to assess the results and decide on next steps.

What happens to my funds if I don’t audit them in time?

Unfortunately if you don’t audit your funds during the audit period, any unaudited funds will be forever disabled and they will no longer be usable or be part of the circulating supply.

We are going to notify users and exchanges on a regular basis throughout the audit period to ensure no one misses out, and we are going to communicate this through all available social media platforms.

Can I leave my funds on exchanges during the audit?

Yes. Like everyone else, exchanges will also have to audit the funds.

However, we recommend that users move their funds to their own private vaults and do the audit themselves in order to maximise control over their own assets and avoid any potential issues or delays on exchanges during this time.

Will conversions work during the audit?

No. Conversions will be disabled throughout the entire audit period to ensure auditing runs smoothly and without interference from conversions.

The transfer burn function, which was recently added, will also be disabled during the audit period.

When I log into my vault, will I know if my funds need to be audited?

Yes. When you log into your vault during the audit period using either the CLI or the GUI apps, you will get a warning message if you have any unaudited funds.

Please refer to the instructions below to see how this works.

Could coins somehow be double counted?

No, that’s not possible. Outputs before the Audit hard fork block height are considered old and those after the hard fork block height are considered new.

Only old outputs can be audited and counted. Once they have been transferred, new outputs will be generated, which will not be counted if they are transferred again.

What about mined coins?

Mined coins before the hard fork block height are considered old and therefore have to be audited in the same way as any other coin.

Mined coins after the hard fork block height are considered new and they will not have to be audited.

How will my privacy be affected during the audit?

During the audit period, unaudited amounts being transferred will be made visible, similar to how conversions work. It’s the only way to count and validate the supply of our assets.

All other parts of the audit transaction will remain anonymous, including the sender/address.

A transfer of audited funds will remain completely anonymous, like it is now.


Audit instructions

Below are instructions for auditing your funds.

Jump to CLI instructions.

Web and Desktop instructions

IMPORTANT: Before you start with the Audit, please download the latest version of the app (4.2.0 and above) and make sure that you have fully synced the wallet you want to audit.

After your wallet is synced and if you have unaudited funds, the main page in your Web or Desktop vault will display the following warning message:

To Audit your funds, click on the “Audit” option in the LEFT pane of your window (highlighted in the image below), which will display the Audit page on the RIGHT pane.

On the RIGHT pane in the above image, you will be shown a table of all Unaudited Assets.

NOTE 1: The amounts listed for each asset are currently displayed in Haven’s 12 Atomic Units, and in order to work out the monetary values of those amounts, apply the following calculation:
Monetary Value = Atomic Value / (10 ^ 12)

NOTE 2: The warning message in the above example, “Some outputs are locked and cannot be audited.”, means that a recent transaction you have submitted in your vault is still locked. This usually gets unlocked after 10 blocks. To read more about how transactions work, please refer to this page.

When ready, click on the Audit Funds button. After a short while, you will be presented with a Confirmation window, which you have to agree to, then click the Confirm button.

After you have confirmed the audit transaction, the Audit page section will change and display a list of Audited Assets and Pending Balances, as shown below.

After the audit, there may still be a list of unaudited funds listed in the Unaudited Assets section as shown in the above example. This can happen when the amounts for certain outputs are too small to be audited. These amounts are referred to as “dust” and cannot be audited.

In the above example, the amount of XBTC that wasn’t audited is 7629935 (atomic value), which equates to 0.000007629935 in monetary value, which in today’s price for BTC is the equivaltent of (7629935 / (10^12)) * $97,000 = $0.74.

All the assets and their values that have been audited will be listed in the Audited Assets table.

The Pending Balances table lists any recently submitted assets that are yet to be confirmed and completed.

To view your “pending” or “confirmed” transactions submitted for audit, click on the Assets option on the LEFT pane. Under the Available Assets in the RIGHT pane, click on each asset type to view the transaction history.

Below are two examples showing the transaction history for XHV and XUSD, with their pending transactions:

In the above example, “Pending…” means that the transaction has been submitted to the daemon, but has not yet been “confirmed”. This may take a few minutes, depending on how long it takes to mine the next block.
If the “pending” information doesn’t change after a few mintues, click into a different area of your vault, then go back to the History section. If it still doesn’t update, log out and log back in to refresh the History page.

Once confirmed, your audited funds will be locked for 1440 blocks, ~2 days.

After 10 blocks (~20 minutes), your funds will show as “Completed”, however, these will still be locked.
This is due to a display bug in the GUI.

If you have any locked funds, these will be visible under Show Pending Balances.

Click on the Show Pending Balances to expand this section and reveal the locked and unlocked amounts of your asset.

After roughly 2 days (1440 blocks), all your audited funds will be unlocked and you may use them again to transact with as before.


CLI instructions

IMPORTANT: Before you start with the Audit, please download the latest version of the CLI (4.2.0 and above) and make sure that you have fully synced the wallet you want to audit.

These instructions assume that you know how to use the CLI and how to log into your wallet.

If you don’t know how to use the CLI, please go to the Knowledge Base and search for “CLI”.
Alternatively, you can follow these step-by-step instructions for using the CLI and creating or logging into an existing vault.

After you log into your vault during the audit period, you may see the following warning message:

The above warning is telling you that you have unaudited funds in your wallet. At this point you should audit your funds to ensure you don’t lose them.

There are two available commands: audit and audit_subaddress

AUDIT command

The audit command will find all unaudited funds (outputs) across all assets and transfer them to a given address.

To initiate the audit, type:
audit address
where “address” is any valid Haven address.

Here’s what it looks like once you initiate the command.

The above screenshot shows that the audit command found unaudited funds in 5 separate assets and created a separate transaction for each asset by issuing just a single command.
This is not possible using the conventional transfer or sweep commands.

NOTE 1: You may get a warning about anonymity if some outputs are close together. This is a generic warning that applies to any transaction and is nothing to be concerned about.

NOTE 2: If you have funds in sub addresses, they will be removed and sent to the address you specify in the command.

AUDIT_SUBADDRESS command

The audit_subaddress command is very similar to the audit command, however, funds will be transferred to the originating address (primary or subaddress).
The usage of this command is primarily intended for exchanges, who keep users’ funds linked to subaddresses.

To initiate the audit, type:
audit_subaddress

There is no need to specify an address since the command will transfer the funds to the same primary or sub addresses the initial outputs belonged to.

Important notes
  • The “audit” commands will ignore “dust”. These low value outputs are too small to be processed.
  • A regular “transfer” or “sweep” command will also audit the funds, but users would have to perform these transfers separately for each asset in a given wallet.
  • If a wallet contains mixed old and new outputs, the only way to use the “transfer” or “sweep” commands is by “freezing” new outputs first, then doing a transfer.
    See below for additional commands.
  • Unlike the “audit” commands, a regular “sweep” command will also audit any “dust” found in the wallet.
  • Audit transactions will have a 2-day lock time (1440 blocks), irrespective of which transfer command you use to audit your funds.
  • Sending unaudited funds to and from an exchange during the audit period will also audit the coins.
    We do not recommend sending unaudited funds to an exchange due to the 2-day lock time.
Additional Commands

The following commands are only useful during the audit period and shouldn’t be used post audit as they could cause wallet errors.

  • freeze_all_old
    Freeze all unspent outputs from before the audit start, so that they will not be used in any transfers.
  • freeze_all_new
    Freeze all unspent outputs from after the audit start, so that they will not be used in any transfers.
  • thaw_all_old
    Thaw all unspent outputs from before the audit start, so that they may be used again.
  • thaw_all_new
    Thaw all unspent outputs from after the audit start, so that they may be used again.
en_GBEnglish (UK)