1:"$Sreact.fragment"
2:"/_next/static/chunks/27gjg8e11zukd.js"
3:"/_next/static/chunks/3t-6d0qk7kdd3.js"
4:I[22016,["$2","$3"],""]
5:I[39756,["$2"],"default"]
6:I[37457,["$2"],"default"]
:HL["/_next/static/chunks/2o4ecce28ubhf.css","style"]
a:X
b:[["children",{"s":"__PAGE__","h":160,"d":{"r":"$Lc","p":"$@d","v":null,"s":"$a"}}]]
0:{"t":{"t":{"s":"","h":80,"d":{"r":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/2o4ecce28ubhf.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/27gjg8e11zukd.js","async":true}]],["$","html",null,{"lang":"en","className":"Ur3q_a_variable iaM1Ya_variable","children":["$","body",null,{"className":"flex min-h-dvh flex-col","children":[["$","div",null,{"className":"sticky top-0 z-20 border-b border-line bg-bg/85 backdrop-blur","children":["$","div",null,{"className":"container-page flex h-14 items-center justify-between gap-4","children":[["$","div",null,{"className":"flex items-center gap-8","children":[["$","$L4",null,{"href":"/","className":"flex items-center gap-2.5 font-semibold tracking-tight","aria-label":"Provera home","children":[["$","svg",null,{"width":"22","height":"22","viewBox":"0 0 22 22","fill":"none","aria-hidden":true,"children":[["$","rect",null,{"x":"0.75","y":"0.75","width":"20.5","height":"20.5","rx":"5.25","stroke":"currentColor","strokeWidth":"1.5"}],["$","path",null,{"d":"M6.5 11.4l3 3 6-6.8","stroke":"currentColor","strokeWidth":"1.7","strokeLinecap":"round","strokeLinejoin":"round"}]]}],"Provera"]}],["$","nav",null,{"className":"hidden items-center gap-6 text-sm text-muted sm:flex","children":[["$","$L4","/verify",{"href":"/verify","className":"transition-colors hover:text-fg","children":"Verify"}],["$","$L4","/docs",{"href":"/docs","className":"transition-colors hover:text-fg","children":"Docs"}],["$","$L4","/provers",{"href":"/provers","className":"transition-colors hover:text-fg","children":"Run a prover"}]]}]]}],["$","div",null,{"className":"flex items-center gap-2","children":[["$","$L4",null,{"href":"/verify","className":"btn h-8 px-3 text-muted hover:text-fg sm:hidden","children":"Verify"}],["$","$L4",null,{"href":"/docs#quick-start","className":"btn-secondary h-8","children":"Get started"}]]}]]}]}],["$","main",null,{"className":"flex-1","children":["$","$L5",null,{"parallelRouterKey":"children","template":["$","$L6",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}],["$","footer",null,{"className":"mt-24 border-t border-line","children":["$","div",null,{"className":"container-page flex flex-col gap-6 py-10 text-sm text-muted sm:flex-row sm:items-start sm:justify-between","children":[["$","div",null,{"className":"max-w-md","children":[["$","$L4",null,{"href":"/","className":"flex items-center gap-2.5 font-semibold tracking-tight","aria-label":"Provera home","children":[["$","svg",null,{"width":"22","height":"22","viewBox":"0 0 22 22","fill":"none","aria-hidden":true,"children":[["$","rect",null,{"x":"0.75","y":"0.75","width":"20.5","height":"20.5","rx":"5.25","stroke":"currentColor","strokeWidth":"1.5"}],["$","path",null,{"d":"M6.5 11.4l3 3 6-6.8","stroke":"currentColor","strokeWidth":"1.7","strokeLinecap":"round","strokeLinejoin":"round"}]]}],"Provera"]}],["$","p",null,{"className":"mt-3","children":"Open-source software you run yourself. Not audited. There is no hosted Provera service."}]]}],["$","nav",null,{"className":"grid grid-cols-2 gap-x-12 gap-y-2","children":[["$","$L4",null,{"href":"/docs#quick-start","className":"hover:text-fg","children":"Quick start"}],["$","$L4",null,{"href":"/docs#security","className":"hover:text-fg","children":"Security assumptions"}],["$","$L4",null,{"href":"/docs#cli","className":"hover:text-fg","children":"Command-line tool"}],["$","$L4",null,{"href":"/docs#architecture","className":"hover:text-fg","children":"Architecture"}],"$L7","$L8"]}]]}]}]]}]}]]}],"p":"$@9","v":null,"s":"$a"},"c":"$Qb"},"h":{"r":"$Le","p":"$@f","v":null,"s":"$a"}},"a":"$@10","u":"$@11","b":"8KJl1csVP2SWNNGtY9yB2"}
1d:"ViewportBoundary"
1e:I[97367,["$2"],"$1d"]
1f:"MetadataBoundary"
20:I[97367,["$2"],"$1f"]
21:"$Sreact.suspense"
22:I[27201,["$2"],"IconMark"]
7:["$","$L4",null,{"href":"/verify","className":"hover:text-fg","children":"Verify a receipt"}]
8:["$","$L4",null,{"href":"/provers","className":"hover:text-fg","children":"Run a prover"}]
c:["$","$1","c",{"children":[[["$","section",null,{"className":"border-b border-line","children":["$","div",null,{"className":"container-page grid gap-12 py-16 sm:py-24 lg:grid-cols-[1fr_minmax(0,540px)] lg:items-center","children":[["$","div",null,{"children":[["$","p",null,{"className":"eyebrow","children":"Open proof infrastructure for Solana"}],["$","h1",null,{"className":"mt-5 text-4xl leading-[1.08] font-semibold tracking-tight text-balance sm:text-[56px]","children":"Prove it on Solana without publishing the data."}],["$","p",null,{"className":"mt-6 max-w-xl text-lg text-muted","children":"Provera lets a crypto project prove a fact about its own data and record that proof on-chain. You run it yourself: no Provera server sees your data, holds your keys or sits between you and Solana."}],["$","div",null,{"className":"mt-8 flex flex-wrap gap-3","children":[["$","$L4",null,{"href":"/docs#quick-start","className":"btn-primary","children":"Read the quick start"}],["$","$L4",null,{"href":"/verify","className":"btn-secondary","children":"Verify a receipt"}]]}],["$","p",null,{"className":"mt-8 max-w-xl border-l border-line-strong pl-4 text-sm text-muted","children":"Pre-release and not audited. The on-chain programs are tested on a local validator and have no public deployment yet; you deploy your own with one script."}]]}],["$","div",null,{"className":"card overflow-hidden","children":[["$","div",null,{"className":"border-b border-line px-4 py-2 font-mono text-[11px] tracking-wide text-faint","children":"from dataset to on-chain receipt"}],["$","pre",null,{"className":"overflow-x-auto p-4 font-mono text-[13px] leading-relaxed text-fg","children":["$","code",null,{"children":"# 1. Prove on your own machine. The dataset never leaves it.\nprover prove --manifest airdrop.json --out proof\n\n# 2. Wrap the STARK so Solana can verify it.\nprover wrap --receipt proof/receipt.bin --out proof\n\n# 3. Register it on Solana from your own wallet.\nprovera submit --report proof/report-groth16.json \\\n  --deployment deployment.json --keypair wallet.json\n\n# 4. Anyone holding the data can check the receipt.\nprovera check airdrop.json --receipt <address> \\\n  --deployment deployment.json"}]}]]}]]}]}],false,["$","section",null,{"className":"container-page py-20","children":[["$","div",null,{"className":"max-w-2xl","children":[["$","p",null,{"className":"eyebrow","children":"Why a proof"}],["$","h2",null,{"className":"mt-3 text-2xl font-semibold tracking-tight sm:text-3xl","children":"A spreadsheet is a claim. A proof can be checked by someone who does not trust you."}],["$","p",null,{"className":"mt-4 text-muted","children":"Projects publish allocation tables, leaderboards and reward lists and ask their communities to take the arithmetic on faith. A proof binds the published result to a commitment of the exact input data, so anyone can confirm the rule was applied to all of it, without re-running anything and without seeing the data."}]]}],["$","ol",null,{"className":"mt-12 grid gap-4 md:grid-cols-2","children":[["$","li","01",{"className":"card p-6","children":[["$","div",null,{"className":"flex items-start justify-between gap-4","children":[["$","span",null,{"className":"font-mono text-xs text-faint","children":"01"}],["$","span",null,{"className":"inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-medium whitespace-nowrap text-ok border-ok/30 bg-ok/10","children":"Working"}]]}],["$","h3",null,{"className":"mt-4 font-semibold","children":"Your computation runs in a zkVM"}],["$","p",null,{"className":"mt-2 text-sm text-muted","children":"Each proof type is an ordinary Rust program executed inside the RISC Zero zkVM on your hardware. The same code is unit-tested natively, so what is proved is what was tested."}]]}],["$","li","02",{"className":"card p-6","children":["$L12","$L13","$L14"]}],"$L15","$L16"]}]]}],"$L17","$L18","$L19","$L1a"],["$L1b"],"$L1c"]}]
e:["$","$1","h",{"children":[null,["$","$L1e",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","$L20",null,{"children":[["$","div",null,{"hidden":true,"children":["$","$21",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"Provera — proof infrastructure for Solana"}],["$","meta","1",{"name":"description","content":"Provera runs computations in a zkVM and returns STARK proofs that they were done correctly, with a path to verification on Solana."}],["$","link","2",{"rel":"icon","href":"/icon.svg?icon.40r_gb96r44xm.svg","sizes":"any","type":"image/svg+xml"}],["$","$L22","3",{}]]}]}],null]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}]
23:I[97367,["$2"],"OutletBoundary"]
12:["$","div",null,{"className":"flex items-start justify-between gap-4","children":[["$","span",null,{"className":"font-mono text-xs text-faint","children":"02"}],["$","span",null,{"className":"inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-medium whitespace-nowrap text-ok border-ok/30 bg-ok/10","children":"Working"}]]}]
13:["$","h3",null,{"className":"mt-4 font-semibold","children":"A STARK proves the execution"}]
14:["$","p",null,{"className":"mt-2 text-sm text-muted","children":"The zkVM emits a STARK: a hash-based proof with no trusted setup that this exact program accepted your data and produced these public outputs. Anyone can verify it off-chain."}]
15:["$","li","03",{"className":"card p-6","children":[["$","div",null,{"className":"flex items-start justify-between gap-4","children":[["$","span",null,{"className":"font-mono text-xs text-faint","children":"03"}],["$","span",null,{"className":"inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-medium whitespace-nowrap text-ok border-ok/30 bg-ok/10","children":"Working"}]]}],["$","h3",null,{"className":"mt-4 font-semibold","children":"A Groth16 wrapper makes it fit on Solana"}],["$","p",null,{"className":"mt-2 text-sm text-muted","children":"A STARK is too large for a Solana transaction. It is wrapped in a 256-byte Groth16 SNARK, which a Solana program checks with the alt_bn128 syscalls. Solana verifies the wrapper, not the STARK, and the wrapper relies on a trusted setup."}]]}]
16:["$","li","04",{"className":"card p-6","children":[["$","div",null,{"className":"flex items-start justify-between gap-4","children":[["$","span",null,{"className":"font-mono text-xs text-faint","children":"04"}],["$","span",null,{"className":"inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-medium whitespace-nowrap text-pending border-pending/30 bg-pending/10","children":"Tested locally, no public deployment"}]]}],["$","h3",null,{"className":"mt-4 font-semibold","children":"A receipt account anyone can read"}],["$","p",null,{"className":"mt-2 text-sm text-muted","children":"The registry program writes a receipt only inside a transaction where verification succeeded. Wallets, websites and other programs read that account directly from Solana."}]]}]
17:["$","section",null,{"className":"border-y border-line bg-surface","children":["$","div",null,{"className":"container-page grid gap-10 py-20 lg:grid-cols-3","children":[["$","div","Nothing to trust in the middle",{"children":[["$","h3",null,{"className":"font-semibold","children":"Nothing to trust in the middle"}],["$","p",null,{"className":"mt-2 text-sm text-muted","children":"Proving happens on your machine and the transaction is signed by your wallet. There is no account to create and no service that can be switched off."}]]}],["$","div","Your data stays yours",{"children":[["$","h3",null,{"className":"font-semibold","children":"Your data stays yours"}],["$","p",null,{"className":"mt-2 text-sm text-muted","children":"Only a commitment and the public outputs go on-chain. The dataset is never uploaded anywhere unless you choose to share it."}]]}],["$","div","Checkable by anyone",{"children":[["$","h3",null,{"className":"font-semibold","children":"Checkable by anyone"}],["$","p",null,{"className":"mt-2 text-sm text-muted","children":"A receipt is a normal Solana account. This site reads it straight from an RPC node in your browser, and so can any wallet or program."}]]}]]}]}]
18:["$","section",null,{"className":"container-page py-20","children":[["$","p",null,{"className":"eyebrow","children":"Proof types"}],["$","h2",null,{"className":"mt-3 text-2xl font-semibold tracking-tight sm:text-3xl","children":"One statement at a time"}],["$","div",null,{"className":"mt-10 grid gap-4 md:grid-cols-3","children":[["$","div","Token distributions",{"className":"card p-6","children":[["$","span",null,{"className":"inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-medium whitespace-nowrap text-ok border-ok/30 bg-ok/10","children":"Available"}],["$","h3",null,{"className":"mt-4 font-semibold","children":"Token distributions"}],["$","p",null,{"className":"mt-2 text-sm text-muted","children":"Prove that a committed allocation list has unique wallets and that no wallet exceeds a stated share of the total."}]]}],["$","div","Airdrop and holder rewards",{"className":"card p-6","children":[["$","span",null,{"className":"inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-medium whitespace-nowrap text-muted border-line-strong bg-raised","children":"Planned"}],["$","h3",null,{"className":"mt-4 font-semibold","children":"Airdrop and holder rewards"}],["$","p",null,{"className":"mt-2 text-sm text-muted","children":"Prove that reward amounts follow published eligibility rules, with Merkle claims and double-claim protection."}]]}],["$","div","Trading leaderboards",{"className":"card p-6","children":[["$","span",null,{"className":"inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-medium whitespace-nowrap text-muted border-line-strong bg-raised","children":"Planned"}],["$","h3",null,{"className":"mt-4 font-semibold","children":"Trading leaderboards"}],["$","p",null,{"className":"mt-2 text-sm text-muted","children":"Prove that volume, realized PnL and rankings follow agreed rules over a committed trade set, in integer arithmetic."}]]}]]}]]}]
19:["$","section",null,{"className":"container-page grid gap-12 border-t border-line py-20 lg:grid-cols-2","children":[["$","div",null,{"children":[["$","p",null,{"className":"eyebrow","children":"What a proof does not tell you"}],["$","h2",null,{"className":"mt-3 text-2xl font-semibold tracking-tight sm:text-3xl","children":"Read the fine print before you cite one"}],["$","p",null,{"className":"mt-4 text-muted","children":"A proof is exact about what it covers and silent about everything else."}]]}],["$","ul",null,{"className":"space-y-4 text-sm","children":[["$","li","It covers the dataset that was proved.",{"className":"border-l border-line-strong pl-4","children":[["$","p",null,{"className":"font-medium","children":"It covers the dataset that was proved."}],["$","p",null,{"className":"mt-1 text-muted","children":"Wallets left out of the list are invisible to the proof. It cannot show that no other insider wallets exist."}]]}],["$","li","It does not read the chain.",{"className":"border-l border-line-strong pl-4","children":[["$","p",null,{"className":"font-medium","children":"It does not read the chain."}],["$","p",null,{"className":"mt-1 text-muted","children":"Mint, category and snapshot slot are labels chosen by whoever made the proof."}]]}],["$","li","Wallets are not people.",{"className":"border-l border-line-strong pl-4","children":[["$","p",null,{"className":"font-medium","children":"Wallets are not people."}],["$","p",null,{"className":"mt-1 text-muted","children":"Fifty wallets holding 2% each satisfy a 2% cap, whoever controls them."}]]}],["$","li","A receipt is only as good as its registry and guest image.",{"className":"border-l border-line-strong pl-4","children":[["$","p",null,{"className":"font-medium","children":"A receipt is only as good as its registry and guest image."}],["$","p",null,{"className":"mt-1 text-muted","children":"Check which program owns the receipt and that the guest image ID is one built from source you have read."}]]}]]}]]}]
1a:["$","section",null,{"className":"container-page","children":["$","div",null,{"className":"card flex flex-col items-start justify-between gap-6 p-8 sm:flex-row sm:items-center","children":[["$","div",null,{"children":[["$","h2",null,{"className":"text-xl font-semibold tracking-tight","children":"Run it yourself"}],["$","p",null,{"className":"mt-1 text-sm text-muted","children":"Build the prover, deploy the programs to a cluster of your choice, and submit from your own wallet."}]]}],["$","div",null,{"className":"flex flex-wrap gap-3","children":[["$","$L4",null,{"href":"/docs#quick-start","className":"btn-primary","children":"Quick start"}],["$","a",null,{"href":"/downloads/provera-source.zip","className":"btn-secondary","children":"Download source"}]]}]]}]}]
1b:["$","script","script-0",{"src":"/_next/static/chunks/3t-6d0qk7kdd3.js","async":true}]
1c:["$","$L23",null,{"children":["$","$21",null,{"name":"Next.MetadataOutlet","children":"$@24"}]}]
11:true
a:300
24:null
a:C
10:0
f:"$undefined"
9:"$undefined"
d:"$undefined"
