If you are able to donate and contribute to the Haven project, please click here. Thank you.
Audit status: Audit is now open and will close on the 2nd January 2025.
Last updated: 19 November 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.
Web and Desktop instructions
Currently in development. TBC.
CLI instructions
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.