Skip to content

Latest commit

History

History
44 lines (36 loc) 路 3.09 KB

File metadata and controls

44 lines (36 loc) 路 3.09 KB

VOID Reference Implementation

A minimal example stack for building verifiable, opinionated, chain鈥慽ntegrated decentralized apps.

What is VOID?

VOID is a minimal pattern for building Verifiable, Opinionated, chain Integrated Decentralized apps. You write your app logic once as a state machine and run it inside a generic node/server. Your app can then be opinionated about many aspects of how it operates.

  • Utilize either lightweight attestations (TEE/signature) or zero鈥慿nowledge proofs to relay app state to users and/or back on-chain.
  • Interactions with the app can still be conducted on-chain through lightweight contracts, making the app composable with other smart contracts as well as compatible with a user's existing wallet and favorite chain.
  • The app can be written in any language using various tooling as long as its execution can be verified.
  • App transactions can solely be based on transactions made on a representative contract on a single chain, or integrate with an oracle and respond to transactions being made on multiple chains (as if the app lived on multiple chains simultaneously).
  • The app can re-sequence events to fully capture any value leak from priority fees (MEV capture).
  • And much more!

What VOID is not

VOID is Not a general鈥憄urpose rollup or a monolithic chain. VOID is a design pattern that results in powerful decentralized apps that are more opinionated than can be achieved through typical contracts on an existing chain.

How to use this repo

Use this repo to:

  • Start from the example app app-swap/ (a simple AMM with deposits, swaps, LP, and withdrawals).
  • Reuse the shared tooling under void/ to run nodes, expose JSON-RPC, archive state, and (optionally) prove/attest state.
  • Run end-to-end tests and benchmarks locally.

Building your own app:

  • Clone the repo and replace app-swap with your app logic while keeping a similar pattern of state_transition function, storage, events and queries. Continue through the documentation for more details on App setup, architecture, and running in a Node.

Documentation Overview

You will find documentation all throughout the repo in the form of README files. Feel free to click around the various folders or jump directly to what ever interests you:

馃摉 The Documentation is Also Available in Book Form

Go to Book Version