InfinityVM enables developers to use expressive offchain compute alongside the EVM to create new types of applications. Applications can run as fully offchain servers that verifiably settle to the InfinityVM base layer.
Consult the InfinityVM Book for detailed docs on:
- How to build an app with InfinityVM
- InfinityVM contracts
- InfinityVM coprocessor node
- Infinity L1 architecture
Instructions on how to install the prerequisites are here.
Build
cd contracts && forge build && cd ..
cargo build
Unit tests
cargo test
E2E tests
make test-all
The following are some of the more important directories in the InfinityVM repository:
.
├── contracts // Onchain business logic
├── crates // InfinityVM coprocessor
│ ├── coproc // Core logic of coprocessor
│ ├── db // Database for coprocessor node
│ ├── scripts // Helper scripts for testing a remote node, generating signed requests/results, etc.
│ ├── sdk // Shared types and functions useful for interacting with coprocessor
│ ├── abi // ABI-encoded types
│ ├── test-utils // Utils for writing tests
│ ├── zkvm-executor // zkVM interface used by coprocessor
│ └── zkvm // zkVM trait and implementations
├── examples // Example apps built with InfinityVM
│ ├── clob // Proof-of-concept CLOB built with InfinityVM
│ └── matching-game // Simple offchain app built with InfinityVM
├── programs // Sample zkVM programs
├── proto // Proto definitions
├── test // e2e and load tests for coprocessor, CLOB, and matching game
See the contributing doc for more info on workspace setup, lints, proto, etc.
InfinityVM Litepaper: https://infinityvm.xyz/infinityvm_litepaper.pdf