SUAVE is designed to decentralize the MEV supply chain by enabling centralized infrastructure (builders, relays, centralized RFQ routing, etc.) to be programmed as smart contracts on a decentralized blockchain.
suave-geth
is a work-in-progress Golang SUAVE client consisting of two separable components: chain nodes and execution nodes. SUAVE clients offer confidential execution for smart contracts, allowing confidential processing with extended precompiles for enhanced MEV functionalities, including transaction simulation via geth RPC, block building, and relay boosting, all handled by dedicated execution nodes.
For a deeper dive, check out the following links:
You can use suave-geth
to start a local SUAVE devnet.
There's multiple ways to get suave-geth
:
- Install the latest release binary
- Build from source
- Use Docker
curl -L https://suaveup.flashbots.net | bash
# build the binary
$ make suave
Now you have the suave
binary in your Go bin directory. You can check this by running:
$ which suave
$ suave --version
Start the local devnet like this:
$ suave --suave.dev
# spin up the local devnet with docker-compose
$ make devnet-up
# check that the containers are running
$ docker ps
# you can stop the local devnet like this
$ make devnet-down
Create a few example transactions:
$ go run suave/devenv/cmd/main.go
Execute a RPC request with curl like this:
$ curl 'http://localhost:8545' --header 'Content-Type: application/json' --data '{ "jsonrpc":"2.0", "method":"eth_blockNumber", "params":[], "id":83 }'
- suapp-examples is a collection of example SUAVE apps and boilerplate to get started quickly and right-footed.
- suave-specs is the spec repository for SUAVE which contains all the technical documentation.