<100 subscribers
Share Dialog
Share Dialog

This idea just popped into my head, so I’m trying to get it all down before I forget. My web3 dev skills are sorely inadequate for building such a project, so I’m leaving this as an open call to any web3 developer who wants to take it up and attempt to build it before Christmas.
I will gladly be the first participant to join in.
zkSanta is a smart contract which opens 1 month before Christmas.
Anyone can deposit an NFT into the contract using depositPresent() until 25/12 @ 00:00 UTC.
After 25/12 00:00 UTC, all addresses which have deposited NFTs into the contract can call getPresent() which will transfer a random NFT from the contract into their wallet.
As per the traditional rules of Secret Santa, the random generator should not allow for the wallet to get back the same NFT which was deposited. Furthermore, the contract will need to hide the address from which this present originated (hence the zk bit).
I have no idea if this is even feasible, or if there are security exploits to watch out for.
I just want to play zkSanta.
Bonus points if you can make the contract automated every year. Also, if it could be deployed as a factory contract for communities to organize private zkSanta events.

This idea just popped into my head, so I’m trying to get it all down before I forget. My web3 dev skills are sorely inadequate for building such a project, so I’m leaving this as an open call to any web3 developer who wants to take it up and attempt to build it before Christmas.
I will gladly be the first participant to join in.
zkSanta is a smart contract which opens 1 month before Christmas.
Anyone can deposit an NFT into the contract using depositPresent() until 25/12 @ 00:00 UTC.
After 25/12 00:00 UTC, all addresses which have deposited NFTs into the contract can call getPresent() which will transfer a random NFT from the contract into their wallet.
As per the traditional rules of Secret Santa, the random generator should not allow for the wallet to get back the same NFT which was deposited. Furthermore, the contract will need to hide the address from which this present originated (hence the zk bit).
I have no idea if this is even feasible, or if there are security exploits to watch out for.
I just want to play zkSanta.
Bonus points if you can make the contract automated every year. Also, if it could be deployed as a factory contract for communities to organize private zkSanta events.
No comments yet