The following circuits are included:
anon.circom
: fungible tokens with anonymity, no encrypted secrets, no history maskinganon_enc.circom
: fungible tokens with anonymity and encrypted secrets, no history maskinganon_nullifier.circom
: fungible tokens with anonymity, no encrypted secrets, with history masking using nullifiersanon_enc_nullifier.circom
: fungible tokens with anonymity and encrypted secrets, with history masking using nullifiers
nf_anon.circom
: non-fungible tokens with anonymity, no encrypted secrets, no history maskingnf_anon_enc.circom
: (todo) non-fungible tokens with anonymity and encrypted secrets, no history maskingnf_anon_nullifier.circom
: non-fungible tokens with anonymity, no encrypted secrets, with history masking using nullifiersnf_anon_enc_nullifier.circom
: (todo) non-fungible tokens with anonymity and encrypted secrets, with history masking using nullifiers
check-nullifiers
: demonstrates nullifiers are securely bound to target commitments. This can be useful for a notary to validate that a proposed list of nullifiers are legitimate for the input UTXOs, which are sent to the notary for verification but not included in the transaction payload, in order to sign off on the transaction proposal.
The circuits make use of the circomlib
library, which must be installed with:
npm i
Tests for these circuits are provided in two programming languages: