A blazingly-fast, ux-first Simplicity development framework.
Simplex is a Rust-based, comprehensive development framework for Simplicity smart contracts, aiming to provide a rich tooling suite for implementing, testing, and deploying smart contract on Liquid.
[!WARNING] The framework is at the extremely early stage of development, unforeseen breaking changes and critical bugs are expected.
curl -L https://smplx.simplicity-lang.org | bash
simplexup
See the simplexup manual for more details.
Add smplx-std dependency to cargo:
cargo add --dev smplx-std
Optionally, initialize a new project:
simplex init <name>
Simplex is a zero-config framework. However, it requires a simplex.toml file to exist in the project root. The default configuration is the following:
# Simplex config
[build]
src_dir = "./simf"
simf_files = ["*.simf"]
out_dir = "./src/artifacts"
[dependencies]
some_dep = { git = "<git url>", path = "<or a relative path>" }
[regtest]
mnemonic = "exist carry drive collect lend cereal occur much tiger just involve mean"
bitcoins = 10_000_000
rpc_port = 18443
esplora_port = 3000
rpc_user = "user"
rpc_password = "password"
[test]
mnemonic = "exist carry drive collect lend cereal occur much tiger just involve mean"
bitcoins = 10_000_000
verbosity = 0 # 0 - none, 1 - debug, 2 - trace
[test.esplora]
url = "<esplora url>"
network = "<Liquid, LiquidTestnet, ElementsRegtest>"
[test.rpc]
url = "<rpc url>"
username = "<rpc username>"
password = "<rpc password>"
Where:
build (simplex build config)src_dir - The simplicity contracts source directory.simf_files - A glob pattern indicating which contracts are in scope.out_dir - The output directory where contracts artifacts are generated.dependencies (simplex install config)regtest (simplex regtest config)mnemonic - The signer's mnemonic regtest will send initial funds to.bitcoins - Initial coins available to the signer.rpc_port - The port Elements regtest node will listen on.esplora_port - The port Electrs will listen on.rpc_user - Elements regtest RPC username.rpc_password - Elements regtest RPC password.test (simplex test config)mnemonic - The signer's mnemonic internal regtest will send initial funds to.bitcoins - Initial coins available to the signer.verbosity - Simplicity pruning log level.esploraurl - Esplora API endpoint url.network - Esplora network type (Liquid, LiquidTestnet, ElementsRegtest).rpcurl - Elements RPC endpoint url.username - Elements RPC username.password - Elements RPC password.Simplex CLI provides the following commands:
simplex init - Initializes a new Simplex project.simplex config - Prints the current config.simplex install - Installs specified SimplicityHL dependencies.simplex build - Generates simplicity artifacts.simplex regtest - Spins up local Electrs + Elements nodes.simplex test - Runs Simplex tests.simplex clean - Cleans up generated artifacts.To view the available options, run the help command:
simplex -h
Check out the complete project examples in the examples directory to learn more.
We are open to any mind-blowing ideas! Please take a look at our contributing guidelines to get involved.
simplex init and simplex clean tasks.Check out the full roadmap here.
The framework is released under the MIT License.
$ claude mcp add smplx \
-- python -m otcore.mcp_server <graph>