Just in case it helps anyone... If you're prepared to build the application from source code, there's a simple way to add currencies. The official workarounds don’t meet my needs. I mine, exchange and transfer crypto currencies frequently. Being able to properly and easily account for that is important to me. With the method below you can even create expense accounts denominated in a cryptocurrency which comes in handy for transaction fees.
## Disclaimer ##
I'm not a GnuCash developer and I don't recommend using this hack if you are using GnuCash for anything other than your own personal information. If you wish to use this method for tax purposes or creating reports for clients, do so at your own risk.
All you need to do is add to this file before compiling:
1. Although it is not correct, namespace must be ISO4217 for it to appear in the currencies list.
2. If you want to go beyond 6 decimal places, please test thoroughly. I chose not to risk it.
3. Don’t expect to be able to use the live prices feature.
I thought that I’d be locked into using my customised build once I did this, but it seems that may not be true. The file/database containing accounts defined in the non-standard currencies seems to work just fine in the standard version of GnuCash. This would suggest that the predefined currencies are only used as a template when creating a new account. It also suggests that building from source code may not even be necessary and the same result could be achieved by manually editing the database instead.
Just in case it helps anyone... If you're prepared to build the application from source code, there's a simple way to add currencies. The official workarounds don’t meet my needs. I mine, exchange and transfer crypto currencies frequently. Being able to properly and easily account for that is important to me. With the method below you can even create expense accounts denominated in a cryptocurrency which comes in handy for transaction fees.
## Disclaimer ##
I'm not a GnuCash developer and I don't recommend using this hack if you are using GnuCash for anything other than your own personal information. If you wish to use this method for tax purposes or creating reports for clients, do so at your own risk.
All you need to do is add to this file before compiling:
libgnucash/engine/iso-4217-currencies.xml
e.g.
<currency
isocode="ETH"
fullname="Ethereum"
unitname=""
partname=""
namespace="ISO4217"
exchange-code="nil"
parts-per-unit=""
smallest-fraction="1000000"
local-symbol="ETH"
/>
A few things to note:
1. Although it is not correct, namespace must be ISO4217 for it to appear in the currencies list.
2. If you want to go beyond 6 decimal places, please test thoroughly. I chose not to risk it.
3. Don’t expect to be able to use the live prices feature.
I thought that I’d be locked into using my customised build once I did this, but it seems that may not be true. The file/database containing accounts defined in the non-standard currencies seems to work just fine in the standard version of GnuCash. This would suggest that the predefined currencies are only used as a template when creating a new account. It also suggests that building from source code may not even be necessary and the same result could be achieved by manually editing the database instead.