Nethermind.Zkvm.Abstractions
1.0.0-preview.7
See the version list below for details.
dotnet add package Nethermind.Zkvm.Abstractions --version 1.0.0-preview.7
NuGet\Install-Package Nethermind.Zkvm.Abstractions -Version 1.0.0-preview.7
<PackageReference Include="Nethermind.Zkvm.Abstractions" Version="1.0.0-preview.7" />
<PackageVersion Include="Nethermind.Zkvm.Abstractions" Version="1.0.0-preview.7" />
<PackageReference Include="Nethermind.Zkvm.Abstractions" />
paket add Nethermind.Zkvm.Abstractions --version 1.0.0-preview.7
#r "nuget: Nethermind.Zkvm.Abstractions, 1.0.0-preview.7"
#:package Nethermind.Zkvm.Abstractions@1.0.0-preview.7
#addin nuget:?package=Nethermind.Zkvm.Abstractions&version=1.0.0-preview.7&prerelease
#tool nuget:?package=Nethermind.Zkvm.Abstractions&version=1.0.0-preview.7&prerelease
Nethermind zkVM abstractions
C# bindings for the zkVM Standards for Ethereum.
The library targets guest programs compiled with Native AOT and statically linked against a zkVM that implements the standard C interfaces. All native functions resolve at link time.
API
Accelerators: cryptographic accelerators, such as Keccak-256, SHA-256, RIPEMD-160, BLAKE2f, BLS12-381, BN254, secp256k1, secp256r1, KZG point evaluation and ModExp.IO: input and output of the guest program.
Span-based methods validate buffer lengths before the native call and throw ArgumentOutOfRangeException on mismatch. Methods that return Accelerators.Status leave failure handling to the caller, since invalid input is an expected outcome for curve operations and signature recovery. The remaining standard accelerators throw CryptographicException on failure.
ZisK
Building with -p:Zisk=true adds APIs not covered by the standards, backed by ZisK-specific functions:
Accelerators.KeccakF: Keccak-f[1600] permutation (eth-act/zkvm-standards#23).Accelerators.Sha256F: SHA-256 compression of one block, also through a reusableSha256FParametersblock.Accelerators.MemmoveandMemset: direct calls to thememmoveandmemsetprecompiles, skipping corelib's wrapper.Accelerators.AddMod256,MulMod256,ReduceMod256andDivRem256: 256-bit modular arithmetic and division.IO.PrintLine: writes to the standard output (eth-act/zkvm-standards#21). Without ZisK, it throwsNotImplementedException.
The pointer- and ref-based methods are unchecked for hot paths; the caller guarantees the buffer sizes, alignment and non-aliasing described in their docs. DivRem256 never returns if the divisor is zero.
SP1
Building with -p:Sp1=true adds unchecked APIs backed by SP1 precompiles:
Accelerators.Sha256ExtendandSp1Sha256Compress: SHA-256 message schedule extension and compression of one block.Accelerators.UInt256MulMod: in-place 256-bit modular multiplication.
OpenVM
Building with -p:OpenVM=true adds unchecked APIs backed by OpenVM extensions:
Accelerators.UInt256Mul: 256-bit wrapping multiplication on the bigint extension.Accelerators.KeccakXorin: XORs up to one rate of input into a Keccak state.Accelerators.OpenVMSha256Compress: SHA-256 compression of one block.Accelerators.UInt256MulWide,UInt512DivRemHintandUInt512IsDivRem: a 512-bit product, a quotient and remainder hinted by the runner, and the check that pins them. The hint is a phantom instruction that only the bflat-openvm runner registers.
SP1 and OpenVM both export zkvm_sha256_compress, with different arguments: Sp1Sha256Compress and OpenVMSha256Compress each link on both zkVMs but work only on their own.
Packaging
The published package is built with ZisK, SP1 and OpenVM support, so these APIs are visible to every consumer but work only on their zkVM. A guest links only the imports its code reaches, so one that never calls another zkVM's API links fine.
License
This project is licensed under the MIT license.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories (1)
Showing the top 1 popular GitHub repositories that depend on Nethermind.Zkvm.Abstractions:
| Repository | Stars |
|---|---|
|
NethermindEth/nethermind
A robust, high-performance execution client for Ethereum node operators.
|
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0-preview.8 | 212 | 10/16/2026 |
| 1.0.0-preview.7 | 1,224 | 10/15/2026 |
| 1.0.0-preview.6 | 2,243 | 10/13/2026 |
| 1.0.0-preview.5 | 6,744 | 10/5/2026 |
| 1.0.0-preview.4 | 1,161 | 10/5/2026 |
| 1.0.0-preview.3 | 3,859 | 9/30/2026 |