StarkShell
This repository contains StarkShell, an on-chain virtual machine (VM), and its surrounding code base for a modular smart contract system. It can be used for both on-chain development as well as exploratory testing.
Features
- Dynamic interface
- Ad hoc interpreter
- Access NFTs
- Parameterizable functions
- Import system
- On-chain deployment
- Storage system
Repository Overview
The diamond contract:
Functional extensions for diamonds aka. the facets:
-
Configurability and upgradability:
StarkShell facet:
Bootstrapper contract:
How To Get Started
- Start your local development server
starknet-devnet
- Make
starkshell.sh
executable and run the script for initializing the dApp.
chmod +x starkshell.sh
./starkshell.sh
The script deploys a root diamond, which itself is a VM. The functionality which is not covered by other components is programmed with StarkShell. The encoded instructions are in src/starkshell.