Zero-Knowledge Treasury on Top of ERGO

Dear Ergo Community,

With the feedback from the community, I have changed the app name to “Zero-Knowledge Treasury” and will continue to update its status here from now on.
If you are new to the topic, please see this post first.

I am happy to inform you that ZK Treasury now supports tokens in addition to ERG!

So now teams can have different assets and spend them collectively with on-chain privacy being preserved.

I also would like to remind you that ZK Treasury is not just for proposing ideas and asking for funds! It has the potential to be used in all cases where a group of people needs to spend their assets collectively with their privacy being preserved.
For example, hopefully, with the integration of stable coins, it is possible for organizations to define their treasuries (USD for example) on top of Ergo with ZK Treasury and spend them collectively.

Here is an example of 4-out-of-6 threshold signature transaction spending d01b… token which is generated by ZK Treasury client app.

Ideas and comments are very much welcomed!


Great work, this is looking great so far.

I haven’t had time to look into the design fully, but would it be possible to use this with a light wallet like Yoroi eventually once we have the web dApp bridge implemented? I’d guess you’d still need someone hosting a node (and maybe an explorer depending on what you are using in the backend?) for you? Does this use UTXO-set scans via node, or could we just use a publicly accessible explorer instance for finding all relevant boxes, and then use a light wallet like Yoroi + web dApp bridge to do the signing/posting of the required txs?


Thanks for the kind words!
The client app basically uses node just to sign transactions and extract hints from proofs. So looking at the dApp eip I suppose the initial version won’t support signing transactions with external hints or extracting hints from proofs. But down the road with adding these two features it will be very much possible and easy to use Yoroi for collective signing.

However, currently the client app is designed to support external secret. So if one wishes to use any wallet other than node’s and use ZK Treasury to sign collectively, she can do so by providing external secret to the client.


I’ve set a ZK Treasury up, so @anon_real let’s do some joint testing micro-spendings!

@DarkSideOfBrrrrr is you’re still serious about doing a fund, please join after the tests!


Sure man, I’m in. If price spike will continue I may put less Ergs into the testing fund though.


@kushti I would like to help you guys anyway i can!! I’m studying and trying to learn python now but I can help fund and i"m almost done with building a server that you guys can use? Any way i can help please let me know… Thanks


Made joint test transaction with @anon_real, funds were protected with 3-out-of-5 quorum:


I have updated the ZK Treasury according to the new API explained here by @kushti.

As kushti has explained, the previous implementation had some problems with complex statements which is resolved in the improved version.

Here is a joint spending created by ZK Treasury client apps:

Funds were protected by the following statement:
3-of-(A, B, C, D, E) && 1-of-(B, F)


Alright so the server is up again, currently, it is private, I think address will be given to EF members, @anon_real and maybe some other notable community members.

@DarkSideOfBrrrrr are you in ?


Absolutely, man!

I think put 2K Ergs into a fund for new privacy-enhancing schemes and applications, also, promotion of existing applications. Just testing alpha fund.

Then I think to do another fund about DAOs, I am not 100% sure about that though.


Awesome! Can you reach me over Discord or TG? I will give you access