Verifying proofs with PolkadotJS
In this tutorial we'll go through the process of submitting compatible ZK proofs to the zkVerify chain using PolkadotJS. You can navigate through all the supported proof types using the tabs below.
- Groth16
- Noir
- Risc Zero
- SxT
-
Head to polkadot.js.org frontend
-
Select your account (you must have some tVFY).
-
Choose the
settlementGroth16Pallet
, and thesubmitProof
extrinsic. -
Inside the field
vkOrHash
selectVk
-
Fill in all the required fields by copy-pasting them from the json files obtained in the previous step. All the fields should be pasted without quotes. For the
gammaAbcG1
field and theinput
field you may need to click on theAdd Item
button a certain number of times, depending on the number of corresponding entries in your json files. -
Enter the Domain ID corresponding to the domain you want to aggregate the proof for. Think of the Domain ID as the target chain for aggregation. You can find a list of available domains here.
-
Click on the
submitTransaction
button.
-
Head to polkadot.js.org frontend
-
Select your account (you must have some tVFY).
-
Choose the
settlementUltraplonkPallet
, and thesubmitProof
extrinsic. -
Inside the field
vkOrHash
selectVk
-
Fill in all the required fields by copy-pasting them from the hex files obtained in the previous step. You will need to fill the Vk, proof and public inputs. If you have more than one public inputs, you can click on the
Add Item
option to add more public inputs. -
Enter the Domain ID corresponding to the domain you want to aggregate the proof for. Think of the Domain ID as the target chain for aggregation. You can find a list of available domains here.
-
Click on the
submitTransaction
button.
- Head over to PolkadotJs frontend and select your account (you must have some tVFY).
- Choose the
settlementRisc0Pallet
and the callsubmitProof
. - Inside the field
vkOrHash
selectVk
and paste the verification key (i.e. the image id of the code whose execution you want to verify), making sure to prepend it with hexadecimal prefix0x
. - Inside the field
proof
choose the risc0 version used to generate the proof and load the binary file or paste the proof bytes, making sure to prepend it with hexadecimal prefix0x
. - Inside the field
pubs
paste the public inputs, making sure to prepend it with hexadecimal prefix0x
. - Enter the Domain ID corresponding to the domain you want to aggregate the proof for. Think of the Domain ID as the target chain for aggregation. You can find a list of available domains here.
- Click on
submitTransaction
.
- Head to polkadot.js.org frontend
- Select your account (you must have some tVFY).
- Choose the
settlementProofOfSqlPallet
, and thesubmitProof
extrinsic. - Inside the field
vkOrHash
selectVk
- Fill in all the required fields by toggling the
file upload
switch, and uploading the vk, proof, and pubs files generated in the previous section. - Click on the
submitTransaction
button.