gnark
gnark is a fast zk-SNARK library that offers a high-level API to design circuits. The library is open source and developed under the Apache 2.0 license
File Explorer
- CHANGELOG.tpl.md
- config.yml
- bug_report.md
- feature_request.md
- pr.yml
- push.yml
- security-code-scanner.yml
- slack-notifications.yml
- dependabot.yml
- pull_request_template.md
- downloads.gotpl
- package.gotpl
- .create-new-release.sh
- 2022-10 - Kudelski - gnark-crypto.pdf
- 2024-05 - Sigma Prime - kzg.pdf
- 2024-05 - zksecurity - gnark std.pdf
- 2024-09 - Least Authority - arithm and GKR.pdf
- 2024-11 - Least Authority - Linea zkEVM.pdf
- doc.go
- icicle.go
- provingkey.go
- doc.go
- icicle.go
- provingkey.go
- doc.go
- icicle.go
- provingkey.go
- doc.go
- icicle.go
- provingkey.go
- groth16_all.go
- groth16_icicle.go
- groth16_noicicle.go
- marshal_test.go
- groth16.icicle.doc.go.tmpl
- groth16.icicle.go.tmpl
- groth16.icicle.provingkey.go.tmpl
- main.go
- doc.go
- opts.go
- lagrange.go
- marshal.go
- phase1.go
- phase2.go
- setup.go
- setup_test.go
- commitment_test.go
- marshal.go
- marshal_test.go
- prove.go
- setup.go
- verify.go
- lagrange.go
- marshal.go
- phase1.go
- phase2.go
- setup.go
- setup_test.go
- commitment_test.go
- marshal.go
- marshal_test.go
- prove.go
- setup.go
- solidity.go
- verify.go
- lagrange.go
- marshal.go
- phase1.go
- phase2.go
- setup.go
- setup_test.go
- commitment_test.go
- marshal.go
- marshal_test.go
- prove.go
- setup.go
- solidity.go
- utils_test.go
- verify.go
- lagrange.go
- marshal.go
- phase1.go
- phase2.go
- setup.go
- setup_test.go
- commitment_test.go
- marshal.go
- marshal_test.go
- prove.go
- setup.go
- verify.go
- test_utils.go
- utils.go
- bellman_test.go
- groth16.go
- groth16_test.go
- marshal.go
- marshal_test.go
- prove.go
- setup.go
- verify.go
- marshal.go
- marshal_test.go
- prove.go
- setup.go
- solidity.go
- verify.go
- marshal.go
- marshal_test.go
- prove.go
- setup.go
- solidity.go
- unmarshal.go
- verify.go
- marshal.go
- marshal_test.go
- prove.go
- setup.go
- verify.go
- utils.go
- setup.go
- plonk.go
- plonk_test.go
- alloptions_groth16_bls12381_commit.sol
- alloptions_groth16_bls12381_nocommit.sol
- alloptions_groth16_bn254_commit.sol
- alloptions_groth16_bn254_nocommit.sol
- alloptions_plonk_bls12381_commit.sol
- alloptions_plonk_bls12381_nocommit.sol
- alloptions_plonk_bn254_commit.sol
- alloptions_plonk_bn254_nocommit.sol
- blank_groth16_bls12381_commit.sol
- blank_groth16_bls12381_commit.vk
- blank_groth16_bls12381_nocommit.sol
- blank_groth16_bls12381_nocommit.vk
- blank_groth16_bn254_commit.sol
- blank_groth16_bn254_commit.vk
- blank_groth16_bn254_nocommit.sol
- blank_groth16_bn254_nocommit.vk
- blank_plonk_bls12381_commit.sol
- blank_plonk_bls12381_commit.vk
- blank_plonk_bls12381_nocommit.sol
- blank_plonk_bls12381_nocommit.vk
- blank_plonk_bn254_commit.sol
- blank_plonk_bn254_commit.vk
- blank_plonk_bn254_nocommit.sol
- blank_plonk_bn254_nocommit.vk
- options_test.go
- solidity.go
- solidity_test.go
- verifyingkey.go
- vector.go
- witness.go
- witness_test.go
- backend.go
- coeff.go
- marshal.go
- r1cs_test.go
- solver.go
- system.go
- coeff.go
- marshal.go
- r1cs_test.go
- solver.go
- solver_ecmul_benchmark_test.go
- system.go
- coeff.go
- marshal.go
- r1cs_test.go
- solver.go
- system.go
- coeff.go
- marshal.go
- r1cs_test.go
- solver.go
- system.go
- coeff.go
- marshal.go
- r1cs_test.go
- solver.go
- system.go
- coeff.go
- marshal.go
- solver.go
- system.go
- coeff.go
- marshal.go
- r1cs_test.go
- solver.go
- system.go
- registry.go
- hint.go
- hint_registry.go
- hint_test.go
- options.go
- coeff.go
- marshal.go
- r1cs_test.go
- solver.go
- system.go
- blueprint.go
- blueprint_batch_inverse.go
- blueprint_hint.go
- blueprint_logderivlookup.go
- blueprint_r1cs.go
- blueprint_scs.go
- commitment.go
- core.go
- debug_info.go
- doc.go
- field.go
- field_test.go
- gkr.go
- hint.go
- instruction_tree.go
- level_builder_test.go
- linear_expression.go
- log.go
- marshal.go
- r1cs.go
- r1cs_sparse.go
- r1cs_sparse_test.go
- r1cs_test.go
- string_utils.go
- system.go
- term.go
- debug.go
- debug_set.go
- debug_unset.go
- symbol_table.go
- CITATION.bib
- KNOWN_USERS.md
- accelerated_gpu_example_test.go
- doc.go
- cubic.go
- cubic_test.go
- emulated.go
- emulated_test.go
- exponentiate.go
- exponentiate_test.go
- doc.go
- inputpacking_test.go
- mimc.go
- mimc_test.go
- main.go
- doc.go
- print_constraints_r1cs_test.go
- print_constraints_scs_test.go
- doc.go
- pubkeyhashing_test.go
- account.go
- account_test.go
- circuit.go
- circuit_test.go
- error.go
- operator.go
- rollup_test.go
- transfer.go
- main.go
- doc.go
- sudoku_example_test.go
- doc.go
- witness_test.go
- doc.go
- api.go
- api_assertions.go
- builder.go
- heap.go
- r1cs_test.go
- api.go
- api_assertions.go
- api_test.go
- builder.go
- coeff_table.go
- commitment.go
- linear_expression.go
- term.go
- LICENSE
- reflectwalk.go
- field.go
- leaf.go
- schema.go
- schema_test.go
- tags.go
- tags_test.go
- walk.go
- api.go
- builder.go
- circuit.go
- compile.go
- variable.go
- witness.go
- add.go
- and.go
- assertequal.go
- assertisdifferent.go
- boolean.go
- circuits.go
- cmp.go
- commit.go
- crumb.go
- determinism.go
- div.go
- exp.go
- frombinary.go
- gkr.go
- hint.go
- inv.go
- iszero.go
- lookup2.go
- mul.go
- neg.go
- nocomputation.go
- or.go
- orxorandmul.go
- range.go
- reference_small.go
- select.go
- sub.go
- xor.go
- 01896cf457f9724711cdb5c47ae61e871610cc20925e4162dc512a99b16885f0
- 03bb2fe837460a2653f67a14e1a8934d756174eeae4bdc8e0f0f900af7048586
- 03e05f2853ad338dcc021f05b8959b1f3633c8a1c27ccac74e768325649977be
- 040184a38a688233199662fb82e804832282bdcd652e915e40fd2b32d6b6d0f2
- 04d40af2f46a8834635bf775c66737abe55c2c04a7e9ddd0879c71152cb98439
- 06b5c2a93cba6f3652d6fac41dfc931ebb3d87736da993abfdc1a41eb20fec6a
- 06f200f8d192caa2b678a814f20c3cc8893e6a7e8f4dd07222010d6a7aae2e65
- 0743de4e382b7129ba4b7ecc4020ec1509bb982ff8e7430afb80c9c133c1b710
- 0a54ba0ff9c0ba72fd9818542d3ecd8f95799115cd8c3cab0581e2a4cf5b2dcd
- 0dccde4bc82daae20d393545ffad47d83eaf15d05eb2e1e1db0a62e6e58dbd3e
- 0f37e88df19ea0f14b79930142fc1610b9e16b5965452b9c00151ca1f7a7ffbd
- 0f759b3cf4743f1f98ce073fc729a891d341268b5b793dde85a8248732f9cb8b
- 11eae8bbca55890f60a48462080e852e9c0805554c9a1df6c980c83e5bc29394
- 1264dffe19eef294b54757da360097ceac5138928762aec415ec72a20c66493b
- 15a615d72b6713bf31b3214fba0757d790a1bfd7031ae06da29883b14275e642
- 17ebe62c07041b8afc5d6dc342232f5f2c2aa9124f43cd77c986d489f4f6e44f
- 182f13ba3708f00b582d22682636dd4e23bbc79b7138ba54e30144d2b9434f30
- 1841b2d806001b28e33185ea1d5d146fc3798b9a7410e1394299a7b4a906d8f2
- 1b189fbdeeee763e1d6db02573bd3d5493347c8c688372f99c4fc15c8123f8e1
- 1d1db76969aa6b9bc9b45350df54493a2e1aa3899abcb9bc7fbae7230f255d9c
- 1f8142cb86201e784296e609d50fc5c9f0a1fb29c44b78635e19fcd713f0f5bf
- 1fb9284c980c107c8e16ea48224ee4c8f4ffe0711e2514ad0d45f6c508170daf
- 1fda811be9b4272c73cf8736e7e6f5505db1224173e43febd611cf30003fc9fe
- 2035d1b3cadc0a5596433ed44b3c6bc1cd07cfaf04f5c98bc9ae6ecfdb900c7c
- 219984e9862215ae1201a956a0df1d895d902713f88fdb3a9411c86d323a36a6
- 2298a37be59b01d79820e212552083a82e7bcbad939268ecdb0c8807cb0e348a
- 236ded8bd24706a579142f29876380e8ff0c1250a91efbb43091816a45790e1b
- 242966146c68786e67af22bfab1b70bbf9f02741f5aaa87b727416f828ae6b5c
- 25f268f490619cebc743282801317a3fd231eb8e05a6da378a75dd445623fd20
- 262872f4d7b5ec0664735b1362ca4def7ff2732fe08922b5a4ca9f16b72aeb9c
- 267872f9b5643be9510013988829251f3edc6cd36e6820ee10d1008bc17f1cf5
- 273cb600b5b7e749e3ce4e74f78da55a7ea0c27b78f4d5545c6887211566d929
- 274f3577c704fa2b61482836a07c54d1712409f19b04ad2f26f658109dea0669
- 29a9a48f8e2ec78701500df80ec11ab88a32abc7c07b8145f8293b98add270fc
- 2a2538e5996f9645054974c27f905d8b1e1abdd35ee68c01417f553d39a9735b
- 2cb86af64ca4048046391b7f6bdf8cd4eedf01ba0cbda6a7dbde27ed27ffd047
- 2d9b1cacdb0e4ea23c87bbc326432c59cc50080b13ca789635d2a4c5fa43e4f5
- 2ead7f17b415a7e441c87bad3097e1d08ace997fd108bab7b6c62efbc709beef
- 2eeb9630e1c449e52778f3f64973a6ab84cfd08c3773baaf8267eb9fc530cc36
- 306e4d4fe00303c2e525d56b499dfcbff11eb6fcb74af0a0d2cb0695f17e1095
- 316025409c03a2ed6e949595c4ad003aa36b572e8f525adf21b196fe2eb7aa18
- 31fb64df0b611ffa55444e0402d14ea97ea23997d7f49d70042152f4287be7aa
- 32d07219b2dd59df0b5738ec6add08a69aaa41304cb5a5a8c18154025b5e27e3
- 32ea7d586aaea071fe90992483cbc86267d1a7fd41423fb1ec4d562c31640056
- 34cf9e379dc9bbcec3a751c30546f2c6529bc33238b4bc0b1b266967010425ac
- 35b31fe53d024fe80243715c80198de7d913a8a8ee57f9b293e93d8ec939469a
- 35ea1a1561be122855a1f2c8e30650b516268d97c8ca73a88b2864d169290f5f
- 3632ac227a4abfbbd12c014921094345bb9f25ea3f9cfe6d6c1d22f0b5dc3322
- 38ff44e319173b519e009c2a1c10695f6dfe90b04f6a3d18fc0757938b1f69e6
- 3946302f44a01dda1619298bcd6eb30d2ba2b92db68890278881b49e575512e1
- 398e997a9685e075111a4ee4050d49ab6311bb5c58a68e99a0ceae29c83b27f9
- 3a7de8da69cbf9a37984e59a388ba31e4f74c69269482c1cd8255c14b072e32b
- 3b1bcbc7689ef4f2b9122e973ce61920a4f1acad5b81debfd553031fb3807bd1
- 3cf1518d63d72249c911f737f9f9986c8dfd6630f8e78ebadaf6716c443eb76c
- 3eb3f3322dbf70e84306fbd82cf262e92520ffe1853966b3d314832c866dc596
- 40cb27c14ed62167653bcee1da5798acb8a60cb9d03141901c3533c90b6c7813
- 41e393287b187d0ee6d5dcf76377808b702619951166305312894fd5d0dd972b
- 42664785c395864106a38493ed7a48784a868f592a470d2a8dc853f5b5d038ab
- 42bfbcfc5da37a55652f91ec40213d40eac8e64a9f13be5ab8bdfab23b2b3cb4
- 4356640acfa5b355159f3d4d169a9c8a2c6e692e6b8407605e81efe47c8af9bd
- 4451635b85976801e58215e9a59ab8f89fd7b63fe3b97b4167c3710887bc88df
- 45099762592cd94c178c63cace13ff3826c8fff69852df2c354ac0a144c6c317
- 469238d27e063dfeff57d0dff00d520a46d5dbe3b784e8c8fd371961555138f4
- 47d9917861ffd1eb170534ef258216673b22c8df59488a242b351339cf01aca7
- 4898c542e9e1d8779b9b7d28e4f42e94cfdb48f3e5f7f9583da1f08b2f56a90c
- 48e1bbb44a20a824ed90c150d0d6c60d8279d37a711284672c7870b237eeb151
- 48eb5ee27cb53a6eb3bbb0f5a66ff41a644a19f8e45a54a76c0733610c73ef8e
- 49abf3e72e013d8a1aeb37661d01da5c17207f054f0a2d1168a9aa7910874ec9
- 4c0d222e98944a9019a9a9ceb08c36656d6f6d1410d0c67e5f0e59e55e8e1ff1
- 4c39a145dd121722b1f056e2583ce545483da0e946b68d0114ba5f916cfef183
- 4c7f2d7633bd5dd51cf32f5cfc66406fde5a5385014b2d12406d229679edc342
- 4ca1a9d57081092cbe1c39e4df036383db9595f7373103a743dbb3552175663c
- 502a8c27a532105a179e145f09a5c392dfdfd3ccd3d55db6894d15dea9e2c63f
- 50cf26206a48b7fbfd581dd577fe3af7206043d4a6467f8cd2abebfa9052aa27
- 52584dbab125cae916ee4ae8f7e224547a6a12a0b187827c48f4c00cbe7d3d44
- 52d361eb35e0f22d170bd1e3a2463ca339cc803d9140b903a977d1e420d96089
- 55ae53865eb1c823cb93a0775f3157bf20ca54c855e66116a882f2953dcc5f0c
- 56009852a6a8482649ba610761a94cd11ee8e8b332064918ff4b0d27fb5f7c01
- 584e6f17a5183b6a28e859c55cd0317e2bb649101a97cb2db4595bbf0a746fa9
- 586cde06faacf9b81fa48bbf9e794aaa718e47085b5fae7e18f05657b916e63a
- 594233b71f75c52745d01adf57fd25d1a64b5982c84b321bac1a867020c93b86
- 5ab108eee10326056db1a48cdb67e47be8cebe1dddf7ed300cdbba278ab6d142
- 5d2185a73a4a4e7d4bf7d57060fed3c6df107aa6a9a20d35937a9df1a28f65f0
- 6246924afc4cd9f7f33389867e021b09db2e6d5cc494f8298aa41dc84321526e
- 6436cc634360a4b0d6a3f9ebb8650f93ea12b5f926b860c2317e1adb95dc0f2a
- 6738732a3862592748541da8b3f075430dc8490990a844b1f9eec5cab847036a
- 676205b763060464fbd88a1fc6ffafea414bd90190b821be6d8b663c693d9c74
- 6871795467747c91cd1b465ccf3da6e5606072103fdd1feb7308b279d00f23eb
- 6aec02b99c8a04ad39cb0f5f19df4e2300603caf4d21cba5e1a332f68f04b1a8
- 6ba2b1956371eeb6f6a98b86d72613c07957e455af0bd8005763a5c3b002ee37
- 6d7d7ee8d4c9097ec44479c1913a303f2773647c46894bd6cc6845d7b4bb5f4e
- 6dc7452270ae1b4984509e9751b1442ee4b95f7c9c6fb4cac8e696762dcb1b6f
- 6dde32092120c6d483ee107cac688dbe9de4f6df772175dcd76bf10b0e7f0c37
- 6fec2cef22d6d7c0debc6380e64c7e2b57220f7f592ca46ec95effe246db366a
- 7044f1c80bb537d6461c9acc26ab1e3bf1d923e31776a2b9f88294a73ed443de
- 70fb792a213b6c538db5d4facd77478cb31fdc876c02694ab3bef50710e5c63e
- 735df2021bcdf81df35f5af051450806733faa1ddfe21513b0e9338e7c4d7ca6
- 73c8044c8d2447fe79e11122fc2634c4aa7be4430384886c701a392a2fd62c0d
- 74835f93ba79ff704fb61dc6a4c14f8ce68d51ee3efb9172eef358bbd58c7610
- 781b59668a952c6ecd073308d82c26b5d476b51c2f10c1467dae6caec993cd96
- 79302f8cd78f54acb5e360f45cb44a260fc21dac870528ab2a342ef85f8da186
- 7bc4e8151965ee7ce650797316ba49486a7c2ac4e9d032ebbb2417f40e9fda7b
- 7e6e3bcf0235fa5adc7831d74231279839f5ffade7037954b3bdc71829c5482a
- 80462184ed92523e56ab91e44409a03b8b14e3bd88455c7ac638a7385ccc1224
- 8252c9ee08c8aca728644ba40cd38ff45e02edad67c61e5c905837cdeb14cffc
- 82b5fe7fe265f963734aaf3edadf8ddce5b1dcab64155de1e3f3fb6a80286fd0
- 83de7d5430c5193ce2cfcbc68e6ac800e31f39feec13fba6697c016cfdee9570
- 8a38e3bcb4bb4b0b111ca1e774ca70afe3aee3181fb031e8d42af690377c0e1f
- 8b7584a841aa22959a387d21dad8ed95d9cde2a876be61a52135f72d117e357f
- 8ba4ec0907eae145d1fad9a6f4f2652368bc1ccfd76f0702cf7b212329b5befc
- 90b12c1c5ed4e171d09c7251244d6925f49a9819f082d86c0820a73104ab755e
- 919d9b4423d0593ce102265eee3cf6b05d9814fd350a855417a175c9d8350351
- 91a0e95093d3f67ede7c2c217424caa45e4db1b0086d8432d43bc50c4922d79b
- 92ca7994860c71ec5ab25e712b370bb9da0d71b9964882f093e9569d036e8fb1
- 940c7dac79fe3b9b3a44a023cf75258732cacb03a8af9237df355a7646527a0b
- 95375140cb4e7e3056cbc8c223337e635fc31c502fc5dd8d1f86b22ec5b69ba4
- 97cd477ec499b43ca3518ad99afbca87b7b4dc5ec5113145b9d8f1faf16681cd
- 98f318f3b1743b003c5f148608c812c9a0f09927e72544ea2112d1ddebd461c7
- 9998a69315a4db8a87f745d0a93af4bc0dcfdb6e9cb4cb28b8cb7b864a3c40e8
- 99f34f2659fb9032a634f2e9a9c88503ec5f360a24b00fe587ba4c625776496f
- 9ce68d5be174f1345a5c91eec53988443a907cb966f395fafed9b2b55f093c0a
- 9f0263ae39f59a6ed3d1ca95693ce4247f5fd5bb74fdebbd7d87cd6ca9b25123
- a1bdc0acbbd5c1594e7b3c38e0d8f4136167e73a608ee7de7b0833ff482ea7db
- a509b34cffc9d1d66766846efde4a0f4c00298e8ccf3e5bd72cc12ceceec2f91
- a6b35ad851d92120f205c532088cada16c0a593101783484029fa63ba21206ec
- a6cc0f8a9dd601053bb818271175ce458018e492d782a7804dab71586bcf3a17
- a6e3324a793840f6f86c1ca1390d80eb1004e4a4531481d466eda787183ec972
- aa37a94a35f25d87b610a0ab4892e12c80e3ea9cfac6e317b38e92bf8d6cce48
- ab0c83116b6f8770aa32503c9df43ea3daf00aef9cb04e0431dff8c6e0c9694a
- ab7deac1b8def32e16ef71f41f04f60d817c5c5c871736e2aed7ca5ad598c94d
- abb2fbeb477b6ee30db7ccc6668a8a541dba1954b8402c486ad35eb64b3985a3
- ac5f19ef3f005d86f8abce54ca6ec48519316aebf8f196d451b45407eecbf1e3
- ad5d950cd76699ee29a8b5cfff518737f8f91542fc2d10ee2313642ceb39d6e7
- b1ab4136844b2f987b671603ed7523c414fce8ae81475d8c3643d0bc7f4b4b38
- b373b8e0357e4b97e503ea9edb2adb9ae495033a9c0d68f0a2f3fcc2a365e800
- b412f8791d0ad75b4b94ebfcc3fc982adbfd9b857fc8e1e2ca798d734077daf1
- b6e1da0b13ab10de85a67fbde933445a42889b9d9ec39d7a6bfe617e168dc04b
- b7dbe68221c9c29f82bc79469c5ae26114f70e063ab4ef86f04fee8b5cb1027e
- b81bab9174b3eca77200d4bf2eb82571217275ac65cf539f9618da489e7a8ad3
- b847c8c96e4d24591ba23ecb559d693ed1cfe7d26e5d1e26e74e9eb727f72b9a
- b930d5b8f61bb456394dcac79f27b3431688cb3f0b5db2d7afff126e8b8d8df6
- bade6b4d0ed632738bd3c5e41f83cc1ae4857d7a0989d719ead13ebcd8ef9bca
- bd1bca6d883fb59bc3f610ac45658fdb7529ec57aaefba1578e04e7db5612430
- bde888172d6043fba46602dec78ded54dfa443cfea3e2520bfe8305269b5dc3b
- bfc387e3883e31928a2b459ae2fb0c2566e1639c1d9be1c8b20d48f401a72e1b
- c0bccc497b8d8583c658d755c723ef07d4c04e3b88ed06fb0f2cbd851d55a309
- c11be239e2d403dca0c9b61c474ed281292023ff3e8c3a4b4ca4f403cf8f0a65
- c18649778be24cc88ac1127ac5c5d78a6e5f5d39a49e99a807d31f2c89e0f7d4
- c50dacb6c027a906f4bc9312564a3b0aa7c6b0d54d518d5e22aa9f4e7cf1772c
- c6256196b0828b34d1ed62eb542f9f5be8437ff2d8027e83046d7421de2c5e12
- c6d91f4248454ea578204f04b3ca1ff4441e8b304f1fc0e91381e17dea7274d1
- c70bfef4bd6fec1dce0da687423e650e0a96912fb8a3cfdf8fa9fa37d7fb9658
- c85e42c17148356a15bc9d6fda4390c9b47c04cb28cba467b88b29a890b2b7d9
- c8a9e918d8a497ccd870f549c3be69bdbf01626116464fac8ee71e2d5ecea760
- c9f0eb1a6dd45c7f9915744550c17099bfa8e4ab96618a50991a5d67ffcefcdc
- cae994d6aaf565cde84766510a8a1a47bcd7bb20d00346b907789e21a512cd08
- caf7bfd6c5b122d91244bc7e0cdf4bec7b8bbdc2595a0fe4e0612270c320d1a1
- cbb93dfb4c821715ddd2b245568131ea32d4fbd596d60f9b4e690bed80bedfd6
- cc5d45c59f032906ecb8a3beb92b392f1be266063d015c01ab491bbe3534cb06
- cd0af3241753b71de89455b67bf2cfa2204914cb71aeb2d381c522d8c2558e2e
- cd2a2ba52cf0c49a017b450d2be908843a23fc1645adbb6fb9857d96b335b1b6
- cda65fa8d6204f2c306595d6ac8d67b340252bdb139fb9cf8d2ba2e419db8f70
- ce77e27941cdd821caf2ed65f5fe8f47e4b464f7204c34fa989fbb189b0a7a75
- ce8aae3b56780c58b42250ded4b4ede9bd73f0eebaab210b627585bbfb57e89f
- cf5f655d1033c02c438172768fa296f0d58afd61b7f3504e1e6aa25de735c260
- cf73880fc5b4f59c9ecb164f42d67d33b41f5db9dff09268e786287a47c9949c
- d35beb0221535458155c012553310cc0c93bffb0ef14faebebfe3a8c2ca6e35a
- d49935174de567379e5c46589b415736f1d79656fa3f87ebd975fc03ff7c8f85
- d6297a8f059f6b6a43a492083b9e74755949eb9cf45f567b5741cb7b1cbfa623
- d6704d4b5867d2d020c68419518a8fb5b6e20f26cf27a60e30e84c000d4f4cd3
- d6b63306ef64a077069ae1c13d1e469b6ac01f7dd5df7f93758c6ab36e3c4f75
- d8c2efa3ffa71157935a8aa32951bf89b19fbb9ff424e34aba0d1a3b0750584d
- d8e25c58e5a52759e6bf2c1e01e722be3742f440cdf5d9fb2080806179e9a231
- d99fa5161e31d3623389aab4923f4d26437bbf1f323b94820da58592666aa8d5
- e1f1652aa028a58c7c2d8bfe8cd591b18a21c54a03006d55736e356ba6ad83f3
- e22cb15f9d9b47914f58ff306d317bf3a3e9aea38761f832a29928a4174b04fb
- e33b4e93ebd44efffd1f8f0cd859df29474ff8391a42b58b88a01f3e7f580bfa
- e4f42afb92131940f86577887b39ca083e2e10b5766c2c599270703d72f723ff
- e86df09cb21d03c5ad1cb340c46aaae575df4abb7d02466a6a921a915b421599
- e965fc72c9ec9d083887a1d2c4187ea8b6e0278f8a9a6adac3ccb4173575f8e4
- ed9b3104368f52782b72601848530aed8e0589513d26236e02dc024c56be46e1
- ef87af580bbefc86565d44aabfc707d20a2f009684732d10817b34fa7614a8e0
- efa399b1e45f3fa417559f49f9735ed344c872efaf07b42be9391958d00ce2f8
- f05c4d1716307be32abd1364eb895e8dd4fb4cb7f37894e469505ddeb901b544
- f0de2cee4a42bca7821d2ac658e5a7b4e743037fa1d4ad1ed96c03cc3fc1451e
- f0e5e2a18ed68d2b1baf18298300423cc4554baa0158165d563a2562c2cea33f
- f1da3e9bc3f5e18d6930229d5a745cba5d2a1ab44a4bf4bc74a8ae02140d6e4b
- f379585b669fc50bdc8d8e838d73cecfcce5fa819b027689982fbdc009a09913
- f3e293f66e91d9eb40f6cf9c60fda084b2eb31481a9b975df1bf76bf7c70116c
- f6b97f0e28a6dde97f64dc5665e4728742a885950752a1c82ae8167653cf3537
- f80b9c343c891089fc8a29ed3f9fc738709ee24f60a137dbf8f42de76f318963
- f82d61948e338dd5eb07c070fe852dcb9c7493e5e9f8b2324f8734f3853f31c3
- f888c0d0df78f3ddc26d7c08500a6d55e8156fe03008c50e1e40443a63021754
- fa84d96e88dd025460f533d2ce737196a6b61282f34b860d2feeb00f6ddab471
- fbce49af78659e5ad8531a14e37643c390111e00de90871ae34bb0f1b66c6144
- fe85970e074824301421b145c2f4661914f25b3d08f87f73288a03968bbad09e
- intcomp.go
- intcomp_test.go
- wrappers.go
- defer.go
- compilelogger.go
- compilelogger_test.go
- frontendtype.go
- blueprint.go.tmpl
- gkr.go.tmpl
- gkr.test.go.tmpl
- gkr.test.vectors.gen.go.tmpl
- gkr.test.vectors.go.tmpl
- sumcheck.go.tmpl
- sumcheck.test.defs.go.tmpl
- sumcheck.test.go.tmpl
- sumcheck.test.vectors.gen.go.tmpl
- test_vector_utils.go.tmpl
- r1cs.go.tmpl
- coeff.go.tmpl
- marshal.go.tmpl
- solver.go.tmpl
- system.go.tmpl
- lagrange.go.tmpl
- marshal.go.tmpl
- phase1.go.tmpl
- phase2.go.tmpl
- setup.go.tmpl
- setup_test.go.tmpl
- groth16.commitment.go.tmpl
- groth16.marshal.go.tmpl
- groth16.marshal.go.tmpl
- groth16.prove.go.tmpl
- groth16.setup.go.tmpl
- groth16.verify.go.tmpl
- marshal.go.tmpl
- plonk.marshal.go.tmpl
- plonk.prove.go.tmpl
- plonk.setup.go.tmpl
- plonk.verify.go.tmpl
- plonk.prove.go.tmpl
- plonk.setup.go.tmpl
- plonk.verify.go.tmpl
- imports.go.tmpl
- main.go
- blueprint.go
- gkr.go
- gkr_test.go
- sumcheck.go
- sumcheck_test.go
- test_vector_utils_test.go
- blueprint.go
- gkr.go
- gkr_test.go
- sumcheck.go
- sumcheck_test.go
- test_vector_utils_test.go
- blueprint.go
- gkr.go
- gkr_test.go
- sumcheck.go
- sumcheck_test.go
- test_vector_utils_test.go
- blueprint.go
- gkr.go
- gkr_test.go
- sumcheck.go
- sumcheck_test.go
- test_vector_utils_test.go
- gate.go
- gate_test.go
- schedule.go
- schedule_test.go
- serialize.go
- types.go
- gkrtesting.go
- gkrtesting_test.go
- gkr.go
- sumcheck.go
- sumcheck_test.go
- sumcheck_test_vector_gen.go
- test_vector_gen.go
- test_vector_utils.go
- mimc_five_levels.json
- single_identity_gate.json
- single_input_two_identity_gates.json
- single_input_two_outs.json
- single_mimc_gate.json
- single_mul_gate.json
- two_identity_gates_composed_single_input.json
- two_inputs_select-input-3_gate.json
- gkr_poseidon2.scs
- gkr_poseidon2.wtns
- integration_test.go
- vectors.json
- generate.go
- mimc_five_levels_two_instances._json
- single_identity_gate_two_instances.json
- single_input_two_identity_gates_two_instances.json
- single_input_two_outs_two_instances.json
- single_mimc_gate_four_instances.json
- single_mimc_gate_two_instances.json
- single_mul_gate_two_instances.json
- two_identity_gates_composed_single_input_two_instances.json
- two_inputs_select-input-3_gate_two_instances.json
- gkr.go
- gkr_test.go
- sumcheck.go
- utils_test.go
- hints.go
- kvstore.go
- kvstore_test.go
- issue1045.r1cs
- issue1045.scs
- issue_1045_test.go
- issue1048_test.go
- issue_1227_test.go
- issue1246_test.go
- issue1787_test.go
- doc.go
- issue_836_test.go
- issue_897_test.go
- advisory_test.go
- doc.go
- multilin.go
- polynomial.go
- pool.go
- small-rational.go
- small_rational_test.go
- vector.go
- doc.go
- element.go
- element_purego.go
- element_test.go
- vector.go
- vector_purego.go
- vector_test.go
- circuits_test.go
- smallfield_assert.go
- main.go
- latest_stats.csv
- snippet.go
- stats.go
- stats_test.go
- test_utils.go
- algo_utils.go
- algo_utils_test.go
- convert.go
- convert_test.go
- field_to_curve.go
- heap.go
- parallelize.go
- search.go
- slices.go
- slices_test.go
- widecommitter.go
- bytes.go
- io.go
- roundtrip.go
- logger.go
- dotgraph.go
- graph.go
- measurement.go
- report.go
- operation_test.go
- profile.go
- profile_test.go
- profile_worker.go
- verify.go
- verify_test.go
- algopts.go
- doc.go
- e12.go
- e12_pairing.go
- e12_test.go
- e2.go
- e2_test.go
- hints.go
- doc.go
- e12.go
- e12_pairing.go
- e12_test.go
- e2.go
- e2_test.go
- hints.go
- doc.go
- e6.go
- e6_pairing.go
- e6_test.go
- hints.go
- doc.go
- doc_test.go
- fixedbase_g2.go
- g1.go
- g1_test.go
- g2.go
- g2_test.go
- hints.go
- map_to_g1.go
- map_to_g1_test.go
- map_to_g2.go
- map_to_g2_test.go
- marshal.go
- marshal_test.go
- pairing.go
- pairing_test.go
- precomputations.go
- cofactor_clearing_test.go
- doc.go
- doc_test.go
- fixedbase_g2.go
- fixedbase_g2_test.go
- g1.go
- g2.go
- g2_test.go
- hints.go
- pairing.go
- pairing_test.go
- precomputations.go
- cofactor_clearing_test.go
- doc.go
- doc_test.go
- g1.go
- g2.go
- g2_test.go
- hints.go
- pairing.go
- pairing_test.go
- precomputations.go
- doc.go
- hints.go
- maptocurve.go
- maptocurve_test.go
- doc.go
- doc_test.go
- fixedbase.go
- fixedbase_test.go
- hints.go
- joint_comb_count_test.go
- params.go
- params_compute.go
- point.go
- point_test.go
- slopes.go
- doc.go
- e12.go
- e12_pairing.go
- e12_sz.go
- e12_sz_test.go
- e12_test.go
- e2.go
- e2_test.go
- e6.go
- e6_sz.go
- e6_sz_test.go
- e6_test.go
- hints.go
- sz.go
- doc.go
- hints.go
- maptocurve.go
- maptocurve_test.go
- doc.go
- fixedbase.go
- fixedbase_count_test.go
- fixedbase_g2.go
- g1.go
- g1_addunified_test.go
- g1_test.go
- g2.go
- g2_addunified_test.go
- g2_test.go
- hints.go
- inner.go
- inner_compute.go
- pairing.go
- pairing2.go
- pairing2_test.go
- pairing_test.go
- precomputations.go
- doc.go
- hints.go
- maptocurve.go
- maptocurve_test.go
- doc.go
- g1.go
- g1_addunified_test.go
- g1_test.go
- hints.go
- inner.go
- inner_compute.go
- wrapper.go
- curve.go
- curve_test.go
- doc.go
- emulatedparams.go
- hints.go
- point.go
- scalar_decomp.go
- twistededwards.go
- defaults.go
- doc.go
- interfaces.go
- native_doc_test.go
- nonnative_doc_test.go
- verifier.go
- verifier_test.go
- assignment.go
- opts.go
- verifier.go
- plonk.go
- plonk_test.go
- io.go
- io_test.go
- main.go
- data.bin
- data.bin
- data.bin
- data.bin
- data.bin
- data.bin
- data.bin
- 0d51e18d32a6771a
- data.bin
- average_block.hex
- dict_naive
- snark.go
- snark_test.go
- snark_testing.go
- io.go
- io_test.go
- conversion.go
- conversion_test.go
- hints.go
- p256verify_vectors.json
- p256verify_vectors_clean.json
- 01-ecrecover.go
- 01-ecrecover_test.go
- 02-sha256.go
- 04-id.go
- 05-expmod.go
- 05-expmod_test.go
- 06-bnadd.go
- 07-bnmul.go
- 08-bnpairing.go
- 10-kzg_point_evaluation.go
- 10-kzg_point_evaluation128_test.go
- 10-kzg_point_evaluation_test.go
- 11-blsg1add.go
- 12-blsg1msm.go
- 13-blsg2add.go
- 14-blsg2msm.go
- 15-blspairing.go
- 16-blsmaptog1.go
- 17-blsmaptog2.go
- 256-p256verify.go
- 256-p256verify_test.go
- bls_test.go
- bn_test.go
- doc.go
- hints.go
- kzg_trusted_setup.json
- solver_benchmark_test.go
- settings.go
- transcript.go
- transcript_test.go
- types.go
- api.go
- api_test.go
- compile.go
- example_test.go
- allhashes.go
- doc.go
- expand.go
- expand_test.go
- gkr-mimc.go
- gkr-mimc_test.go
- doc.go
- mimc.go
- gkr-poseidon2.go
- poseidon2.go
- poseidon2_test.go
- ripemd160.go
- ripemd160_test.go
- sha2.go
- sha2_test.go
- doc.go
- hashes.go
- hints.go
- sha3.go
- sha3_test.go
- hash.go
- registry.go
- default_extensions.go
- fieldextension.go
- fieldextension_test.go
- hints.go
- koalabear_ext.go
- koalabear_ext_test.go
- option.go
- composition.go
- composition_test.go
- logderivarg.go
- logderivprecomp.go
- logderivprecomp_test.go
- encrypt.go
- mimc.go
- mimc_test.go
- doc_test.go
- logderivlookup.go
- logderivlookup_test.go
- conversion.go
- conversion_binary.go
- conversion_ternary.go
- conversion_test.go
- hints.go
- intf_constcheck.go
- hints.go
- opts.go
- partition.go
- partition_test.go
- bounded.go
- bounded_test.go
- doc_isless_test.go
- generic.go
- generic_test.go
- emparams.go
- custommod.go
- custommod_test.go
- doc.go
- doc_example_field_test.go
- element.go
- element_test.go
- field.go
- field_assert.go
- field_assert_test.go
- field_binary.go
- field_hint.go
- field_hint_example_test.go
- field_hint_test.go
- field_mul.go
- field_ops.go
- field_reduce.go
- field_smallmul.go
- field_test.go
- hints.go
- params.go
- regression_test.go
- smallfield_test.go
- subtraction_padding.go
- subtraction_padding_test.go
- doc.go
- polynomial.go
- polynomial_oldeval_test.go
- polynomial_test.go
- bytes.go
- hints.go
- uint8.go
- uint8_test.go
- doc_test.go
- nativecommit.go
- nativecommit_test.go
- gkr-mimc.go
- gkr-mimc_test.go
- keccak_test.go
- keccakf.go
- keccakf_native_test.go
- gkr-poseidon2.go
- gkr-poseidon2_test.go
- poseidon2.go
- poseidon2_test.go
- ripemd160block.go
- ripemd160block_native_test.go
- ripemd160block_test.go
- sha2block.go
- sha2block_test.go
- polynomial.go
- polynomial_test.go
- rangecheck.go
- rangecheck_commit.go
- rangecheck_plain.go
- rangecheck_test.go
- doc.go
- native_doc_test.go
- nonnative_doc_test.go
- opts.go
- verifier.go
- verifier_test.go
- doc.go
- native_doc_test.go
- nonnative_doc_test.go
- opts.go
- verifier.go
- verifier_test.go
- arithengine.go
- challenge.go
- claim_intf.go
- claimable_gate.go
- claimable_multilinear.go
- doc.go
- polynomial.go
- proof.go
- prover.go
- scalarmul_gates_test.go
- sumcheck_test.go
- verifier.go
- doc.go
- wrapped_hash.go
- wrapped_hash_test.go
- doc_map_test.go
- doc_mux_test.go
- doc_partition_test.go
- multiplexer.go
- multiplexer_test.go
- mux.go
- mux_test.go
- slice.go
- slice_test.go
- bls_g1.go
- blssig_test.go
- doc.go
- doc.go
- ecdsa.go
- ecdsa_secpr_test.go
- ecdsa_test.go
- doc.go
- eddsa.go
- eddsa_test.go
- doc.go
- hints.go
- hints_test.go
- kzgsrs.go
- options.go
- assert.go
- assert_checkcircuit.go
- assert_fuzz.go
- assert_mismatch_test.go
- assert_options.go
- assert_profile.go
- assert_solidity.go
- blueprint_solver.go
- blueprint_solver_test.go
- commitments_test.go
- doc.go
- end_to_end.go
- engine.go
- engine_test.go
- flag_prover_checks.go
- flag_release_checks.go
- flag_smallfield.go
- flag_smallfield_unset.go
- flag_solccheck.go
- flag_solccheck_unset.go
- flag_unset.go
- solver_test.go
- .gitignore
- .gitlint
- .golangci.yml
- AGENTS.md
- CHANGELOG.md
- CODE_OF_CONDUCT.md
- CONTRIBUTING.md
- debug_test.go
- doc.go
- go.mod
- go.sum
- integration_test.go
- LICENSE
- README.md
- SECURITY.md
- version_test.go
# Use via CDN
jsDelivrjsDelivr serves any public GitHub repository as a CDN with zero setup. Pick a version and a file to get a ready-to-paste link and snippet.
Command Glossary
Commands referenced in this DOCs, explained below.
go generate
View Details ▼
go generate
Generate Go files by running commands within source files.
go generate
Generate Go files by running commands within source files:
go get
View Details ▼
go get
Add a dependency package, or download packages in legacy GOPATH mode.
Note: `./...` is a Go package pattern understood by Go tooling. It matches the current package and all packages recursively under the current directory.
go get {{example.com/pkg}}
Add a specified package to `go.mod` in module-mode or install the package in GOPATH-mode:
go get {{example.com/pkg}}@{{v1.2.3}}
Modify the package with a given version in module-aware mode:
go get {{example.com/pkg}}@{{none}}
Remove a specified package:
go run
View Details ▼
go run
Compile and run Go code without saving a binary.
go run {{path/to/file.go}}
Run a Go file:
go run {{path/to/package}}
Run a main Go package:
go test
View Details ▼
go test
Test Go packages (files have to end with `_test.go`).
Note: `./...` is a Go package pattern understood by Go tooling. It matches the current package and all packages recursively under the current directory.
go test
Test the package found in the current directory:
go test -v
[v]erbosely test the package in the current directory:
go test -v ./...
Test the packages in the current directory and all subdirectories:
