{"id":13629781,"url":"https://github.com/risc0/risc0","last_synced_at":"2026-02-03T02:17:04.558Z","repository":{"id":36994267,"uuid":"461330861","full_name":"risc0/risc0","owner":"risc0","description":"RISC Zero is a zero-knowledge verifiable general computing platform based on zk-STARKs and the RISC-V microarchitecture.","archived":false,"fork":false,"pushed_at":"2025-05-09T00:22:20.000Z","size":251916,"stargazers_count":1872,"open_issues_count":161,"forks_count":547,"subscribers_count":51,"default_branch":"main","last_synced_at":"2025-05-09T00:54:57.458Z","etag":null,"topics":["cryptography","risc-v","rust","stark","virtual-machine","zero-knowledge"],"latest_commit_sha":null,"homepage":"https://risczero.com","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/risc0.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-02-19T22:42:39.000Z","updated_at":"2025-05-09T00:05:29.000Z","dependencies_parsed_at":"2025-05-09T01:06:17.219Z","dependency_job_id":null,"html_url":"https://github.com/risc0/risc0","commit_stats":{"total_commits":1294,"total_committers":101,"mean_commits":"12.811881188118813","dds":0.7341576506955177,"last_synced_commit":"939ac2ca5567d67c8630cdcd7ca544fbe73e6136"},"previous_names":[],"tags_count":78,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/risc0%2Frisc0","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/risc0%2Frisc0/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/risc0%2Frisc0/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/risc0%2Frisc0/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/risc0","download_url":"https://codeload.github.com/risc0/risc0/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253178158,"owners_count":21866461,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cryptography","risc-v","rust","stark","virtual-machine","zero-knowledge"],"created_at":"2024-08-01T22:01:19.070Z","updated_at":"2026-01-16T14:21:34.308Z","avatar_url":"https://github.com/risc0.png","language":"C++","funding_links":[],"categories":["Uncategorized","C++","Technical details","Verifiable AI \u0026 ZKML","Projects","Core"],"sub_categories":["Uncategorized","Zero-Knowledge ML Frameworks","Zk-VM"],"readme":"\u003e [!IMPORTANT]\n\u003e `main` is the development branch.\n\u003e When building applications or running examples, use the [latest release](https://github.com/risc0/risc0/releases) instead.\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://risczero.com\" target=\"_blank\"\u003e\n    \u003cpicture\u003e\n      \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://risczero.com/companies/risczero_dark.svg\"\u003e\n      \u003cimg src=\"https://risczero.com/companies/risczero.svg\" alt=\"RISC Zero Company Logo\" width=\"142\" height=\"126\"\u003e\n    \u003c/picture\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n[![Crates.io][crates-badge]][crates-url]\n[![Dual licensed: Apache-2.0 OR MIT][licence-badge]][licence-url]\n[![Build Status][actions-badge]][actions-url]\n[![Discord chat][discord-badge]][discord-url]\n[![Twitter][twitter-badge]][twitter-url]\n\nRISC Zero is a zero-knowledge verifiable general computing platform based on\n[zk-STARKs][zk-proof] and the [RISC-V] microarchitecture.\n\nA [zero knowledge proof][zk-proof] allows one party (the prover) to convince\nanother party (the verifier) that something is true without revealing all the\ndetails. In the case of RISC Zero, the prover can show that they correctly executed\nsome code (known to both parties), while only revealing to the verifier the\noutput of the code, not any of its inputs or any state during execution.\n\nThe code runs in a special virtual machine, called a _zkVM_. The RISC Zero zkVM\nemulates a small [RISC-V] computer, allowing it to run arbitrary code in any\nlanguage, so long as a compiler toolchain exists that targets RISC-V. Currently,\nSDK support exists for Rust, C, and C⁠+⁠+.\n\n## Protocol overview and terminology\n\nFirst, the code to be proven must be compiled from its implementation language\ninto a _method_. A method is represented by a RISC-V ELF file with a special\nentry point that runs the code of the method. Additionally, one can compute for\na given method its _image ID_ which is a special type of cryptographic hash of\nthe ELF file, and is required for verification.\n\nNext, the host program runs and proves the method inside the zkVM. The logical\nRISC-V machine running inside the zkVM is called the _guest_ and the prover\nrunning the zkVM is called the _host_. The guest and the host can communicate\nwith each other during the execution of the method, but the host cannot modify\nthe execution of the guest in any way, or the proof being generated will be\ninvalid. During execution, the guest code can write to a special append-only log\ncalled the _journal_ which represents the official output of the computation.\n\nPresuming the method terminated correctly, a _receipt_ is produced, which\nprovides the proof of correct execution. This receipt consists of 2 parts: the\njournal written during execution and a blob of opaque cryptographic data called\nthe _seal_.\n\nThe verifier can then verify the receipt and examine the log. If any tampering\nwas done to the journal or the seal, the receipt will fail to verify.\nAdditionally, it is cryptographically infeasible to generate a valid receipt\nunless the output of the journal is the exactly correct output for some valid\nexecution of the method whose image ID matches the receipt. In summary, the\nreceipt acts as a zero-knowledge proof of correct execution.\n\nBecause the protocol is zero-knowledge, the verifier cannot infer anything about\nthe details of the execution or any data passed between the host and the guest\n(aside from what is implied by the data written to the journal and the correct\nexecution of the code).\n\n## Security\n\nThis code implements a [three-layer recursive proof system][zksummit10-talk],\nbased on the well-studied zk-STARK protocol and Groth16 protocol. An overview of\nthe underlying cryptographic assumptions can be found on our [Security\nModel][security-model] page. With default parameters, this system achieves\nperfect zero-knowledgeness and 98 bits of conjectured security. Our STARK\nprotocol is described in [Scalable, Transparent Arguments of RISC-V\nIntegrity][proof-system-in-detail], and a soundness/security calculator is\nincluded in the `soundness.rs` file.\n\nTo run the calculator, use `RUST_LOG=risc0_zkp=debug` when running a proof.\n\n## Getting Started\n\nTo start your own project, you can use our `cargo risczero` tool to write the\ninitial boilerplate and set up a standard directory structure.\n\nFirst, [install Rust][install-rust] if you don't already have it, then install\nthe RISC Zero toolchain installer, `rzup`. We'll use `rzup` to install\n`cargo-risczero`.\n\nTo install `rzup` run the following command and follow the instructions:\n\n```bash\ncurl -L https://risczero.com/install | bash\n```\n\nNext we can install the RISC Zero toolchain by running `rzup install`:\n\n```bash\nrzup install\n```\n\nYou can verify the installation was successful by running:\n\n```bash\ncargo risczero --version\n```\n\nAfter installation, you can create a new project (named `my_project` in this example):\n\n```bash\ncargo risczero new my_project\n```\n\nMore details and options for `cargo risczero` are given in\n[its README][cargo-risczero-readme].\n\nFor more guidance on how to use RISC Zero, how RISC Zero projects are typically\nstructured, and other resources useful to developers new to RISC Zero, see our\n[Getting Started page][quickstart].\n\n## Documentation\n\nDocumentation for the zkVM SDK and other Rust crates can be found at [docs.rs/risc0-zkvm](https://docs.rs/risc0-zkvm).\nAll other documentation can be found at [dev.risczero.com](https://dev.risczero.com).\n\nYou can build and view the Rust documentation locally by using `cargo doc`.\nSee [CONTRIBUTING.md](./CONTRIBUTING.md) for dependencies.\nSource code for the documentation website can be found in the [website directory](./website).\n\n## Building from source\n\nBuilding from source requires some additional tools and steps.\nPlease refer to [CONTRIBUTING.md](./CONTRIBUTING.md) for the full instructions.\n\n## Rust Binaries\n\n| crate          | [crates.io]                                                                                         |\n| -------------- | --------------------------------------------------------------------------------------------------- |\n| cargo-risczero | [![x](https://img.shields.io/badge/crates.io-v2.1-orange)](https://crates.io/crates/cargo-risczero) |\n| risc0-r0vm     | [![x](https://img.shields.io/badge/crates.io-v2.1-orange)](https://crates.io/crates/risc0-r0vm)     |\n| risc0-tools    | [![x](https://img.shields.io/badge/crates.io-v2.0-orange)](https://crates.io/crates/risc0-tools)    |\n\n## Rust Libraries\n\n| crate                       | [crates.io]                                                                                                      | [docs.rs](https://docs.rs)                                                                                    |\n| --------------------------- | ---------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- |\n| bonsai-sdk                  | [![x](https://img.shields.io/badge/crates.io-v1.4-orange)](https://crates.io/crates/bonsai-sdk)                  | [![](https://img.shields.io/docsrs/bonsai-sdk)](https://docs.rs/bonsai-sdk)                                   |\n| risc0-binfmt                | [![x](https://img.shields.io/badge/crates.io-v2.0-orange)](https://crates.io/crates/risc0-binfmt)                | [![](https://img.shields.io/docsrs/risc0-binfmt)](https://docs.rs/risc0-binfmt)                               |\n| risc0-build                 | [![x](https://img.shields.io/badge/crates.io-v2.1-orange)](https://crates.io/crates/risc0-build)                 | [![](https://img.shields.io/docsrs/risc0-build)](https://docs.rs/risc0-build)                                 |\n| risc0-build-kernel          | [![x](https://img.shields.io/badge/crates.io-v2.0-orange)](https://crates.io/crates/risc0-build-kernel)          | [![](https://img.shields.io/docsrs/risc0-build-kernel)](https://docs.rs/risc0-build-kernel)                   |\n| risc0-circuit-recursion     | [![x](https://img.shields.io/badge/crates.io-v2.0-orange)](https://crates.io/crates/risc0-circuit-recursion)     | [![](https://img.shields.io/docsrs/risc0-circuit-recursion)](https://docs.rs/risc0-circuit-recursion)         |\n| risc0-circuit-recursion-sys | [![x](https://img.shields.io/badge/crates.io-v2.0-orange)](https://crates.io/crates/risc0-circuit-recursion-sys) | [![](https://img.shields.io/docsrs/risc0-circuit-recursion-sys)](https://docs.rs/risc0-circuit-recursion-sys) |\n| risc0-circuit-rv32im        | [![x](https://img.shields.io/badge/crates.io-v2.0-orange)](https://crates.io/crates/risc0-circuit-rv32im)        | [![](https://img.shields.io/docsrs/risc0-circuit-rv32im)](https://docs.rs/risc0-circuit-rv32im)               |\n| risc0-circuit-rv32im-sys    | [![x](https://img.shields.io/badge/crates.io-v2.0-orange)](https://crates.io/crates/risc0-circuit-rv32im-sys)    | [![](https://img.shields.io/docsrs/risc0-circuit-rv32im-sys)](https://docs.rs/risc0-circuit-rv32im-sys)       |\n| risc0-core                  | [![x](https://img.shields.io/badge/crates.io-v2.0-orange)](https://crates.io/crates/risc0-core)                  | [![](https://img.shields.io/docsrs/risc0-core)](https://docs.rs/risc0-core)                                   |\n| risc0-groth16               | [![x](https://img.shields.io/badge/crates.io-v2.0-orange)](https://crates.io/crates/risc0-groth16)               | [![](https://img.shields.io/docsrs/risc0-groth16)](https://docs.rs/risc0-groth16)                                |\n| risc0-sys                   | [![x](https://img.shields.io/badge/crates.io-v1.4-orange)](https://crates.io/crates/risc0-sys)                   | [![](https://img.shields.io/docsrs/risc0-sys)](https://docs.rs/risc0-sys)                                     |\n| risc0-zkp                   | [![x](https://img.shields.io/badge/crates.io-v2.0-orange)](https://crates.io/crates/risc0-zkp)                   | [![](https://img.shields.io/docsrs/risc0-zkp)](https://docs.rs/risc0-zkp)                                     |\n| risc0-zkvm                  | [![x](https://img.shields.io/badge/crates.io-v2.1-orange)](https://crates.io/crates/risc0-zkvm)                  | [![](https://img.shields.io/docsrs/risc0-zkvm)](https://docs.rs/risc0-zkvm)                                   |\n| risc0-zkvm-platform         | [![x](https://img.shields.io/badge/crates.io-v2.0-orange)](https://crates.io/crates/risc0-zkvm-platform)         | [![](https://img.shields.io/docsrs/risc0-zkvm-platform)](https://docs.rs/risc0-zkvm-platform)                 |\n\n## Feature flags\n\nThe following feature flags are present in one or more of the crates listed above:\n\n| Feature          | Target(s)         | Implies    | Description                                                                                                                                                  | Crates                                                               |\n| ---------------- | ----------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------- |\n| client           | all except rv32im | std        | Enables the client API.                                                                                                                                      | risc0-zkvm                                                           |\n| cuda             |                   | prove, std | Enables CUDA GPU acceleration for the prover. Requires CUDA toolkit to be installed.                                                                         | risc0-circuit-recursion, risc0-circuit-rv32im, risc0-zkp, risc0-zkvm |\n| disable-dev-mode | all except rv32im |            | Disables dev mode so that proving and verifying may not be faked. Used to prevent a misplaced `RISC0_DEV_MODE` from breaking security in production systems. | risc0-zkvm                                                           |\n| metal            | macos             | prove, std | Deprecated - Metal GPU acceleration is enabled by default on Apple Silicon.                                                                                  | risc0-circuit-recursion, risc0-circuit-rv32im, risc0-zkp, risc0-zkvm |\n| prove            | all except rv32im | std        | Enables the prover, incompatible within the zkvm guest.                                                                                                      | risc0-circuit-recursion, risc0-circuit-rv32im, risc0-zkp, risc0-zkvm |\n| std              | all               |            | Support for the Rust stdlib.                                                                                                                                 | risc0-circuit-recursion, risc0-circuit-rv32im, risc0-zkp, risc0-zkvm |\n\n## License\n\nThis project is dual-licensed under either:\n\n* [Apache License, Version 2.0](LICENSE-APACHE)\n* [MIT License](LICENSE-MIT)\n\n[actions-badge]: https://img.shields.io/github/actions/workflow/status/risc0/risc0/main.yml?branch=main\n[actions-url]: https://github.com/risc0/risc0/actions?query=workflow%3ACI+branch%3Amain\n[cargo-risczero-readme]: https://github.com/risc0/risc0/blob/main/risc0/cargo-risczero/README.md\n[crates-badge]: https://img.shields.io/badge/crates.io-v2.0-orange\n[crates-url]: https://crates.io/crates/risc0-zkvm\n[crates.io]: https://crates.io\n[discord-badge]: https://img.shields.io/discord/953703904086994974.svg?logo=discord\u0026style=flat-square\n[discord-url]: https://discord.gg/risczero\n[install-rust]: https://doc.rust-lang.org/cargo/getting-started/installation.html\n[licence-badge]: https://img.shields.io/badge/license-Apache--2.0_OR_MIT-blue\n[licence-url]: #license\n[proof-system-in-detail]: https://dev.risczero.com/proof-system-in-detail.pdf\n[quickstart]: https://dev.risczero.com/api/zkvm/quickstart\n[risc-v]: https://en.wikipedia.org/wiki/RISC-V\n[security-model]: https://dev.risczero.com/api/security-model\n[twitter-badge]: https://img.shields.io/twitter/follow/risczero\n[twitter-url]: https://twitter.com/risczero\n[zk-proof]: https://en.wikipedia.org/wiki/Non-interactive_zero-knowledge_proof\n[zksummit10-talk]: https://www.youtube.com/watch?v=wkIBN2CGJdc\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frisc0%2Frisc0","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frisc0%2Frisc0","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frisc0%2Frisc0/lists"}