PageSourceSearch

https://sindri-labs.github.io/assets/js/71fca919.09974f42.js

js sindri-labs.github.io collected 2026-10-03 09:58:36 UTC 9,378 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunkforge_docs=self.webpackChunkforge_docs||[]).push([[2622],{452:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>c,contentTitle:()=>t,default:()=>h,frontMatter:()=>o,metadata:()=>l,toc:()=>a});var i=n(74848),s=n(28453);const o={},t="FAQs",l={id:"getting-help/faqs",title:"FAQs",description:"Have a question not answered below?",source:"@site/docs/getting-help/faqs.md",sourceDirName:"getting-help",slug:"/getting-help/faqs",permalink:"/docs/getting-help/faqs",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"Getting Help",permalink:"/docs/getting-help/"},next:{title:"Troubleshooting",permalink:"/docs/getting-help/troubleshooting/"}},c={},a=[{value:"Sindri",id:"sindri",level:2},{value:"General",id:"general",level:3},{value:"Accounts",id:"accounts",level:3},{value:"Sindri API",id:"sindri-api",level:2},{value:"Compile and Setup",id:"compile-and-setup",level:3},{value:"Prove",id:"prove",level:3}];function d(e){const r={a:"a",em:"em",h1:"h1",h2:"h2",h3:"h3",p:"p",strong:"strong",...(0,s.R)(),...e.components},{Details:n}=r;return n||function(e,r){throw new Error("Expected "+(r?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(r.h1,{id:"faqs",children:"FAQs"}),"\n",(0,i.jsxs)(r.p,{children:["Have a question not answered below?\n",(0,i.jsxs)(r.em,{children:["Send an email to ",(0,i.jsx)(r.a,{href:"mailto:[email protected]?subject=Sindri%20FAQ%20Help&body=Hello%2C%0A%0AI%20was%20reviewing%20your%20FAQ%20page%20and%20I%20would%20like%20further%20help.%0A%0A%0A",children:"[email protected]"}),"."]})]}),"\n",(0,i.jsx)(r.h2,{id:"sindri",children:"Sindri"}),"\n",(0,i.jsx)(r.h3,{id:"general",children:"General"}),"\n",(0,i.jsxs)(n,{children:[(0,i.jsx)("summary",{children:(0,i.jsx)(r.p,{children:(0,i.jsx)(r.strong,{children:"Can I trust a centralized provider with my private data?"})})}),(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.em,{children:"Sindri strives to adhere to security best practices to ensure the protection of private witnesses sent to Sindri for a proof."}),"\n",(0,i.jsx)(r.em,{children:"However, there are inherent vulnerabilities associated with transmitting such information, even with TLS."}),"\n",(0,i.jsx)(r.em,{children:"If privacy is a major concern for your use case, it is advisable to perform those proofs on your own machines and utilize Sindri for verifiable computation instead."})]})]}),"\n",(0,i.jsxs)(n,{children:[(0,i.jsx)("summary",{children:(0,i.jsx)(r.p,{children:(0,i.jsx)(r.strong,{children:"What type of hardware acceleration do you provide?"})})}),(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.em,{children:"Sindri's novel acceleration techniques, including Sagittal for multi-scalar multiplication, are optimized to run on GPUs."}),"\n",(0,i.jsx)(r.em,{children:"We also provide acceleration for CPU-only and CPU+GPU proof generation."})]})]}),"\n",(0,i.jsxs)(n,{children:[(0,i.jsx)("summary",{children:(0,i.jsx)(r.p,{children:(0,i.jsx)(r.strong,{children:"Can I use Sindri as a ZK development tool?"})})}),(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.em,{children:"Yes!"}),"\n",(0,i.jsx)(r.em,{children:"However, in our beta phase, the Sindri API provides limited guidance on correcting runtime errors."})]})]}),"\n",(0,i.jsxs)(n,{children:[(0,i.jsx)("summary",{children:(0,i.jsx)(r.p,{children:(0,i.jsx)(r.strong,{children:"Does Sindri support ZK-STARKs?"})})}),(0,i.jsx)(r.p,{children:(0,i.jsx)(r.em,{children:"Sindri offers support for Plonky2, which utilizes FRI and does not require a trusted setup."})})]}),"\n",(0,i.jsx)(r.h3,{id:"accounts",children:"Accounts"}),"\n",(0,i.jsxs)(n,{children:[(0,i.jsx)("summary",{children:(0,i.jsx)(r.p,{children:(0,i.jsx)(r.strong,{children:"How do I sign up to use Sindri?"})})}),(0,i.jsx)(r.p,{children:(0,i.jsxs)(r.em,{children:["Create a Sindri account ",(0,i.jsx)(r.a,{href:"https://sindri.app/signup",children:"here"}),"."]})})]}),"\n",(0,i.jsxs)(n,{children:[(0,i.jsx)("summary",{children:(0,i.jsx)(r.p,{children:(0,i.jsx)(r.strong,{children:"What's the cost?"})})}),(0,i.jsx)(r.p,{children:(0,i.jsx)(r.em,{children:"Proof generation is available free of charge during a pilot."})})]}),"\n",(0,i.jsx)(r.h2,{id:"sindri-api",children:"Sindri API"}),"\n",(0,i.jsx)(r.h3,{id:"compile-and-setup",children:"Compile and Setup"}),"\n",(0,i.jsxs)(n,{children:[(0,i.jsx)("summary",{children:(0,i.jsx)(r.p,{children:(0,i.jsx)(r.strong,{children:"What languages do you support?"})})}),(0,i.jsx)(r.p,{children:(0,i.jsxs)(r.em,{children:["Please refer to ",(0,i.jsx)(r.a,{href:"/docs/topic-guides/frameworks/",children:"this page"})," for more information."]})})]}),"\n",(0,i.jsxs)(n,{children:[(0,i.jsx)("summary",{children:(0,i.jsx)(r.p,{children:(0,i.jsx)(r.strong,{children:"Which trusted ceremony are you using?"})})}),(0,i.jsx)(r.p,{children:(0,i.jsxs)(r.em,{children:["The following information assumes you have not uploaded your own trusted setup and proving keys. For more information about how to utilize the key upload feature, see ",(0,i.jsx)(r.a,{href:"/docs/topic-guides/uploading-keys/",children:"this page"})]})}),(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.em,{children:'For any proof system over BN254, we use an outcome of the perpetual "powers of tau" ceremony.'}),"\n",(0,i.jsxs)(r.em,{children:["See the ",(0,i.jsx)(r.a,{href:"https://github.com/privacy-scaling-explorations/perpetualpowersoftau/blob/master/README.md",children:"ceremony's documentation"})," for more details."]}),"\n",(0,i.jsx)(r.em,{children:"For Groth16, we use the same round as Hermez (54)."}),"\n",(0,i.jsx)(r.em,{children:"For KZG, we use the same round as Axiom (71)."}),"\n",(0,i.jsxs)(r.em,{children:["The round choice will change the prove and verify keys accordingly. So, if your use case includes a verifying key that came from a different roun
1d, send an email to ",(0,i.jsx)(r.a,{href:"mailto:[email protected]?subject=Sindri%20FAQ%20Help&body=Hello%2C%0A%0AI%20was%20reviewing%20your%20FAQ%20page%20and%20I%20would%20like%20further%20help.%0A%0A%0A",children:"[email protected]"})," so we can help you incorporate it."]})]}),(0,i.jsx)(r.p,{children:(0,i.jsx)(r.em,{children:"Gnark circuits utilize a single party mock ceremony for key generation."})})]}),"\n",(0,i.jsxs)(n,{children:[(0,i.jsx)("summary",{children:(0,i.jsx)(r.p,{children:(0,i.jsx)(r.strong,{children:"Why can't you generate the phase two keys for me?"})})}),(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.em,{children:"Best practices for producing keys involve communication between multiple parties."}),"\n",(0,i.jsx)(r.em,{children:"Any key produced by one contributor is much easier to compromise, which would allow a malicious actor to cheat the ZK-SNARK promise."}),"\n",(0,i.jsx)(r.em,{children:"They could learn your private inputs or fake a proof with their own illegitimate inputs."})]})]}),"\n",(0,i.jsxs)(n,{children:[(0,i.jsx)("summary",{children:(0,i.jsx)(r.p,{children:(0,i.jsx)(r.strong,{children:"Why is it taking so long for my circuit to compile?"})})}),(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.em,{children:"Sindri's compile step incorporates multiple parts of the ZK-SNARK setup process, not just circuit synthesis."}),"\n",(0,i.jsx)(r.em,{children:"Depending on your use case, the compile step might also be fetching and building external library dependencies or constructing mock keys."})]})]}),"\n",(0,i.jsx)(r.h3,{id:"prove",children:"Prove"}),"\n",(0,i.jsxs)(n,{children:[(0,i.jsx)("summary",{children:(0,i.jsx)(r.p,{children:(0,i.jsx)(r.strong,{children:"What do I do with the proof data?"})})}),(0,i.jsx)(r.p,{children:(0,i.jsxs)(r.em,{children:["You can download the proof and public outputs from a circuit via our ",(0,i.jsx)(r.a,{href:"/docs/reference/api/proof-detail/",children:"proof detail endpoint"}),"."]})})]}),"\n",(0,i.jsxs)(n,{children:[(0,i.jsx)("summary",{children:(0,i.jsx)(r.p,{children:(0,i.jsx)(r.strong,{children:"Can I choose what hardware certain proofs run on for the same circuit?"})})}),(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.em,{children:"This feature is currently under development!"}),"\n",(0,i.jsxs)(r.em,{children:["For more details about how to formulate your proof request, consult the ",(0,i.jsx)(r.a,{href:"/docs/reference/api/proof-create",children:"documentation for this endpoint"}),"."]})]})]}),"\n",(0,i.jsxs)(n,{children:[(0,i.jsx)("summary",{children:(0,i.jsx)(r.p,{children:(0,i.jsx)(r.strong,{children:"I misplaced the proof data but still have the proof's ID, can I retrieve this data without rerunning the proof?"})})}),(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.em,{children:"This feature is not supported in our UI but is available via the API."}),"\n",(0,i.jsxs)(r.em,{children:["See the proof detail endpoint ",(0,i.jsx)(r.a,{href:"/docs/reference/api/proof-detail/",children:"here"}),"."]})]})]})]})}function h(e={}){const{wrapper:r}={...(0,s.R)(),...e.components};return r?(0,i.jsx)(r,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},28453:(e,r,n)=>{n.d(r,{R:()=>t,x:()=>l});var i=n(96540);const s={},o=i.createContext(s);function t(e){const r=i.useContext(o);return i.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function l(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:t(e.components),i.createElement(o.Provider,{value:r},e.children)}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.