Skip to main content

Obtain the guest program

Zesu is distributed as a pre-built relocatable Executable and Linkable Format (ELF) object, zesu.rv64im.o. To use it, your zkVM platform needs to provide implementations of the platform-specific functions Zesu depends on, then link them together to produce a runnable guest binary.

Prerequisites

  • A zkVM that targets the rv64im (RISC-V 64-bit base integer with multiply extension) instruction set.

Download the artifact

Download the pre-built zesu.rv64im.o artifact for the release you want to integrate.

Integrate the artifact

Your zkVM host integration implements the platform-specific functions and links them against zesu.rv64im.o to produce the final guest binary your zkVM runs. Linking conventions are platform-specific. Your zkVM target determines the linker script, entry point, heap layout, and accelerator wiring.

note

The zesu-zkvm repository contains example integrations for the Zisk, OpenVM, and Linea zkVMs. It is a stop-gap for zkVMs that don't yet implement the common guest interface, and shows how to wire a non-compliant zkVM to Zesu. As zkVMs adopt the zkVM standards, they can satisfy the symbol contract directly and the example integrations become unnecessary.

The zkVM symbol reference contains complete tables of the I/O, runtime, and accelerator symbols the host object must implement.

Next steps

  • Architecture: the full proving pipeline and why the ELF design was chosen.
  • zkVM symbol reference: complete tables of the I/O, runtime, and accelerator symbols the host object must implement.